ふらっと C#,C♯,C# ..
[2ch|▼Menu]
90:デフォルトの名無しさん
17/10/10 22:26:46.18 ILyTWDei0.net
>>84
すいません
MouseDownイベントでどのクリックされたTabPageが欲しかったのです
結局自分でGetTabPageAt(int x, int y)をコピペして作りました

91:デフォルトの名無しさん
17/10/10 23:26:31.15 ZqwUWY4/0.net
>>89
タブ以外のところなら各ページのMouseDownイベントのsender
タブのところならTabControl.SelectedIndexChangedイベントでSelectedIndexかSelectedTab.Nameで取れる
そっちはx,yにしているから目的は違いそうだが

92:デフォルトの名無しさん
17/10/11 00:10:40.19 gF87iMQ50.net
>>90
ありがとうございます。TabControl上でどのタブの上でクリック、中クリックされたのかが知りたかったのです。

93:デフォルトの名無しさん
17/10/11 00:30:56.59 9Fj0rD7Ja.net
キーで変更されたときはなんもやらねぇの?

94:デフォルトの名無しさん
17/10/11 00:55:05.05 gF87iMQ50.net
はい、今のところ何もやりません

95:デフォルトの名無しさん
17/10/11 01:02:11.13 9Fj0rD7Ja.net
実現したいことを質問すればいいのにピンポイントでやり方だけ聞き続けるのがうまくねぇな
なんかあんまユーザーも望んでないようなことやってそう

96:デフォルトの名無しさん
17/10/11 03:10:21.57 gF87iMQ50.net
回りくどくなってしまってすみません
趣味で自分用に作っているアプリなのでユーザーは自分だけです

97:デフォルトの名無しさん
17/10/11 04:20:02.28 9Fj0rD7Ja.net
>>95
タブコンってタブのフォントをでかくするとバグるよね

98:デフォルトの名無しさん
17/10/11 15:07:03.75 jhF5UTXL0.net
>>88
わざわざ確認していただいてありがとうございます。
確認してみます。

99:デフォルトの名無しさん
17/10/13 19:23:27.95 9FeTZoAH0.net
入力する ???
もう1度入力する!!!
???と!!!の和は---
???と!!!の積は---

100:デフォルトの名無しさん
17/10/14 04:28:03.00 VMil0wNI0.net
TabControlとTabPageがあり、TabPageの中にWebBrowserコントロールがあるのですが、TabControlを触るとWebBrowserのフォーカスが外れてしまい
一度WebBrowserの中をクリックしないと動きません、マウスポインタがWebBrowser上にある場合クリックしなくても自動的にフォーカスを移したい場合どうすればいいでしょうか?

101:デフォルトの名無しさん
17/10/14 05:59:21.01 KJ0BKnta0.net
マウスポインタがWebBrowser上にあるかどうかを判定するコードと
フォーカスを移すコードを書けばいいんじゃね
しつけーよお前

102:デフォルトの名無しさん
17/10/14 06:08:08.12 NTbBehtoa.net
あーでもその動作はきっとやめておいたほうがええなー
使いやすいと思うやつおらへんで

103:デフォルトの名無しさん
17/10/14 11:06:25.42 +aeiapeN0.net
>>100
TabPage.Enterで(this.Activate()と)Tabpage.Focus()ですねw
>>101
同意するけど自分で使うだけらしいからw
>>99
>TabControlを触るとWebBrowserのフォーカスが外れて→TabControlを触ったあとでWebBrowserをFocus()
質問の時点で答え出ている気がする。Focus()は知っているだろうし
それよりもTabControl触っただけでTabPage上のコントロールのフォーカスは外れない
右クリックからコンテキストメニュー呼出しても別のタブでMouseDownイベント起こしても
WebBrowserが影響しているかもしれないが、それを調べないと対策しても後から別の問題が多分出てくる

104:デフォルトの名無しさん
17/10/14 21:19:17.73 2Frxw1Uc0.net
visual studio for macを昨日から使い始めました
コンソールプロジェクト その他→.NETを選択してソリューションを作成しているのですが.NET内のクラスを呼ぶとエラーが出ます
using Systemの記述以外に必要なことがあれば教えていただきたいです

105:デフォルトの名無しさん
17/10/14 21:30:45.44 +aeiapeN0.net
>>103
何呼び出そうとしたのかくらい書いてほしい
まずそのクラスが入っているコンポーネントの参照設定が必要
URLリンク(msdn.microsoft.com)(v=vs.90).aspx
次にusingが記述されていないクラスを呼び出すには名前空間からの記述が必要。もしくはusing (名前空間);を追加

106:デフォルトの名無しさん
17/10/14 21:36:08.46 GRARGOD60.net
使い始めていきなり参照追加が必要になるとは思えないから、恐らくusingが足りないんだろ。

107:デフォルトの名無しさん
17/10/14 21:49:10.87 Gt2cFrms0.net
初心者って何でエラーメッセージ書かねーの?

108:デフォルトの名無しさん
17/10/14 22:12:08.04 2Frxw1Uc0.net
>>104-106
参考書を読みつつ進めていて
DateTime today = DateTime.Today;でエラーが出ます
呼び出したいのは構造体でした
MSのリファレンスではこのように書かれています
名前空間: System
アセンブリ: mscorlib
レス書きながら参照の編集→アセンブリ弄っていたらエラー吐かなくなりました
もしかするとusing System;を書いていなかっただけかもしれません、申し訳ないです
エラーメッセージも今後は載せます

109:デフォルトの名無しさん
17/10/15 01:24:12.85 odpYqypi0.net
formのサイズに合わせて、
labelが拡大縮小するのってどうすればできますか?

110:デフォルトの名無しさん
17/10/15 01:47:44.60 6sAES7rzM.net
>>108
おれも手軽な方法知りたい。
面倒な方法としては、formサイズとlabelのフォントサイズに比例式作って判定させるメソッド作れば実装はできる。

111:デフォルトの名無しさん
17/10/15 01:57:09.23 7R5dQaZOa.net
>>108
煽り抜きで真面目な話、そういうのはまず要件を厳密に定義しないとね。
「formのサイズに合わせて、labelが拡大縮小」っていうのは曖昧だよね

112:デフォルトの名無しさん
17/10/15 02:12:32.32 odpYqypi0.net
>>109
ありがとうございます。
そういう機能があると思ってましたが、
簡単にはできないのですね。

