ふらっと C#,C♯,C# ..
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なんて知らんがな」
みたいな疑問が次々と湧くのに解決されないまま、文法の丸暗記だけしてる感があってしんどかった
サンプルコードも、最低限の説明用のシンプルすぎるもので、実用性っぽいものが皆無だったし
もう少し丁寧に解説してる本から始めればよかった
289:デフォルトの名無しさん
17/10/17 22:37:26.16 YbpTy6K90.net
>>284
ありがとう
馬鹿だから質問すらなんて聞いて良いか分からないんだけどね
入門書みたいなのは何冊か読んだり試したりして、コード見ればぼんやりこういう事してるんだなっていうのは分かるんだけど、いざ自分で1からやろうと思うと何も書き出せなかったりする
>>285が言うようにこれが何に活きてくるんだ?っていうような疑問も沢山あるし…
実務だとアプリ作ってって仕様書渡されてデータベースから値をとって加工してグリッドに表示させたりとか、何かたった一行でも表示させるのに丸一日かかって結局分からないとかも多々ある
機転が利かないっていうか自分で考えてこういう風に組み替えたり応用したりしようってのが出来ない…
知識が付けば出来るようになるのかな
愚痴吐いてごめん
勉強してきます
290:デフォルトの名無しさん
17/10/17 23:06:15.45 O+BDW8AjM.net
とりあえずデータベースとグリッドの事は忘れてコンソールアプリを作るべきだ
最近の若者は順序がめちゃくちゃ
291:デフォルトの名無しさん
17/10/17 23:26:36.50 9CwiJQBWM.net
Webだと仕組みを理解すれば案外コンソールと変わんなかったりするけどね
292:デフォルトの名無しさん
17/10/17 23:49:29.75 OjUPM8wm0.net
「言語その物の機能」と
「外部の物にアクセスする手段」とは、分けて学習するべきだわな
293:デフォルトの名無しさん
17/10/18 01:03:17.80 3+TwrJNfa.net
非常に申し訳ないんですがLINQの質問いいですか?
インデックスが対応する二つの配列A、Bがあります
Aには氏(string)、Bには性(bool)が入っていて
女性で田中が何人いるってのは、どう書けばいいですか?
294:デフォルトの名無しさん
17/10/18 01:10:27.98 vo9W3JA50.net
>>290
A.Zip(B, (a, b) => new { a, b }).Where(ab => IsFemale(ab.b) && ab.a == "田中").Count(
295:)
296:デフォルトの名無しさん
17/10/18 01:14:46.91 BXrTaZiI0.net
>>285
「猫でもC#」は「スッキリわかる Java入門 第2版、2014」で、
オブジェクト指向を学んだ人向け
本当の素人には、向いていない
297:デフォルトの名無しさん
17/10/18 01:27:09.70 3+TwrJNfa.net
>>291
ありがとうございます
結構難しいですね。解読して勉強させて頂きます
298:デフォルトの名無しさん
17/10/18 02:39:15.39 iR/4ihsX0.net
>>291
Whereいらない Countが条件節取れる
299:デフォルトの名無しさん
17/10/18 03:21:25.19 x50wQsAO0.net
>>288
ASP.NET Coreはコンソールアプリだしね
300:デフォルトの名無しさん
17/10/18 04:11:05.14 f/O0/ZtAH.net
>>293
A.Zip(B, (a, b) => new { a, b })
.Where(ab => IsFemale(ab.b) && ab.a == "田中")
.Count()
改行するだけで随分理解しやすくなるはず
A.Zip(B, (a, b) => new { a, b })
.Count(ab => IsFemale(ab.b) && ab.a == "田中")
Where要らないの意味も解りやすくなるはず
301:デフォルトの名無しさん
17/10/18 06:16:24.19 qUhUKvGj0.net
>>292
猫でもはどのシリーズも薦めない。
302:デフォルトの名無しさん
17/10/18 07:51:54.79 vI9phIcRd.net
>>286
上級者がどうやって作ってるかを見て、自分が思ったやり方と違う部分を見つけて意図を聞くのがいいかも
まぁ相手が付き合ってくれることが前提だけど
どのみち初学者の場合、学習曲線はある程度学んだ時点から一気に上昇するもんなので、最初はコツコツ疑問を潰すしかないよ
303:デフォルトの名無しさん
17/10/18 07:54:10.74 W+0BZmzB0.net
あと同じような内容でも入門書は評判の高い順に何冊か読んだ方がいい
自分に合った説明が一冊の中に全部詰まってる事なんてないから
304:デフォルトの名無しさん
17/10/18 08:19:01.99 Uigi9MZrM.net
じゃ河西本やな
305:デフォルトの名無しさん
17/10/18 08:27:03.75 DAWWUo8AM.net
>>290
name[100], age[100] みたいにデータを列持ちするのは現代的なプログラミングにおいては非常に悪い作法なので今すぐやめたほうがいい
クラスを作って行単位で持つのが基本
306:デフォルトの名無しさん
17/10/18 12:35:54.11 uKmp6sxaM.net
>>290
氏名と性別を持ってるクラスのListにしたほうがいいよ
307:デフォルトの名無しさん
17/10/18 12:36:22.87 uKmp6sxaM.net
>>301
書いてあったw
308:デフォルトの名無しさん
17/10/18 13:54:21.47 M3PcmRrI6.net
クラスと構造体の使い分けを教えてくれ
309:デフォルトの名無しさん
17/10/18 13:58:44.93 pBm/jvOsa.net
>>304
処理を付加したかったり読み書き制限したりしたかったらクラスと言うか、構造体でできることはクラスで全部できるからあえて構造体を選ぶ場面は少なくないか
310:デフォルトの名無しさん
17/10/18 14:30:35.20 YSC60BKkM.net
>>304
win32api呼び出す時以外は使い道ないかも。
311:デフォルトの名無しさん
17/10/18 17:29:04.28 jNhOnQNR0.net
別に構造体でないとPInvokeできないということはないはずだが
StructLayoutはクラスのレイアウトも制御できるわけで
312:デフォルトの名無しさん
17/10/18 17:49:30.20 J95CPfXbM.net
ポインタじゃなくて構造体のコピー寄越せって関数とか
313:デフォルトの名無しさん
17/10/18 17:54:28.88 MMY2jKS6d.net
>>304
十分小さい時は構造体の方がパフォーマンスがいい
314:デフォルトの名無しさん
17/10/18 17:54:33.85 GswCLlj60.net
>>304
C/C++連携かパフォーマンス最適化か
1. Microsoft (2008)
1) It logically represents a single value, similar to primitive types (int, double, etc.).
2) It has an instance size under 16 bytes.
3) It is immutable.
4) It will not have to be boxed frequently.
URLリンク(docs.microsoft.com)
2. Effective C# 2nd(2010)
1) Is the main responsability of the type data storage?
2) Is its public interface defined entirely by properties that access or modify its data members?
3) Are you sure your type will never have subclasses?
4) Are you sure your type will never be treated polymorphically?
3. とあるStackOverflowの回答
1) You use structs for performance when stored in arrays.
2) You need them in code passing structured data to/from C/C++
3) Do not use structs unless you need them:
URLリンク(stackoverflow.com)
315:デフォルトの名無しさん
17/10/18 18:14:03.46 f/O0/ZtAH.net
>>304
明らかにその場で使い捨てなら構造体
316:デフォルトの名無しさん
17/10/18 18:23:14.37 a0tZ3XvZ0.net
16バイト以下なら構造体
317:あ
17/10/18 18:24:25.72 9gwGUiRxd.net
>>304
ゼロ初期化で良いものでshort3つとか小さいものは、クラスより遥かに軽いので、万の桁で呼ぶなら構造体にする。
あとGCで回収させずに、メソッド終わったら即捨てたいものとか。これもそのメソッドを頻繁に呼ぶ時に。
小さい構造体はヒープではなくてスタックに置かれて、抜けたら無くなるので効率とかより、GCが呼ばれてる暇がなくてもちゃんと開放される。
よく使うのは、挙がってるの以外だと描画周りに使う事ある。
ちなみに、処理を付加すると言うか、メソッド生やすのは拡張メソッドで無理が効くようになったから、関数載せたい、でも関数の参照持たせたくない!もかなりなんとかなる。
318:デフォルトの名無しさん
17/10/18 22:59:59.74 K9flraWY0.net
値っぽいやつは構造体
319:デフォルトの名無しさん
17/10/19 06:04:01.12 eqdHlWFS0.net
ふと思ったのですが、メソッドで匿名型クラスのインスタンスを返すことってできますか?
返すことができるなら返り値の型になんて書けばいいのでしょうか?Typeはだめでした
320:デフォルトの名無しさん
17/10/19 07:15:50.96 8WeFWhTb0.net
あえていうならdynamicだけどメソッド超えるなら匿名型は諦めよう
321:デフォルトの名無しさん
17/10/19 08:07:39.54 hoxSwRGJH.net
今ならタプル返せばよい
322:デフォルトの名無しさん
17/10/19 09:32:28.99 mqSZ6mSda.net
C#の絵本第2版出てるな
323:デフォルトの名無しさん
17/10/20 02:56:07.82 iR2BGy9F0.net
文字列型のIdプロパティも持つクラスHogeのリストList<Hoge>からIdのカンマ区切りの文字列を求めたいのですが、
普通にやると
string.join(",", items.Select(i => i.Id));
とループが2回走るんですが、これをLINQか何かで1回のループで求められるでしょうか??
324:デフォルトの名無しさん
17/10/20 03:17:26.49 InyPVBX00.net
>>319
325: string.JoinにIEnumerable<string>渡してるから、そのままでループは1回になるんじゃないか
326:デフォルトの名無しさん
17/10/20 03:50:32.91 PY8ywvH80.net
自分でループまわして連結すればいいんじゃないか
327:デフォルトの名無しさん
17/10/20 04:34:32.44 iR2BGy9F0.net
>>320
items.Select(i => i.Id)
あれ、このSelectでもう1回ループまわる??
よくわかんなくなってきた
328:デフォルトの名無しさん
17/10/20 04:36:29.82 iR2BGy9F0.net
ああ。Selectでループ回らないか。
329:デフォルトの名無しさん
17/10/20 05:12:35.17 NH12zMgi0.net
vb.netを何年か使って仕事してたのですが、c#に移行していくことになったのでc#の学習を始めようと思っているのですが、おすすめの書籍はありますか?
330:デフォルトの名無しさん
17/10/20 06:26:42.31 2DRMxDJ60.net
>>324
Effictive C#とか
古いけど
331:デフォルトの名無しさん
17/10/20 06:38:32.06 l3SzA2hHM.net
実戦で役立つC#のイディオムなんちゃら
割とよかった
基本をサッと把握するにはこれで良いと思う
基本を抑えたらCLR via C#とか読むべき
dotnet coreならマイクロソフトのドキュメントかな
アップデートが速すぎて本が出ない
332:デフォルトの名無しさん
17/10/20 07:08:41.55 NH12zMgi0.net
>>325
>>326
ありがとうございます。
基礎を理解するのに、独習C#かオライリーのC#の購入も検討していたのですが、その2冊についてはいかがでしょうか?
あまり役に立たない様なら、おすすめいただいた3冊を購入してみようと思います。
333:デフォルトの名無しさん
17/10/20 07:29:07.74 2DRMxDJ60.net
>>327
正直最初の一冊は好きなの選べばいいよ
それで足りないと思ったらここを含めてお勧めされてる本をレビューなんかで評価の高い順に読めばいい
どの本の内容があんたに合ってるかはあんたにしかわからんのだから
334:デフォルトの名無しさん
17/10/20 09:14:18.94 zf8EG0F60.net
誤植がない本がいいよ
C#始めた頃に買った入門本で、「なんでこうなるんだろう・・・」と嵌まって時間浪費したことがある
誤植に気づけるまでのレベルなら流せる問題が、一言一句読み解きながら進めてるときに
誤植にあたると学習コストが無駄に跳ね上がる
まぁ、読む前にそれを気づくのは至難の業だから、評価高い本と初版避けることくらいしか方法ないけど
335:デフォルトの名無しさん
17/10/20 12:43:09.38 l+99Dkv9a.net
>>324
VB何年かやってたなら@ITの記事を一通り斜め読みするだけでも十分でしょ
336:デフォルトの名無しさん
17/10/20 12:45:00.04 RDZrWMpbM.net
>>329
そう言うのこそ
なんでこうなるのだろう?
って思った時にここで聞けばいいんじゃね?
337:デフォルトの名無しさん
17/10/20 13:02:30.91 kQTzxkDwa.net
この業界歴史が浅いから本が必ず正しいことを言っているとは限らない点も注意だな
長くたって結局将棋とか過去の棋譜を使わないほうが強くなったらしいし
未来は自分で切り開くんだよend
338:デフォルトの名無しさん
17/10/20 13:10:28.70 Qvu1f4hHH.net
ここで聞くのは一番やっちゃいけないことだと思う
339:デフォルトの名無しさん
17/10/20 13:25:54.62 kQTzxkDwa.net
>>333
じゃあ、オススメを貼れよグズ
340:デフォルトの名無しさん
17/10/20 14:00:27.64 QjnViytCM.net
>>333
ある意味、正論だな。
ここで回答してる奴でここで質問したことのある奴は殆ど居ないんじゃないのかな。
341:デフォルトの名無しさん
17/10/20 14:08:15.33 kQTzxkDwa.net
>>335
してるよ!
c#の構文解析でいいライブラリねーの?
って聞いてから返答ないままだよ!
342:デフォルトの名無しさん
17/10/20 14:08:31.02 QjnViytCM.net
>>334
StackOverflow英語版かな?
343:デフォルトの名無しさん
17/10/20 14:14:34.61 QjnViytCM.net
>>336 凄いアバウトな聞き方w じゃ、.NET Frameworkって回答しとく。
345:デフォルトの名無しさん
17/10/20 14:27:12.08 kQTzxkDwa.net
>>338
あんの?
確かに計算式はやってくれんだよね
346:デフォルトの名無しさん
17/10/20 14:31:27.58 kQTzxkDwa.net
具体的には処理フローを出力したい
reflectionでやれればそれでもいいし
ソースの文字列から構文木的なものを返してくれるならそれでもいいし
347:デフォルトの名無しさん
17/10/20 14:35:43.81 QjnViytCM.net
>>339
Roslyn関連のライブラリって構文解析してくれるんじゃないの?
348:デフォルトの名無しさん
17/10/20 14:41:43.45 QjnViytCM.net
>>340
それ、初心者スレで聞く内容かw.
349:デフォルトの名無しさん
17/10/20 14:53:31.10 kQTzxkDwa.net
>>341
おお!
行けそう!行けそう!
ありがとうございました!
まさかこんなものが出てるとは
350:デフォルトの名無しさん
17/10/20 15:41:21.62 QjnViytCM.net
>>343
解決かw
351:デフォルトの名無しさん
17/10/20 15:52:51.14 kQTzxkDwa.net
>>344
いや、まだわかんない
352:デフォルトの名無しさん
17/10/20 16:00:55.66 +VbZElimd.net
偉そうなこと言っときながらRoslynも知らないとはwww
353:デフォルトの名無しさん
17/10/20 16:06:52.51 QjnViytCM.net
>>346
c#の追っかけしてるファンじゃないと知らんわ
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
290日前に更新/263 KB
担当:undef