113:デフォルトの名無しさん
17/10/15 02:13:46.76 odpYqypi0.net
>>110
画像の拡大縮小のような感じで、
フォームの大きさに合わせて、
ラベルの文字が大小するという感じです。

114:デフォルトの名無しさん
17/10/15 09:38:54.40 PeJpR27x0.net
>>112
WPF使えば良いんじゃないの?

115:デフォルトの名無しさん
17/10/15 10:17:34.83 xAZWROGI0.net
C#でpyplotみたいにフォーム作らなくてもお手軽にグラフ表示する方法ってないですか?

116:デフォルトの名無しさん
17/10/15 10:19:38.15 Tx63GDtfa.net
グラフコントロール的なのなかったっけ?

117:デフォルトの名無しさん
17/10/15 10:27:56.21 Tx63GDtfa.net
表示しないとdrowtobitmapきかねっけ?

118:デフォルトの名無しさん
17/10/15 16:04:17.23 64liGYG7M.net
ずっとグラフコントロール見てたけど
前だったら商用が一番おすすめだったけど
今はもうwebのフリーのコントロールに負けてるので金を払ってまで使う必要あるのかと思う

119:デフォルトの名無しさん
17/10/15 16:06:29.18 Tx63GDtfa.net
chartコントロール超綺麗じゃん

120:デフォルトの名無しさん
17/10/15 16:17:59.94 +yNynBs60.net
>>113
だよな。コントロール並べるだけじゃ満足できないならwpfやuwpに移行したほうが効率いい
もうオーナードローなんかやりたくないよ

121:デフォルトの名無しさん
17/10/15 16:21:03.11 Tx63GDtfa.net
>>119
フォントまで対応してたっけ?
今PCってフォント125%とかデフォルトで設定して売ってんじゃん

122:デフォルトの名無しさん
17/10/15 16:35:55.54 64liGYG7M.net
グラフって表示するだけじゃなくてインタラクティブなのものを求められたりするんで困る

123:デフォルトの名無しさん
17/10/15 16:46:42.46 +yNynBs60.net
>>120
拡大したいコントロールをViewBoxってコントロールで囲えば、何でも拡大縮小してくれる

124:デフォルトの名無しさん
17/10/15 16:57:11.91 Tx63GDtfa.net
>>122
フォントサイズやフォントの倍率変えても行ける?

125:デフォルトの名無しさん
17/10/15 17:11:04.42 64liGYG7M.net
使い勝手がいいかどうかは別だけど
スクロールバーありものも突っ込んだら悲しいことになる

126:デフォルトの名無しさん
17/10/15 17:17:55.44 Bo2AAy/J0.net
>>120
PCうんぬんはフォントじゃなくてスケーリングじゃないかな。
WPFは元々システムのDPIに依存しないから、スケーリング対応は簡単。

127:デフォルトの名無しさん
17/10/15 17:21:09.76 Tx63GDtfa.net
>>125
コントロールパネルの画面の
テキスト、アプリ、その他の項目のサイズを変更する
は影響受けない?
これが125%になってんだけど

128:デフォルトの名無しさん
17/10/15 17:24:10.76 q3I9S/toa.net
質問者に言っておくけど、要件を厳密に定義しないとこういう流れになっちゃう。
「formのサイズに合わせて、labelが拡大縮小」
「ォームの大きさに合わせて、ラベルの文字が大小するという感じ」
これどっちも曖昧だって。
要件っていうのは解釈や忖度や妄想の余地がないように厳密に定義しなきゃ

129:デフォルトの名無しさん
17/10/15 17:25:59.26 64liGYG7M.net
使ってみればいいよ
ViewBoxは使いどころが難しいと思う
マウス操作するものはなるべく突っ込まないほうがいいと思う

130:デフォルトの名無しさん
17/10/15 17:33:14.07 64liGYG7M.net
スペースが事前に決めてあってその中いっぱいに表示したいならviewbox
サイズを細かく指定したいなら向いていない
左右に二個並べてあって中身が違うにもかかわらず左右の表示を会わせたい→死

131:デフォルトの名無しさん
17/10/15 18:30:27.57 Bo2AAy/J0.net
>>126
それがスケーリングね。
スケーリングが125%になっているなら、ウィンドウ全体(コントロールも文字も)が125%に拡大された上で綺麗に表示してくれるよ。

132:デフォルトの名無しさん
17/10/15 19:26:58.15 boo3QsX80.net
>>127
実際に作るものはともかくここでの流れまで初心者に言っても
最初から要件を細かく定義できるのならググったほうが速いし
質問の仕方から見て>>109>>113で十分かと
>>108
WPFはわからないのでWinForm+>>109で仮に作るとこうなる(Labelだけ対応)
URLリンク(ideone.com)
ここまでは簡単で破綻しないように調整しようとすると面倒。自分では使わないw
この段階でたぶん座標とサイズがintでフォントサイズがfloatのせいで最後の文字で時々失敗する

133:デフォルトの名無しさん
17/10/15 19:43:17.05 H5qn+0zu0.net
Windows10のOS寄りの話になっちゃうかもしれませんが、
タスクバーとかその上にくっ付いてるコントロールの透明化を一時的にでも止める方法あったら教えてください。

134:デフォルトの名無しさん
17/10/15 20:08:50.91 T+wcAuKm0.net
>>132
設定→個人設定→色→透明効果→オフ
と同じことをプログラムからやりたいってこと?
C#の範疇じゃないので、聞くならWinAPIスレかなぁ

135:デフォルトの名無しさん
17/10/15 20:14:55.96 Gr3hJnkQa.net
タイトルバーのこと?

136:デフォルトの名無しさん
17/10/15 20:32:23.95 +yNynBs60.net
UWPだと、画面のサイズに依ってフォントのサイズどころかコントロールのレイアウトから何から何まで変更することが可能です
VisualStateManagerとAdaptiveTriggerってのを使うんだが、ちょっと説明には骨が折れるから興味ある人はググってね
単純なものでも、この複雑さだからね
URLリンク(blog.naotaco.com)

137:デフォルトの名無しさん
17/10/15 21:09:13.78 H5qn+0zu0.net
>>133
そうです。スレ違いでしたね
透明の箇所はスタートメニューから全部無効化したいですね
急ぎじゃないんで適当に調べてみます

138:デフォルトの名無しさん
17/10/15 21:25:24.68 +yNynBs60.net
>>136
URLリンク(news.mynavi.jp)
ここにレジストリの変更でできるって書いてあるが、後は頑張ってね

139:デフォルトの名無しさん
17/10/16 06:32:34.43 RQ+FBTWza.net
>>130
おお、大丈夫なのか
ありがとう
原因を分けて対応しないと駄目だな〜

140:デフォルトの名無しさん
17/10/16 08:01:21.51 ecMhS81Sp.net
二つの同じ長さの配列A,Bの末尾から5つを取り出してその全ての要素がA>BならTrueを返す
↑これってLINQでうまく書ける?

141:デフォルトの名無しさん
17/10/16 08:05:12.77 qSwuY79xa.net
>>139
友の会行けよ
明らかに初心者スレじゃねぇよ

142:デフォルトの名無しさん
17/10/16 09:40:47.13 Hv+h3c0cM.net
LINQの定義次第っていうか
LINQ to ObjectsならTakeLast拡張メソッドを自分で実装すればいける

143:デフォルトの名無しさん
17/10/16 09:50:04.77 dwD3mD07M.net
>>139
A.Reverse().Zip(B.Reverse(), (a, b) => new { a, b }).Take(5).All(ab => ab.a > ab.b)
>>141
十分初心者レベルだよ
自分がわからないからスレ違いってw

144:142
17/10/16 09:51:11.95 dwD3mD07M.net
すまん
わかると思うけど下のアンカは>>140の間違い

145:デフォルトの名無しさん
17/10/16 09:53:43.90 REWIMY/C0.net
なんで推敲する程度の余裕すらないんですかね…
寿命が近くて生き急いでるのかな?

146:デフォルトの名無しさん
17/10/16 10:01:59.84 qSwuY79xa.net
>>142
こんなコード見やすいと思ってる時点で頭がイカれてる

147:デフォルトの名無しさん
17/10/16 10:13:40.50 /cVIDSfR0.net
またLINQに親殺されたマンのスイッチ入ったな

148:デフォルトの名無しさん
17/10/16 10:15:02.52 VBGd717qM.net
逐次的に読むだけだから難しくはないと思うが…

149:デフォルトの名無しさん
17/10/16 10:15:18.65 qSwuY79xa.net
まあ、動作も遅いしね

150:デフォルトの名無しさん
17/10/16 10:16:28.62 /cVIDSfR0.net
>>148
ちょっと興味あるから同じ処理をわかりやすいように書いてみて

151:デフォルトの名無しさん
17/10/16 10:25:12.95 X+6CakuHM.net
>>145
勢いで書いて後から見てワケワカランで
こんな糞コード誰じゃと調べたら自分だった事が多々あるw

152:デフォルトの名無しさん
17/10/16 10:51:30.20 yXhtcONm6.net
>>148
LINQ難しくて嫌いだからってケチ付けるなよwwwwwwwww

153:デフォルトの名無しさん
17/10/16 10:57:04.66 qSwuY79xa.net
>>151
いや、遅いのと見難いから嫌い

154:デフォルトの名無しさん
17/10/16 11:02:26.88 X+6CakuHM.net
メソッドチェーンってそんなに見づらいか?
クエリー構文はキモくて嫌いだが。

155:デフォルトの名無しさん
17/10/16 11:05:31.52 REWIMY/C0.net
LINQに全てを奪われたマンだろ

156:デフォルトの名無しさん
17/10/16 11:07:08.78 qSwuY79xa.net
>>153
テトリスを一行で書きました(改行コードがないだけ)
みたいな臭いがして臭い

157:デフォルトの名無しさん
17/10/16 11:07:49.77 kQRYApqGa.net
>>142はLINQ好きじゃない俺でも十分読める
ちょっと思ったけど
A.Reverse().Zip(B.Reverse(), (a, b) => a > b).Take(5).All(x => x);
こっちの方がいい気が
Tがboolの時predicatorじゃなくて要素そのものを評価するオーバーロードってないんだね

158:デフォルトの名無しさん
17/10/16 11:17:17.26 kTlR9ez60.net
>>142
ありがとうありがとう
なんでかTakeLastが使える(最近追加された?)んでリバースなくて行けました
けどめちゃくちゃ遅かった…
ちょっとLinqでやるんが無理だったんかな、でもすごくためになりましたありがとう

159:デフォルトの名無しさん
17/10/16 11:18:16.37 yXhtcONm6.net
>>155
こんなに普及してるjQuery全否定か

160:デフォルトの名無しさん
17/10/16 11:21:16.85 /cVIDSfR0.net
>>155
頼む、アウアウオー Sa63-qY8Gなりの同じ処理のコードを書いてくれ
そっちのほうが分かりやすかったら味方も増えるだろ

161:デフォルトの名無しさん
17/10/16 11:22:50.09 yXhtcONm6.net
しかも最近流行りの状態を持たない関数型プログラミングだし

162:デフォルトの名無しさん
17/10/16 14:46:59.09 L72cxc6g0.net
SQL使ってた人にはLINQは分かりやすいけど長いと読む気なくすのはSQLも同じ

163:デフォルトの名無しさん
17/10/16 14:54:15.28 ckY7h8O8M.net
>>161
linqのクエリ式とsqlは別もん。
sqlを知らない方が良いかもね。

164:デフォルトの名無しさん
17/10/16 15:12:28.85 tCfKnGA20.net
TrackBar のツマミを、タッチ操作用に大きくしたいんですが、どうすればいいんでしょうか。
検索しても解決に至っていない質問がちらほらあるぐらいです。もしくはこれでもかってぐらい
自分で書いたオリジナルのトラックバーとか。
そこまでしなくても、ツマミが大きくできるだけでいいのですが。

165:デフォルトの名無しさん
17/10/16 15:21:38.99 L72cxc6g0.net
>>162
別物(キリッ)とか言われても
同じだなんて言ってないけど
ただ取っ掛かりの部分でSQLの知識が活かせるから個人的には学習コスト低かったし、
逆にSQL知らない子に教えて慣れさせるのには苦労したわ

166:デフォルトの名無しさん
17/10/16 15:32:11.28 1Xir09k9d.net
>>164
メソッド式だけで充分

167:デフォルトの名無しさん
17/10/16 15:34:39.13 ckY7h8O8M.net
>>164
自分の場合はSQL知っててクエリ式を見たときは何じゃコリャと思ったもんで^^;
冗長だけどメソッド式が好み。

168:デフォルトの名無しさん
17/10/16 15:58:03.25 L72cxc6g0.net
>>165
そう思ってるのお前だけだからクエリ式があるんだろ
悟れよ

169:デフォルトの名無しさん
17/10/16 15:59:01.02 L72cxc6g0.net
>>166
面食らうのはわかるけどすぐ慣れるでしょ

170:デフォルトの名無しさん
17/10/16 16:04:24.32 VwEzpL/B0.net
>>163
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

171:デフォルトの名無しさん
17/10/16 16:09:03.51 /hjaT7S3M.net
>>168
linqの出始めの頃はクエリ式を多く見かけた気がするが、最近のグーグル先生ではメソッド式を多く見かける気がする。
どっちが主流なんだろ?

172:デフォルトの名無しさん
17/10/16 16:12:46.47 /cVIDSfR0.net
今はメソッド式のほうが主流なんじゃない
最初は皆珍しがってクエリ式使ってたけど
今はほとんど見ない

173:デフォルトの名無しさん
17/10/16 16:28:30.74 /hjaT7S3M.net
>>171
vb.netだと状況が違うかも。
メソッド構文が冗長過ぎるよ。

174:デフォルトの名無しさん
17/10/16 17:44:59.60 1Xir09k9d.net
>>167
クエリ式で可能なことは全てメソッド式で可能。逆は成り立たない。

175:デフォルトの名無しさん
17/10/16 17:46:24.26 n1MWZemqd.net
>>167
充分の意味がわかってないということは中卒かな?

176:デフォルトの名無しさん
17/10/16 17:48:04.85 Vn+nsPRE0.net
>>113
>>131
コードも書いて頂いてありがとうございました。
恐縮しております。
いろいろいじってみたところ、
WPFでできそうなのでやってみます。

177:デフォルトの名無しさん
17/10/16 18:08:02.80 4cngaiV60.net
>>172
Functionがウザすぎてクエリ式使うわ

178:デフォルトの名無しさん
17/10/16 18:19:09.19 Jb7W9hCC0.net
リファクタリングって実際にやる事って多いのでしょうか?
とりあえず動くものを作ると手直しが大変で、設計を考えてから作るならそんなにリファクタリング起こらない様な感じもしますが
後から機能追加していくと分割しようとかってのもあるのでしょうか

179:デフォルトの名無しさん
17/10/16 18:25:44.09 eZI1RZBbM.net
多いです

180:デフォルトの名無しさん
17/10/16 18:40:53.97 ls7B8y8Ka.net
むしろそんなんばっかで嫌になる
最初の仕様書もっぺん見てみろや禿げと言いたくなるね

181:デフォルトの名無しさん
17/10/16 18:51:38.88 L72cxc6g0.net
>>174
じゃあお前はILで書ければC#要らないんだろうな高学歴さん
そもそも糖衣構文なんてどれも使い方次第だろ
言われないとわからんか?

182:デフォルトの名無しさん
17/10/16 18:57:14.07 X9WtM+0ed.net
>>180
ILがc#並に使い勝手良ければそうだろうね

183:emanの物理学ってサイトわかりやすいな
17/10/16 19:03:30.59 8ymsOkDP0.net
教科書見ても全然わからんかったのにスイスイ理解できる

184:emanの物理学ってサイトわかりやすいな
17/10/16 19:03:49.47 8ymsOkDP0.net
ミスった

185:デフォルトの名無しさん
17/10/16 19:22:10.94 BTwHB29Wa.net
>>177
それって誰の金でやってんの?
次の開発なんかあるかどうかわからないのに無駄じゃない?

186:デフォルトの名無しさん
17/10/16 19:22:42.93 LfvhrZmO0.net
>>177
設計を考えてから作ったあとにリファクタリングとか、設計が糞だからやり直すようなもんだわな

187:デフォルトの名無しさん
17/10/16 19:23:29.95 BTwHB29Wa.net
リファクタリングって設計がクソだからやるの?

188:デフォルトの名無しさん
17/10/16 19:30:37.46 TyTVOwnW0.net
>>177
一度書いたコードは問題なく動いている限りリファクタリングなんてすることは無いよ。
リファクタリングする工数なんて何処にも無いからね。
元のコードを大きく改変する必要があるとか類似システムを作るときは
思い切ってリファクタリングするけどね。そっちの方が品質も安定するし早いから。
ま、そんだけ元のコードが酷いって事さwww

189:デフォルトの名無しさん
17/10/16 19:30:40.89 Jb7W9hCC0.net
>>184
主力製品の機能変更で売ってくようなスタイルだと機能追加の度にコードが増えてくけど、その度に仕様変更でバグが混入する可能性があるからコード直ししたいとかあるってパターンもあると思います
既に基底が整備されてるとかプロジェクト毎に違う製品作るパターンならこういうことは無いと思いますが

190:デフォルトの名無しさん
17/10/16 19:34:29.63 BTwHB29Wa.net
>>188
でもお客の要望がリファクタリングの方向とズレてる場合って
かけたコストが丸損じゃない?

191:デフォルトの名無しさん
17/10/16 19:38:56.50 Jb7W9hCC0.net
>>189
あくまでお客とのやり取りではなく、コードは会社の資産という観点でリファクタリングするという考えですね
お客の要望で機能追加する前提のものなので、そこで保守するコストやバグによる信用低下からプログラムそのものの価値が下がるって概念になると思います
まぁ実際はリファクタリングするには大きすぎるので理想はあっても実行は中々できないと思いますが

192:デフォルトの名無しさん
17/10/16 19:39:51.97 3WbDhRser.net
>>173
letとSelectManyの連鎖はクエリー式でないと辛すぎるですたい

193:デフォルトの名無しさん
17/10/16 19:48:17.74 eZI1RZBbM.net
リファクタリングのやり方がおかしいんじゃないかな
リファクタリングでコードがシンプルになればその後の開発工数が激減する

194:デフォルトの名無しさん
17/10/16 20:21:04.95 rY47nFh2M.net
レガシーシステムに手をつける前に必ずリファクタリングするって常識でしょ
レガシーシステムは恐ろしいスパゲティの塊なのでそのまま手を出すとあっという間に破綻する
まずはリファクタリングで保守可能な状態を作らなければならない
最悪でも拡張する機能をテスト可能な状態にすること
顧客がバカでコミットできない場合でも知識を得るためにリファクタリングが最適
腐ったコードはどれだけ読み込んでも理解できない

195:デフォルトの名無しさん
17/10/16 20:21:22.23 BTwHB29Wa.net
>>190
いや今まで設定ファイルから読んでたけど
ネットワークから取得するわ
一括ではなく個々のデータを使用するときに常に最新データを個別に取得するわ
ってなったら絶対無駄になるよね?

196:デフォルトの名無しさん
17/10/16 20:26:56.04 BTwHB29Wa.net
>>192
それは改修時にする設計だよね
それは理解できる
でも、動いてるところをわざわざぶっ壊して作り直すって
お客に見積り通らないよね

197:デフォルトの名無しさん
17/10/16 20:29:25.51 Jb7W9hCC0.net
>>194
それで無駄になるケースってどういう場面でしょうか?
設定ファイルとコードが依存してなければ設定ファイルの取得部分の追加変更でリファクタリング自体は無駄にならないと思いますが
変更できないような設計なら確かに無駄になると思いますが・・・

198:デフォルトの名無しさん
17/10/16 20:31:20.88 1MDONeW40.net
>>195
スレチ

199:デフォルトの名無しさん
17/10/16 20:31:55.64 BTwHB29Wa.net
>>196
設定ファイルを読み込む前提でリファクタリングしたなら
ネットワークからデータを個別に取得するようになるわけだから無駄だよね?

200:デフォルトの名無しさん
17/10/16 20:34:39.53 VwEzpL/B0.net
無駄になる可能性もあるけど無駄にならない可能性もある
汚いコードだった場合ほど無駄にならない

201:デフォルトの名無しさん
17/10/16 20:34:54.38 BTwHB29Wa.net
設定ファイルは起動時に1回一括で読み込むだけかも知れないね
でもネットワークからデータが必要になるたびに個別に最新を取得だから
ぶっちゃけ対応できないんじゃないかな?

202:デフォルトの名無しさん
17/10/16 20:36:10.80 BaDXAceVd.net
>>200
スレチ

203:デフォルトの名無しさん
17/10/16 20:37:35.41 BTwHB29Wa.net
>>199
そう?
逆にこれが対応できるほど汎用性を上げたら明らかに無駄なコードだと思うよ

204:デフォルトの名無しさん
17/10/16 20:38:05.31 Pq8+tcNCd.net
ID:BTwHB29Waが何言ってるかわかるエスパーいる?

205:デフォルトの名無しさん
17/10/16 20:41:07.21 BTwHB29Wa.net
>>203
簡単にいうと仕様変更がかかったらリファクタリングなんて意味ねーじゃんってこと

206:デフォルトの名無しさん
17/10/16 20:55:07.11 rY47nFh2M.net
>>204
仕様変更ってリファクタリングしててよかった〜って一番実感するときだろ
まあやったことない人にはわからない感覚だとは思う
リファクタリングに工数かかるのは事実だから
目の前のコストしか見えない人だってそりゃいるよね

207:デフォルトの名無しさん
17/10/16 20:57:22.92 XeTEMs9s0.net
それはリファクタリングというかテスト書く話では

208:デフォルトの名無しさん
17/10/16 20:57:25.32 BTwHB29Wa.net
>>205
でも>>194とか無理でしょ?

209:デフォルトの名無しさん
17/10/16 21:05:31.13 rY47nFh2M.net
>>207
設定ファイル一括読み込みクラスをリファクタリングして
設定問い合わせイン


210:^ーフェースにする 設定ファイル一括読み込みクラスは設定読み込みインターフェースを実装する 設定読み込みネットワークになったわー読み取りは毎回取り直しだわ〜ってなったら 設定テーブルセレクトクラスを作る 設定テーブルセレクトクラスは設定読み込みインターフェースを実装する DIの設定を変更して終わり 簡単だろ?



211:デフォルトの名無しさん
17/10/16 21:06:54.06 rY47nFh2M.net
>>208
誤字訂正
>設定ファイル一括読み込みクラスは設定読み込みインターフェースを実装する
設定問い合わせインターフェースを実装する
>設定テーブルセレクトクラスは設定読み込みインターフェースを実装する
設定問い合わせインターフェースを実装する

212:デフォルトの名無しさん
17/10/16 21:08:49.18 BTwHB29Wa.net
組み直しに近いよね

213:デフォルトの名無しさん
17/10/16 21:12:10.02 BTwHB29Wa.net
設定ファイル一括読み込みクラスは会社の資産とのことだけど
どこ行くの?
また、設定ファイルから読み込むこともあるかも知んないから残しとく?
別の会社に売ったら
「うちはいちいちネットワークなんて繋げなくていいよ」
って言うかもね
こっちもサポートし続ける?
捨てちゃう?

214:デフォルトの名無しさん
17/10/16 21:15:35.05 HJ2RVhMCM.net
>>195
業態によるんじゃないかな
客先の社内に入ってる常駐型とかweb開発では継続的インテグレーションが当たり前
納品して終わりのシステムなんて大手は少ないんじゃないかな?

215:デフォルトの名無しさん
17/10/16 21:16:23.03 rY47nFh2M.net
リファクタリングしてないと組み直しになる
ネットワークから取ってくるって機能に切り替えたいだけなのに
なぜか設定読み込み処理そのものやそれを呼び出してるところを一生懸命調べたり直さなきゃならない
本当にやりたいことはそんなことじゃないのに!
リファクタリングしてあればまさにネットワークから取ってくる処理を追加するだけで


216:済む 既存の処理はそのまんま やりたいことを過不足なくやるだけ 解放閉鎖原則ってやつだね



217:デフォルトの名無しさん
17/10/16 21:18:26.26 LfvhrZmO0.net
>>212
継続案件でも納得してリファクタリングに金払う客居たら見てみたいわ
どうにもならなくなった糞コードを何とかする手段としてリファクタリングを使うケースは偶に見かけるけど

218:デフォルトの名無しさん
17/10/16 21:19:42.39 BTwHB29Wa.net
>>212
京都市とシステムズが争ってんじゃん
11億円の案件らしいけど
次の仕事あると思う?

219:デフォルトの名無しさん
17/10/16 21:21:16.99 z1iVQjyz0.net
客が選べないのはお前が無力だから

220:デフォルトの名無しさん
17/10/16 21:21:25.94 BTwHB29Wa.net
>>213
浅はかだな
一部設定ファイルから
一部ネットワークから
って可能性もあるよ
改修仕様が決まってから出ないとリファクタリングもゴミだなって気づけよ

221:デフォルトの名無しさん
17/10/16 21:21:40.28 rY47nFh2M.net
>>211
必要な顧客と不要な顧客が居るなら取っておいたほうがいいね
インターフェースで綺麗に分離されてるから機能有効化無効化の管理も超簡単

222:デフォルトの名無しさん
17/10/16 21:22:06.38 z1iVQjyz0.net
てかマ板でやれよ
底辺チンカスコーダーの分際でうるさいわ

223:デフォルトの名無しさん
17/10/16 21:22:56.52 BTwHB29Wa.net
>>218
ネットワーク状態によって分岐するかもしんねーぞw
どこまでインターフェースで対応できんだ?w

224:デフォルトの名無しさん
17/10/16 21:23:54.08 rY47nFh2M.net
>>217
それもリファクタリングしてあれば簡単にできるよ
単に設定ファイル読み込みクラスとネットワーク問い合わせクラスのミックスインを作るだけ
実装するのにまあ15分もかからないと思うね
リファクタリングしてなかったらこれは絶望的だよ

225:デフォルトの名無しさん
17/10/16 21:24:30.99 HJ2RVhMCM.net
>>214
MacはOSを途中で変えた
古いOSは改修に次ぐ改修で複雑に絡み合いリファクタリングすらできず
将来性がなかったから
windowsだって10までバージョンがあがったけど
そこまでのOSの変更費用は利用者が払ってる
将来性や利点があるならちゃんと説明して金をとるべき

226:あ
17/10/16 21:26:54.92 Qeq9VPfc0.net
リファクタリングは組み直しだろ。
なんでやるのかっつーと、いろんな意味でその次を楽にするため。
次の改修だったり、次の案件に使いたかったり。
ただし、それは改修と併せてやってはいかん。
改修、つまり「今より良くするもの」「悪いものを直すもの」の正しい評価ができん。
会社でやるなら、金の出処は研究開発扱いとしてやるしか無い物だと思うわ。
機械で言うと「新素材の研究が一段落していい感じだったんで、それ使ってネジのコストカットしました」とか「量産安定してきたんで金型のランナーをちょっと樹脂ケチる感じに引き直しました」とかそんなレベルの話。
もし客にバレたなら、単なる不具合の改修でしかない。

227:デフォルトの名無しさん
17/10/16 21:26:56.03 rY47nFh2M.net
>>220
それも簡単に対応できるね
ネットワークの状態を見てスイッチングするデコレーターを作るだけでしょ
リファクタリングしてなかったらあっという間に炎上する案件だよねこれって

228:デフォルトの名無しさん
17/10/16 21:28:07.20 BTwHB29Wa.net
>>221
どのデータがネットワークからでどのデータが設定ファイルからかわからないのに?
自由に変えられるように組んであるの?

229:デフォルトの名無しさん
17/10/16 21:28:59.41 BTwHB29Wa.net
>>223
だから次の仕様が明確にならないと意味ないって

230:デフォルトの名無しさん
17/10/16 21:29:59.81 BTwHB29Wa.net
>>224
そもそもそれは俺が言ってから君がリファクタリングの方法を変えてるだけで
実際はもう対応できてないじゃん

231:デフォルトの名無しさん
17/10/16 21:33:18.73 wMyYGjmV0.net
アウアウオー Sa63-qY8G
ワントンキン MMd3-pbEI
板違いで真っ赤とかNG推奨

232:デフォルトの名無しさん
17/10/16 21:33:19.62 rY47nFh2M.net
>>225
仕様はあるんだろ?
それ見て作ればいいだけ
なんならそれも設定から読むようにしようか?
ルート設定情報を見てファイルかネットワークか選ぶ
ネットワークが死んでたら何回かリトライ
それでもダメならファイルから
ファイルがダメなら埋め込みデフォルト値
みたいな感じで
リファクタリングしてれば簡単にできるぞ

233:あ
17/10/16 21:34:59.19 Qeq9VPfc0.net
>>193
不思議なもんで、理解はできるが、なんでこうなってんのかわかんねえ、って半日悩んで、スクラッチすっか、と最低限の条件からだんだん込み入った事書いてくと最終的に「これ最適解じゃん。すげぇ」ってなる事あるな。
Fortranの処理系のメンテしたほうがマシ、と言う結論に至った事がある。
>>226
次の仕様に合わせてやるのは、対応。
そうじゃなくて、「これ事故りそうだな、今手が空いてるから直しとくか」がリファクタリング。
フツーに仕事してたら納期次第で不味い手を打たざるを得ない事もあるしな。
32767回目で死ぬ事がわかってる、年に100回しか打たれないはずのコマンド、とか。
何故かそういう物に限って変な活用されたり、10年生きてたりする。

234:デフォルトの名無しさん
17/10/16 21:35:00.32 BTwHB29Wa.net
そもそも設定ファイルの読み込みルーチンだけど
すでに納めた客の対応はどうするの?
変えちゃうのはいいけどさ
動いて無いとまずいんちゃう?
インターフェースで対応できるの?

235:デフォルトの名無しさん
17/10/16 21:35:17.50 TyTVOwnW0.net
お前ら、プログラムの仕様を変えたらリファクタリングじゃねーわw

236:あ
17/10/16 21:36:09.29 Qeq9VPfc0.net
>>231
出しても出さなくても良いのがリファクタリング。

237:デフォルトの名無しさん
17/10/16 21:36:12.54 rY47nFh2M.net
>>226
仕様が曖昧なときほどリファクタリングは有効だよ
リファクタリングしてないと全く身動き取れない
リファクタリングしてあれば暫定で進められる
確定したらごく僅かな工数で本実装に切り替え可能
仕様が確定するまでの待ち時間の金は誰が払うんだ?
あれがこれが決まってないから進められないなんて泣き言は顧客は聞いてくれないぞ?

238:デフォルトの名無しさん
17/10/16 21:38:24.34 rY47nFh2M.net
>>228
あ〜それは悪かった
専ブラだとスレタイが目に入らないんだよね
オブジェクト指向スレかなんかと勘違いしてたわ

239:デフォルトの名無しさん
17/10/16 21:39:10.27 BTwHB29Wa.net
そんなパッケージ販売みたいの視野に入れるなら
○○様向け読み込み処理とか
すっげー勢いででき続けるけどな
すでに動いてる部分をぶっ壊すなんて最早正気ではないな

240:あ
17/10/16 21:39:22.24 Qeq9VPfc0.net
充分にモジュール化されてれば、可換な筈だからな。
それが仕様。
中身がどう変わろうが、口はUSBです。これも仕様。
口がどう変わろうが、テキストの電文でやりとりしてます。これも仕様。
どんなキーボード繋いでもHIDデバイスとして認識出来れば文字が打てます。そんなもん。
ボタンの改良でパソコン買い替えてたら世話無いだろ。

241:デフォルトの名無しさん
17/10/16 21:41:43.16 BTwHB29Wa.net
>>237
でもね
メモリだけ増やしたいなぁって思っても
SSDにしたいなぁって思っても
マザボごと全部交換必須
これが現実

242:あ
17/10/16 21:41:47.00 Qeq9VPfc0.net
>>236
パッケージ売りするなら、で全然パッケージ売りしてねえじゃんw
普通は帳票パックとか売るんじゃねえの?ソフト屋って。
コストで悩むのは理解できるが、だから研究開発費なんだよ。

243:あ
17/10/16 21:42:18.91 Qeq9VPfc0.net
>>238
全然現実じゃなくない…?
どんな商売してるの?

244:デフォルトの名無しさん
17/10/16 21:45:48.80 z1iVQjyz0.net
バグだらけでリファクタリングできない頭の見本市がこちらです

245:デフォルトの名無しさん
17/10/16 21:45:59.06 BTwHB29Wa.net
>>239
マジで
個別対応で金貰う商売だと思ってたぜ

246:デフォルトの名無しさん
17/10/16 21:46:37.96 BTwHB29Wa.net
>>241
京都市とシステムズにも言ってやれ

247:デフォルトの名無しさん
17/10/16 21:48:06.53 4cngaiV60.net
ワッチョイ!ワッチョイ!

248:デフォルトの名無しさん
17/10/16 21:49:20.03 1MDONeW40.net
>>243
スレチだ死ね

249:あ
17/10/16 21:49:50.50 Qeq9VPfc0.net
>>242
なんで個別対応で金取れるかわかってる?
個別対応部分が可換だからだろ?
単に経験浅すぎて仕組みがわかってないだけだと思いたいな。

250:デフォルトの名無しさん
17/10/16 21:59:40.70 BTwHB29Wa.net
>>246
いいけど
すべての個別対応を一つのソースにぶち込みつつ保守してくって無理だと思うぜ
扱うデータ自体が違うのにインターフェースもクソもねーし

251:あ
17/10/16 22:03:15.56 Qeq9VPfc0.net
>>247
なんで一つのソースにしちゃうかな?
インターフェイスが統一されてれば、違うソース、違うリポジトリで充分でしょ?
扱うデータが違うのに云々ってのは、コンテナ形式のファイル見たら皆がどうやって回避してきたか理解できると思うわ。
DICOMまでガチの話でもなく、tiffファイルのフォーマット眺めるだけで充分わかる。

252:デフォルトの名無しさん
17/10/16 22:05:59.28 BTwHB29Wa.net
>>248
だからされねーだろ
データが違うんだから
始点と幅と高さでもっても
中点と幅と高さでもっても
四角は四角なんだよ

253:デフォルトの名無しさん
17/10/16 22:07:30.95 9dpoOU7Ld.net
>>249
スレチ死ねよ

254:あ
17/10/16 22:12:07.91 Qeq9VPfc0.net
>>249
内容に惑わされ過ぎだろ。
始点と幅と高さでできてる四角(四角A)と、中点と幅と高さで出来てる四角(四角B)であろうと、
ただのデータなんだから。
「四角」ってスーパークラス切り出して、「どちらかはわからんが、四角には変わりない。どっちかはそれぞれ読み手が考えるように。」ってデータ型を用意するのがリファクタリングだよ。
そしたら、図形ってデータ型が出来たり、面積のある図形ってインターフェイスが出来たりするだろうね。
typeof演算子の存在意義に疑問を持ってる類の人間なのかな。

255:あ
17/10/16 22:13:13.51 Qeq9VPfc0.net
インターフェイスについて突っ込まれそうだけど、シリアライズしてXMLにでもしときゃ、容量は食うだろうけど、C#でならだいたい何とかなる。

256:デフォルトの名無しさん
17/10/16 22:20:04.33 BTwHB29Wa.net
>>251
あめーんだよ
お前想像力がたんねーから
インターフェースでなんでも対応できる気がすんだよ
ちなみに中点、右幅、左幅、上幅、下幅指定は中点で回転するからその指定で回転角も付く
同じ四角だってすでに別もんの場合もある
こういうのたくさんあり過ぎて現実にはインターフェースなんてなんの役にもたたねーだろ

257:デフォルトの名無しさん
17/10/16 22:30:15.71 rY47nFh2M.net
インフラも依存性もないたかが四角形クラスでインターフェース否定した気になっちゃったの?

258:デフォルトの名無しさん
17/10/16 22:36:38.15 BTwHB29Wa.net
>>254
じゃあ、さっきのネットワークからデータをとる話にしたってバカがインターフェースで対応できるとか言ってたけど
実際はデータ毎に取得日時も保存しておかないと
最新かどうかわからないよねw
アホだからこんなもんで対応できると思うんやで

259:デフォルトの名無しさん
17/10/16 22:38:01.06 1MDONeW40.net
>>255
いい加減キチガイは死ねよ

260:デフォルトの名無しさん
17/10/16 22:38:28.89 JV3CytDXd.net
>>255
消えろカス

261:デフォルトの名無しさん
17/10/16 22:44:52.51 BTwHB29Wa.net
>>256
( ‘д‘⊂彡☆))Д´) パーン
>>257
( ‘д‘⊂彡☆))Д´) パーン
(*゚∀゚)なんで殴られたか言ってみろ!

262:デフォルトの名無しさん
17/10/16 22:46:33.16 HJ2RVhMCM.net
いったい何のスレなんだ?

263:デフォルトの名無しさん
17/10/16 22:46:57.67 GvNya7OCd.net
>>258
死ね

264:デフォルトの名無しさん
17/10/16 22:58:47.99 4cngaiV60.net
>>259
ID真っ赤な人を愛でるスレです

265:デフォルトの名無しさん
17/10/16 23:04:07.75 LTsOqA5h0.net
伸びすぎだろ
おまえらってこういう話題になるとイキイキするのな
会社ではモテない頼りない無能社員のくせに

266:あ
17/10/17 00:34:03.66 GZgPL7cm0.net
>>253
だから、統一できるコンテナフォーマットな形式のデータ入れに突っ込んでしまって、
必要な奴が必要な分だけパースするんよね。
ホントに実務経験あるの?甘くない?
>>255
横からだけど「取得したデータ」は「取得した何か」を継承してたり、「取得した日付」を取得するインターフェイスがあれば充分でしょ。
無知でした、ごめんなさい。が言えるのもエンジニアとして大切だと思うが、いかがなもんかのう。

267:デフォルトの名無しさん
17/10/17 00:38:20.31 cWqis51L0.net
>>263
キチガイに触んなすな

268:デフォルトの名無しさん
17/10/17 00:41:19.24 EkZQ3MrW0.net
まだやってやがる
始発に飛び込んで死ねよ

269:デフォルトの名無しさん
17/10/17 00:45:14.10 7pWr2cdn0.net
死んでも、俺がザオリクを唱えてあげるからな

270:デフォルトの名無しさん
17/10/17 01:10:49.63 0KKPzkG80.net
スレチ指摘されても理解できない頭のヤツにリファクタリングの必要性説いてどうすんの

271:あ
17/10/17 08:19:27.73 kX2KiqXMd.net
確かに。無駄に伸ばしてすまん。

272:デフォルトの名無しさん
17/10/17 19:01:31.69 YbpTy6K90.net
最近独学で勉強始めたんだけど難しすぎる…
自分で考えたり工夫する能力がないんだろうな
自分がやりたい事と全く同じサンプルが無いと何も出来ない
みんなどうやって見につけたんだ?
やっぱアホには無理なのかな

273:デフォルトの名無しさん
17/10/17 19:09:25.19 exorZDFN0.net
>>269
できることからやればいい
できないことをやろうとすると達成感が得られなくてやる気が無くなるループになる
自分の頭の中で必要な要件を切り分けられないものには手を出すな
サンプルは全く同じものがあるはずがないので近いものを探す。一つだけでなくいくつも探す

274:デフォルトの名無しさん
17/10/17 19:34:46.70 owv2SIUK0.net
>>269
c#ってかなり難しいと思うよ。
抽象的な概念がかなりある。
今は、ひたすら写経に励めよ。

275:デフォルトの名無しさん
17/10/17 19:36:25.48 owv2SIUK0.net
c#がそれなりに使えるのには5年は掛かるね。
表面上使いこなせるのには他の言語を知ってりゃ3か月だ。

276:あ
17/10/17 19:38:37.05 GZgPL7cm0.net
>>269
やりたい事を初めて見た他人が代わりにできるくらいのメモにまとめて、それをコードに落としていけば良いんじゃない?
最初は言語の機能全部使う必要無いんだから。
そのうち、これ毎回書くな…とか思ったら、そういう機能があるかどうか調べたら良い。大体ある。

277:デフォルトの名無しさん
17/10/17 19:53:24.64 YbpTy6K90.net
>>269です
レスありがとう
最近仕事で使うことになって人生初のプログラミングを経験中なんだけど何もかも分からないから質問も出来ないし、しても分からないし、何回か聞くともっと自分で考えてやれみたいな感じだから毎日悩みっぱなしだ
出来ることから地道にやれたら良いんだけど仕事だからなかなか厳しいね…
とりあえず独習って本を読んだり試してまずは基礎をしっかり理解するようにしてる
みんなもひたすらサンプルを書いたりして理解して行った感じなのかな

278:デフォルトの名無しさん
17/10/17 19:59:57.62 U8+gWhs5r.net
C#難しいのかなあ?
自分はこんな便利なのか!と感動したけど

279:デフォルトの名無しさん
17/10/17 20:05:06.59 Rn8Nldlma.net
>>274
作りながら覚える本のがいいよ
俺は
まあ、人によるけど

280:デフォルトの名無しさん
17/10/17 20:33:03.63 O+BDW8AjM.net
C++先にやっとけばC#は凄く簡単

281:デフォルトの名無しさん
17/10/17 20:33:14.23 FJCAd6676.net
C#が難しいってオブジェクト志向な設計が難しいってこと?

282:デフォルトの名無しさん
17/10/17 20:43:58.37 Q467/Wh20.net
C#が難しいんじゃなくて、
オブジェクト指向が難しいとかプログラミング自体が難しいって話だな

283:デフォルトの名無しさん
17/10/17 21:04:44.09 0KKPzkG80.net
>>275
それは他言語経験者の感想やろ

284:デフォルトの名無しさん
17/10/17 21:30:09.12 O+BDW8AjM.net
初心者はC#のどこで躓くんだろう
ラムダか?

285:デフォルトの名無しさん
17/10/17 21:50:31.65 OjUPM8wm0.net
>>281
上の人は、C#特有の要素がどうこう以前に
プログラミングその物で躓いてるからなあ
多言語経験者がC#特有の要素で躓くとしたら、デリゲートじゃないの

286:デフォルトの名無しさん
17/10/17 22:01:11.01 opt3bdnY0.net
>>271
射精なら励んでるんだけど・・

287:デフォルトの名無しさん
17/10/17 22:02:28.67 opt3bdnY0.net
>>274
おれも独学だけど、ここの人達は何だかんだで面倒見いいから、頼るといい。

288:デフォルトの名無しさん
17/10/17 22:22:32.10 umFbfT/c0.net
最初、文法だけを説明している入門書(猫でも〜)で勉強したけど
「インターフェース? 規約だけを定めたもの? 具体的に何の役に立つんだ?」
「構造体? クラスとどう使い分けるんだ?」
「デリゲート? C/C++の関数へのポインタみたいなもの? Cなんて知らんがな」
みたいな疑問が次々と湧くのに解決されないまま、文法の丸暗記だけしてる感があってしんどかった
サンプルコードも、最低限の説明用のシンプルすぎるもので、実用性っぽいものが皆無だったし
もう少し丁寧に解説してる本から始めればよかった


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

290日前に更新/263 KB
担当:undef