ふらっと C#,C♯,C#(初心者用) Part130at TECH
ふらっと C#,C♯,C#(初心者用) Part130 - 暇つぶし2ch550:デフォルトの名無しさん
17/08/20 08:23:09.88 NOqm8CtN0.net
引っ込みつかなくなったガキ

551:デフォルトの名無しさん
17/08/20 09:11:36.31 Z/sZ4AZQ0.net
>>544
もちろん
C#なら一瞬 なんならプロジェクト分ければそこしかコンパイルされない

552:デフォルトの名無しさん
17/08/20 09:18:37.94 WBEiN1za0.net
TSVを使えると言うならソース側のソフトもいじれることを示すわけで
両方いじれるならIPCでも使ったほうが使い勝手が良さそう
ケースバイケースだけどね

553:デフォルトの名無しさん
17/08/20 09:19:33.42 Z/sZ4AZQ0.net
もっと根本的なことを言えば、なぜこの世にスクリプト言語があるかと言えば
プログラミングの外側にスクリプティング 作ったライブラリをただ呼び出すフェーズがあり
その外にさらにデータを作るフェーズ これはプログラミング言語を使う必要もなく
データ記述に特化したアプリを使うことが多いわけだが
出来るものは全部C#でやったほうがいい Visual Studioはそれだけ優れた記述環境だ
ライブラリを呼び出す時のインテリセンスのサポートは圧倒的だし
データの型式エラーもリアルタイムに発見できる
言語自体の記述の冗長性の低さもタプルで一段先に進んだ

554:デフォルトの名無しさん
17/08/20 09:25:57.99 02zgg1Cu0.net
こういう時期あるよね
俺も経験あるわ
君が言っているようなことは誰でもみんな一度は考えて試したことがあるんだよ
プログラミングのベストプラクティスは自分の考えでやってみて壁にぶち当たって初めて身につくものだから、君はそのままでいいと思うよ

555:デフォルトの名無しさん
17/08/20 09:28:02.98 4v9fraNU0.net
こういう時期あるよね
俺も経験あるわ
君が言っているようなことは誰でもみんな一度は考えて試したことがあるんだよ
プログラミングのベストプラクティスは自分の考えでやってみて壁にぶち当たって初めて身につくものだから、君はそのままでいいと思うよ

556:デフォルトの名無しさん
17/08/20 09:47:38.37 Z/sZ4AZQ0.net
自演はするのに書き込みにロジックはない
恥ずかしいなお前

557:デフォルトの名無しさん
17/08/20 09:54:32.77 MYcnjkMXM.net
>>546
お前がそれでいいならいいけど俺ならそんなどうでもいいことまで保守しなきゃならないプログラムは避けるなぁ

558:デフォルトの名無しさん
17/08/20 09:58:05.52 02zgg1Cu0.net
>>551
君の言っていることは理屈の上では正しいからな
教科書的な否定意見を述べることはもちろんいくらでもできるけど、君がそれを受け入れないことも分かってる
なぜなら俺自身がそうだったからね
これはプログラムというものがどういう状況で使われたりどういう理由で変更されたりすることが多いか、といった、
きわめて経験的な問題であって、演繹的なロジッで白黒付けられるような問題じゃないの

559:デフォルトの名無しさん
17/08/20 10:16:08.57 Z/sZ4AZQ0.net
>>553
議論の目的は相手を言い負かすことではないから俺が受け入れるかどうかなどどうでもいいし
ロジックでは説明できないと言い張るのも全く論理的な態度ではない 少なくともプログラマーが取るべき態度ではない
>>552
データの管理をプログラマーがやらなきゃならなくなるって話か?
データを書いて管理するのもスキルが必要だしそのスキルを学べたならC#のデータ記述ぐらい学べる
プログラミング技術ではなくデータ書式を覚えるだけなんだから
それにこの方式なら自然にデータがバージョン管理されるから何か問題が起きた時に再現したりも簡単にできる

560:デフォルトの名無しさん
17/08/20 10:22:57.60 g2LxWR3u0.net
ソース管理履歴が入力データの数値変更とかある意味斬新な使い方だな

561:デフォルトの名無しさん
17/08/20 10:43:36.19 xUVeBm+tM.net
>>554
その使い方を他人に教えるのは少なくとも最初はお前の仕事なんだぞ?
VSのインストール方法、ソースの変更箇所や変更方法、ビルド方法、全部教えるの?
外部のスクリプトから毎回パラメータを変更して繰り返し実行したいときはどうするの? 実験データの処理なんかだとよくあるよね
毎回本体に手を入れるの? 他人にもそれを求めるの?

562:デフォルトの名無しさん
17/08/20 10:55:39.20 IkwItTHKa.net
データが変わったり増えたりするたびにコンパイルしなおす環境を
是とするのは初心者だけ
コンパイル5分とかのプロジェクトが普通にあるんだけど

563:デフォルトの名無しさん
17/08/20 10:57:55.80 VzkR/TOU0.net
実際初心者なんだからいいだろ
何をムキになってんの
お前も初心者Lv2くらいなんしゃねーの

564:デフォルトの名無しさん
17/08/20 11:29:10.12 Z/sZ4AZQ0.net
だからプロジェクトを分ければそこだけしかコンパイルされない
VSの使い方は別に難しくない しかもデータを書くだけなんだから使う機能はほんの一部
データほどバックアップが必要なものはないからバージョン管理するのも当然
上書きしたデータはしばしば必要になるがデータは消えたらまず戻らない
ソースコードの変更履歴なんてのは消えても必要なら書き直せばいいだけだからな
パラメータを変えながら繰り返し実行したいならC#で書けばいい
繰り返しになるがそこだけプロジェクトを分ければそこしかコンパイルされない
スクリプト層のように一方的に使う側は書き換えても何も他に影響を及ぼさない
データのように書き換えてもプログラム上のインターフェースが変わらないものも同じだ

565:デフォルトの名無しさん
17/08/20 11:33:38.19 4v9fraNU0.net
>>557
プログラムにデータベタ書きは日本のSIerなら常識だぞ。
変更のたびに改修費取れるからな。消費税率なんかみんなベタ書きだ。

566:デフォルトの名無しさん
17/08/20 11:38:29.95 RoSv4OHrM.net
>>555
データをバージョン管理ツールに突っ込むのはたまにやる

567:デフォルトの名無しさん
17/08/20 12:01:00.60 8rqqhxmUd.net
>>557
コンパイル5分はさすがに設計が悪いとしか

568:デフォルトの名無しさん
17/08/20 12:08:47.92 IkwItTHKa.net
>>559
だからこそ外に出したほうがいいんではないかと普通に思うんだけど
外に出しておけばほかのツールなどでも使えるし
馬鹿な初心者はなんで食い下がりたがるんだろうか?という疑問はいつか解消されるのか

569:デフォルトの名無しさん
17/08/20 12:20:57.09 TOwE0eF8a.net
なんかしょうもないことで揉めてるなあ。
こんなの要件その他しだいのケースバイケースでしょ。
まさか文字列や


570:数値のリテラルまで否定する人はいないわけで、 そういう感覚で複雑なデータをコードに直書きした方が好都合な場合もそりゃないことはないと思うよ。 いつでもどんな場合もそうした方がいいと言ってるならお馬鹿さんだけどさ



571:デフォルトの名無しさん
17/08/20 12:20:57.99 8rqqhxmUd.net
>>563
テストケースで使うデータはテストコードと強く結びついてるからコード中に書く場合もある
ひとつの手段を「普通」と言い切ってしまうのは浅はか

572:デフォルトの名無しさん
17/08/20 12:40:50.18 3qMRQsNA0.net
c#でjsonにシリアライズしたいんですが、キーは文字、値は文字と数字としたい場合
どのような型を使えばいいのでしょうか?
例えば、jsonの表記を以下のようにしたいということです。
{
"test": [
{
"a": "aaaa",
"b": 123456789,
"c": "ccc",
"b": "987654321,
},
{
"a": "aaaa",
"b": 123456789,
"c": "ccc",
"b": "987654321,
}]
}

573:デフォルトの名無しさん
17/08/20 13:02:04.31 /Yfo0eFx0.net
>>562
6年ほど前に某F通のフレームワーク使ったときはビルドに10分とかかかってたわ

574:デフォルトの名無しさん
17/08/20 13:04:52.88 +32tL3aOM.net
>>566
objectかdynamic

575:デフォルトの名無しさん
17/08/20 13:10:16.81 +32tL3aOM.net
いや訂正
>>566なら普通にa, b, c, dをプロパティとして定義した型を使えばいいな

576:デフォルトの名無しさん
17/08/20 13:57:47.29 dgrWF/1pM.net
>>566
var obj = new {
test = new [] {
new {
a = "aaaa",
b = 123456789,
c = "ccc",
d = "987654321"
},
new {
// ry
}
}
};
var s = NewtonSoft.Json.JsonConvert.SerializeObject(obj);

577:デフォルトの名無しさん
17/08/20 14:03:08.79 3qMRQsNA0.net
お二方とも、ありがとうございました。
オブジェクトを使って無事にやりたいことができました。

578:デフォルトの名無しさん
17/08/20 15:36:32.78 Z/sZ4AZQ0.net
>>563
データを別の環境から使いたいならJSON.NETでも使えばいいだけ
しかしJSONは冗長だから管理には向かないが
CSVみたいなのも自分が何の値を触ってるのかわからなくなりがちだから難しい
だから元データにはC#&VSを使うべき
タプルのいいところはもうひとつあるな こっちの方が重要かもしれないが
コードでデータを書こうとする場合、データの型とプログラムに依存関係が発生してしまう場合がある
C#でデータを書くには型が必要で プログラムで処理するにも入力する型が必要
「プログラムは再利用するものだ」という観念があるとここで型を使いまわして依存関係が発生してしまう
プログラムで処理したい型に合わせて元データを書いていると、プログラムの方の仕様変更で型が変わっても元データをいじるわけにはいかず対応が難しくなる
もともとデータはデータであってデータの汎用性を最大にするためにも変更に強くするためにもプログラムと依存関係は持つべきじゃない
依存関係はコンパイルにも影響する
しかし同じ型を二つ作ってやりとりするのはめんどくさかった
(まあJSONやCSVを使える型に直すよりはずっと楽だが)
この問題はタプルで解決する
タプルの型が使いまわせるうちはそのまま渡せばいいし
使いまわせなくなったら必要な変換コードを書けばいい

579:デフォルトの名無しさん
17/08/20 15:38:29.83 zHhVJRDSa.net
>>564
見積りに入ってねぇのに勝手にやったらぶっ殺すけどな
テスト工数とかものすげー増えんじゃん

580:デフォルトの名無しさん
17/08/20 15:44:09.85 zHhVJRDSa.net
>>572
タプルってpythonのごった煮のゴミだろ
いらねーよ

581:デフォルトの名無しさん
17/08/20 15:48:19.19 +32tL3aOM.net
>>572
そうそう
それを突き詰めていくと「CSVかJSONでよくね?」となるんだよ
こっち側まであと半年くらいかな

582:デフォルトの名無しさん
17/08/20 15:52:41.50 zHhVJRDSa.net
pythonのお仕事が来ると
あまりにも変態的な使い方をするやつが多かったのか
使用禁止例もいっしょに出るので注意な

583:デフォルトの名無しさん
17/08/20 15:56:43.69 +32tL3aOM.net
Pythonのタプルが要素の取り違えを非常に起こしやすいのは確か
C#のタプルは常にフィールド名を型に含めておけるからだいぶマシだと思うよ

584:デフォルトの名無しさん
17/08/20 15:59:24.89 zHhVJRDSa.net
>>577
いやいや
どんな設計になっとんねん
将来的にデータベースに移すとかなったらそんなテーブルどう作んねん

585:デフォルトの名無しさん
17/08/20 16:01:29.91 dgrWF/1pM.net
>>572
素晴らしいアイデアだ
是非とも世界中に広めてくれ
ちなみにこのスレのみんなはもう君の素晴らしいアイデアは理解したから
別のコミュニティに行って啓蒙した方がいいと思うぞ
業界のデファクトスタンダードになったら業務にも導入するよ

586:デフォルトの名無しさん
17/08/20 16:08:54.30 zHhVJRDSa.net
なんでもできちゃう仕組みは実は何にもしない
これがわからんうちは素人
俺らは制限を加える代わりに機能を作成している

587:デフォルトの名無しさん
17/08/20 16:09:34.46 MYcnjkMXM.net
>>554
そう考える方もいるんだね
データと処理は分けたい!ってクセになってるので状況に応じて柔軟に考えるようにするわ

588:デフォルトの名無しさん
17/08/20 16:16:50.41 ry172e0x0.net
LINUX あきらめた人がC#やってるってまじ?

589:デフォルトの名無しさん
17/08/20 16:18:08.23 zHhVJRDSa.net
>>581
せめて客と打ち合わせして
誰向けにどんな頻度で読み込むのか
相談しろよ
しかしやはりテスト工数とか超無駄
頼んでもいねー機能が入っちゃってるし
コードレビューやるとこだと
会議室静まり返るわ

590:デフォルトの名無しさん
17/08/20 16:24:22.45 MYcnjkMXM.net
>>583
で?

591:デフォルトの名無しさん
17/08/20 16:31:05.69 zHhVJRDSa.net
>>584
お前扱いにくいやつになっちゃったんだな
場所によっては通用しないだろうな

592:デフォルトの名無しさん
17/08/20 16:39:10.31 zHhVJRDSa.net
加不足なくキッチリ作ってこそプロ
塗装屋に屋根だけじゃなく壁も塗られたら嫌だろ

593:デフォルトの名無しさん
17/08/20 16:47:40.00 +32tL3aOM.net
>>582
大雑把に言えば間違ってはいないな
俺は基本的にLinuxファーストで構成組むけど、どうしてもどうしてもWindowsを使わざるを得ない場合にC#を使う

594:デフォルトの名無しさん
17/08/20 17:07:58.90 dgrWF/1pM.net
>>582
LinuxできないのにC#は今後キツイぞ

595:デフォルトの名無しさん
17/08/20 17:24:54.81 NOqm8CtN0.net
素人さんにそんなこと言っても分からんだろ

596:デフォルトの名無しさん
17/08/20 17:35:16.04 ry172e0x0.net
>>587
やっぱりそうだよな。
スキルとか知識面で
Linuxベース+Windowsの人間の方がきもいけど知識は豊富

597:デフォルトの名無しさん
17/08/20 17:43:20.05 /Yfo0eFx0.net
まーた流れが変になったきた

598:デフォルトの名無しさん
17/08/20 17:57:07.82 lAN4MCjV0.net
Linux出来ないってなんだよ

599:デフォルトの名無しさん
17/08/20 18:19:33.30 qRBovfU3M.net
>>570
library使ってるの言わなきゃわかんねーだろw

600:デフォルトの名無しさん
17/08/20 18:22:32.24 qRBovfU3M.net
タプルって必要?

601:デフォルトの名無しさん
17/08/20 18:24:23.09 RTInNZ8f0.net
Linux出来ないの意味がわからない

602:デフォルトの名無しさん
17/08/20 18:24:46.30 qRBovfU3M.net
タプル使っても結局戻り値の受け皿となる型用意しなきゃいけないし、だったら最初からその型で返却すればいいとおもうのですが。

603:デフォルトの名無しさん
17/08/20 18:39:05.96 hUYAcmEda.net
>>572
コードの中に埋め込んでる状況が一番依存性が高いだろうwww
本当の馬鹿ってこんなところにいるんだな…

604:デフォルトの名無しさん
17/08/20 19:02:37.86 WBEiN1za0.net
>>596
var

605:デフォルトの名無しさん
17/08/20 19:16:42.28 CkRUpBQZ0.net
タプルはその型にちょうどいい名前がつかない時が使いどころ
なくてもそんなに困らないけどあると便利な場面は多い

606:デフォルトの名無しさん
17/08/20 19:21:32.83 6SP869Cna.net
全部タプルで組まれるテロ

607:デフォルトの名無しさん
17/08/20 20:04:50.98 5Qhm1OO+0.net
タプルは7.0のタプル型になってから戻り値で使うようになった

608:デフォルトの名無しさん
17/08/20 20:29:11.34 9QhbSfl9a.net
からだすこやか茶~

609:デフォルトの名無しさん
17/08/20 20:32:10.39 TNLMpcMk0.net
C#はバージョン毎に結構あれこれ追加されて常識が変わってくからな
最新バージョンを追い掛け続けてる人とそうでない人で、話が通じなくなる事もしばしば
俺も割りと4.0くらいで頭の中が止まってるかもしれない

610:デフォルトの名無しさん
17/08/20 20:35:21.31 PJX+MB9c0.net
せっかくJavaやCが戻り値はひとつにしようと糞コード撲滅の努力をしてきたのに

611:デフォルトの名無しさん
17/08/20 20:38:12.45 NOqm8CtN0.net
JavaやCみたいな前世紀の遺物

612:デフォルトの名無しさん
17/08/20 20:41:00.60 WpPKXiqN0.net
クラスじゃなくてタプルで返すべき場面てある?

613:デフォルトの名無しさん
17/08/20 20:47:43.32 tm2H9Mai0.net
>>604
JavaやCワロタwww

614:デフォルトの名無しさん
17/08/20 21:17:50.95 PJX+MB9c0.net
>>606
戻り値のためにクラス作るのがなんか心理的に重い

615:デフォルトの名無しさん
17/08/20 21:33:13.87 6SP869Cna.net
>>608
戻り値にデータが複数必要ってどんなときだべ?
もちろんなかったわけじゃないが
エラーとエラーログみたいな?

616:デフォルトの名無しさん
17/08/20 21:38:30.65 woceXaSP0.net
>>609
たとえば画像データだと画素データだけでなくチャンネル数や各チャンネルの大きさ、縦と横の(特に横)の長さが必要になる
これだけで例えばバイト配列といくつかのintが必要になる

617:デフォルトの名無しさん
17/08/20 21:53:44.36 9QhbSfl9a.net
>>610
全然適切な例になってない気が
それ、明らかにクラスまたは構造体にまとめるべきデータでしょ
まあ、一つの型にまとめたくない複数のデータを一つのメソッドから返したい、
なんて率直に言ってうんこの臭いしか感じないね。

618:デフォルトの名無しさん
17/08/20 21:59:18.22 woceXaSP0.net
>>611
「クラスや構造体でまとめられないデータ」に対する回答でなく
「複数の戻り値が必要なデータ」に対する回答なんだけど

619:デフォルトの名無しさん
17/08/20 22:07:06.65 lGh3jxXl0.net
別の場所でも入力にも使うようならクラスなりで定義すべきだけど
なんちゃらResultとか名前を付けたくなるような
特定の場所の戻り値でしか使わないデータのまとまりはタプルって感じかなあ

620:デフォルトの名無しさん
17/08/20 22:09:47.01 PJX+MB9c0.net
一連のDBと入力の整合性チェックをまとめたとき
処理途中でとってきたDBの値を使いまわしたい場合とか
Result 処理途中でとってきたDBのDtoいっぱい = checkなんちゃら(画面入力.id, 画面入力.数量)
とかのためにクラスつくるのがなんとなくイヤで
タプルで楽したくなる

621:デフォルトの名無しさん
17/08/20 22:10:45.97 g2LxWR3u0.net
>>613
スコープの範囲次第で使い分けかなと考えているけど、職場ではTaple使えない悲しい現実

622:デフォルトの名無しさん
17/08/20 22:25:47.11 KFJuIj/g0.net
>>598
varすげえええ

623:デフォルトの名無しさん
17/08/20 22:28:08.05 KFJuIj/g0.net
>>603
会社が4.0の環境でasynce await使えないからよくわかるわ。

624:デフォルトの名無しさん
17/08/20 22:29:23.05 KFJuIj/g0.net
>>609
今時のAPIなんてほとんどjsonだろうに。

625:デフォルトの名無しさん
17/08/20 22:45:48.34 TNLMpcMk0.net
>>617
環境変えるとビルド結果のバイナリが変わってしまうかも知れない、て不安があるとどうしてもな
C#の話じゃないけど、Borland C++ Compiler(5.5.1)のコマンドライン版は問題なく使えるのに
後発の2006年版Turbo C++に含まれてる奴は、リソースコンパイラにバグがあってコマンドラインから呼ぶと正常に機能せずにしばらく頭を捻るとか
そういうしょーもない例も過去にある

626:デフォルトの名無しさん
17/08/21 00:25:30.65 O/1upfegM.net
分解構文は気持ちがいいぞ
タプルの存在意義なんてほぼ全て分解構文のためだろ
手軽に変数をまとめたいとかそんなんどうでもいいんだわ

627:デフォルトの名無しさん
17/08/21 00:39:12.05 g6ClmGpT0.net
Linuxの覚えることの多さに挫折した奴が
Visual Studio使って開発もどきをしている

628:デフォルトの名無しさん
17/08/21 01:55:10.53 qkKjHqu10.net
意味ワカンネ
Linuxむしろ全然楽じゃん
windowsめんどくせー

629:デフォルトの名無しさん
17/08/21 02:06:19.44 DtUMsypOa.net
>>622
linuxの画面表示版
最速HelloWorldってどーなんの?

630:デフォルトの名無しさん
17/08/21 02:24:14.96 qkKjHqu10.net
>>623
画面表示版とは?

631:デフォルトの名無しさん
17/08/21 02:43:19.80 DtUMsypOa.net
>>624
WinFormみたいな奴

632:デフォルトの名無しさん
17/08/21 03:17:22.85 qkKjHqu10.net
>>625
最速ってのがわからないけどこんなん?
URLリンク(www43.atpages.jp)
昔やってたwindowsSDKみたいな感じだな。まあ普通はGUIライブラリ使うんだろうけど

633:デフォルトの名無しさん
17/08/21 03:22:57.90 DtUMsypOa.net
>>626
win32api思い出したわ
そうかlinuxで組むとそうなるか

634:デフォルトの名無しさん
17/08/21 03:23:30.61 DtUMsypOa.net
>>626
ありがとうございました

635:デフォルトの名無しさん
17/08/21 07:38:19.57 io7xKced0.net
>>628
いいってことよ(´・ω・`)b

636:デフォルトの名無しさん
17/08/21 12:33:00.92 7ZS301rmM.net
Visual Studio意外でC#書いてるやつはマゾなのか??

637:デフォルトの名無しさん
17/08/21 12:39:26.81 g1AySmchM.net
マゾっていうかバカの一つ覚え

638:デフォルトの名無しさん
17/08/21 12:45:15.76 RM3yKiI1d.net
>>630
最近ずっとプライベートではVSCode…

639:デフォルトの名無しさん
17/08/21 12:46:13.25 voUPNyzbd.net
>>631
ごめんちょっとよくわからない

640:デフォルトの名無しさん
17/08/21 17:45:56.58 lYWr+wd6M.net
VSCodeがいまんとこベストかな
C#だけならVS IDEでもいいけど

641:デフォルトの名無しさん
17/08/21 19:16:37.63 unnUdLF20.net
ライダーってどうなの?

642:デフォルトの名無しさん
17/08/21 19:30:53.20 61WjIS0b0.net
>>635
NuGetのパッケージマネージャーが軽くてびっくりした

643:デフォルトの名無しさん
17/08/21 19:41:32.56 itmc25rV0.net
Nugetから持ってきたパッケージがウイルス感染している危険性は無いの?

644:デフォルトの名無しさん
17/08/21 21:28:45.58 g1AySmchM.net
>>637
MSのサーバーがやられてバイナリが感染する可能性を考慮すると
Windows UpdateもVS本体のオンラインインストールも、あらゆるダウンロード行為が何一つ安全でなくなるので、それは考慮しなくていいだろう
その上でNuGet特有のリスクは、第三者によるレビューなしに誰でもパッケージを登録でき、登録した本人であればいつでもそれを更新できること
例えばJSON.NETの作者がこっそりマルウェアを仕込んだらとんでもない被害が出るだろうね
その点についてMSが保証するのは他人のなりすましによる登録や更新が行えないことだけで、作者の人格を信用するかどうかはお前自信の責任

645:デフォルトの名無しさん
17/08/21 21:37:13.77 lYWr+wd6M.net
ソースチェックすればいいじゃん
なんのためのオープンソースだよ

646:デフォルトの名無しさん
17/08/21 21:40:21.89 g1AySmchM.net
>>639
公開されているソースとバイナリが一致している保証はない

647:デフォルトの名無しさん
17/08/21 21:49:47.54 edNFVMcB0.net
ソースが公開されても誰もチェックしないよ。OpenSSLで証明済みじゃないか。

648:デフォルトの名無しさん
17/08/22 19:57:59.09 S++Cl2tB0.net
PCですが、室温が何度までだったら耐えられますか?
これ以上あがるとまずいという温度があれば教えてください。

649:デフォルトの名無しさん
17/08/22 20:01:02.01 EXI53gop0.net
スレチだが一応答えると
室温じゃなく、CPU・グラボ・HDDの温度を気にしろ

650:デフォルトの名無しさん
17/08/22 20:02:03.90 u7G+rQ2a0.net
>>643
Linux君はスルー推奨

651:デフォルトの名無しさん
17/08/22 20:17:38.32 S++Cl2tB0.net
>>643
何度位までなら平気?

652:デフォルトの名無しさん
17/08/22 20:48:21.01 z3/lSVpqa.net
最大積載量:積めるだけ
まで読んだ

653:デフォルトの名無しさん
17/08/23 00:34:13.58 LJ4nsAN90.net
以下のようなHogeクラス型を定義して、List<Hoge> hoges というリストがあるとします。
class Hoge{
public string Name{ get; set; }
public int Age { get; set; }
public int Point { get; set; }
}
この時、hoges の各リストのAgeやPointの合計を1行で取れるクールなLinqを教えてください!
foreachなどでくるくるするしかないでしょうか?

654:デフォルトの名無しさん
17/08/23 00:36:48.60 kJ94jZYwM.net
hogea.Sum(i => i.Point)

655:デフォルトの名無しさん
17/08/23 01:07:33.71 8boGf0CHM.net
>>648
うおおお!超クール!!
ありがとうございます。

656:デフォルトの名無しさん
17/08/23 12:12:08.46 fFGpTDWIM.net
>>648
こーゆうコード集みたいなものどこかありませんか?
書籍でもいいです。

657:デフォルトの名無しさん
17/08/23 12:32:51.30 Bqf1nBHjd.net
>>650
ググれ

658:デフォルトの名無しさん
17/08/23 12:45:55.97 7K7+SK5b0.net
IntelliSenseに全部出るじゃん

659:デフォルトの名無しさん
17/08/23 13:01:43.39 eVg7CM3YM.net
>>650
LINQの基礎の基礎なんだから
これ知らないならコード集の前に基礎学習したほうがええんと違うか

660:デフォルトの名無しさん
17/08/23 13:52:13.78 qwZ8bOdEM.net
>>653
腰据えて勉強なんてしない、必要に迫られて都度聞いたりググったりして断片的な情報でその場をやり過ごすプログラマが大半

661:デフォルトの名無しさん
17/08/23 17:44:12.69 kf+gYKjIM.net
それでいいんだよ
時間は有限なんだから腰を据えて勉強する対象は厳選しなきゃ

662:デフォルトの名無しさん
17/08/23 18:41:09.25 Afml/4LQa.net
結局やらなきゃ忘れるしな
こうすれば出来るって頭の片隅にでもあればok
もちろん知ってるに越したことはない

663:デフォルトの名無しさん
17/08/23 20:42:57.17 eVg7CM3YM.net
でもLINQは激選した中でも上位に位置すると思う

664:デフォルトの名無しさん
17/08/23 21:32:17.29 WLX1rD7y0.net
腰据えて勉強なんかしなくても使うだけなら全然問題ない

665:デフォルトの名無しさん
17/08/24 00:46:57.05 Q8+yPkYs0.net
30桁の英数字混在パスワード

って総当たりで解析無理だよね?

666:デフォルトの名無しさん
17/08/24 01:41:05.34 l9QBhR2xM.net
>>657
別に使わなくても同じ事書けるし。
ただ行が短くなるだけ

667:デフォルトの名無しさん
17/08/24 01:48:00.53 VK4+zNaD0.net
ユニットテスト必須の土壌じゃないとLINQとか他人に薦める気にならんわな
メソッドがクソ長くても単体テスト通れば良いんだろで終わっちゃうし

668:デフォルトの名無しさん
17/08/24 02:24:29.26


669:Pz57oiAha.net



670:デフォルトの名無しさん
17/08/24 06:29:18.71 CEXjJv+U0.net
>>661
メソッドがクソ長いのは別問題
そんなんまともにUnitTestできんだろ

671:デフォルトの名無しさん
17/08/24 08:40:38.96 XrT3rCcY0.net
>>662
しょっぼw
どういうレベルでプログラムを書いてるのか余裕で知れるな

672:デフォルトの名無しさん
17/08/24 08:44:57.20 82a0JzXma.net
>>664
だっせw
教育レベルが知れてるな

673:デフォルトの名無しさん
17/08/24 08:49:24.22 m0+KU43R0.net
お前らマウンティングしないと死んじゃう病か何かなの

674:デフォルトの名無しさん
17/08/24 08:56:00.31 5RRADv5lM.net
独立な処理に途中経過もクソもないわな
処理の詳細を無視して入出力のルールにフォーカスする考え方ができてないとそりゃ難しいだろうな

675:デフォルトの名無しさん
17/08/24 08:59:48.07 8SwKEq/O0.net
ラムダ式の部分にブレークポイント置けばそこだけ追えない?

676:デフォルトの名無しさん
17/08/24 10:57:24.20 RXm0c/8Od.net
>>668
Ozcodeとかじゃないと無理

677:デフォルトの名無しさん
17/08/24 15:20:26.85 PEdDcCzs0.net
VS2015からは可能でしょ?

678:デフォルトの名無しさん
17/08/24 16:23:39.34 RXm0c/8Od.net
>>670
ソース

679:デフォルトの名無しさん
17/08/24 18:49:58.57 PEdDcCzs0.net
>>671
2015時点じゃ ウォッチかイミディエイトでした。
2017ならブレーク貼れる。
URLリンク(blog.okazuki.jp)

680:デフォルトの名無しさん
17/08/24 21:46:31.96 mLP6maQg0.net
メモリに常駐しているプロセスって簡単に取得できますか?

681:デフォルトの名無しさん
17/08/24 22:02:11.02 SLJfaWYPa.net
DOSの時代じゃないので常駐って概念に意味があるとは思えない気が
今でも慣用句的に常駐とか言うけどね

682:デフォルトの名無しさん
17/08/24 22:28:03.16 fiQElVMv0.net
>>673
こういう話か?
実行されているすべてのプロセスを取得する
URLリンク(dobon.net)
関連は一つ上のメニュー

683:デフォルトの名無しさん
17/08/24 23:46:42.82 gc1mfL3U0.net
もしかしたらすれ違いかも知れませんが気にせず質問させていただきます
先日パソコンが壊れました
電源をつけると5秒後に再起動を繰り返してしまいます
原因がわからないのですが
どなたか対応方法などご存知の方いたら教えてください

684:デフォルトの名無しさん
17/08/24 23:50:07.54 PtEvZ+0qM.net
買い換えると良いよ

685:デフォルトの名無しさん
17/08/25 10:56:32.35 KkUPiSlg0.net
>>676
馬鹿は死ね

686:デフォルトの名無しさん
17/08/25 12:00:23.99 tShs1oZ90.net
>>676
OSは? 機種は古いの? 型番とかわかる?
5秒で再起動する直前の画面はどうなってる?

687:あ
17/08/25 12:02:47.95 TfQrtDcX0.net
こりゃあ面白いわ!!
URLリンク(blogs.yahoo.co.jp)

688:デフォルトの名無しさん
17/08/25 15:42:19.12 pvZFeD5Y0.net
このスレはLINQ大嫌いおじさんがいるからしゃーない
もう新しいこと覚えられないんだよ

689:デフォルトの名無しさん
17/08/25 18:18:09.76 WezsaSE3a.net
初心者ってんだからこのスレで扱うこともないかな?

690:デフォルトの名無しさん
17/08/25 18:20:09.66 WezsaSE3a.net
LINQ友の会ってスレあるじゃん

691:デフォルトの名無しさん
17/08/25 18:26:35.82 7dyqz+BhM.net
Linqが新しいってタイムスリップでもしたのか
とっくに枯れてるだろ

692:デフォルトの名無しさん
17/08/25 20:28:11.24 CEzIFhYxd.net
>>684
そこは立ち位置的に枯れてるって云えよw

693:デフォルトの名無しさん
17/08/25 20:31:38.77 KodDhcxm0.net
普及するわけがないと誰かが言ってたがその通りになった。
ネラーはなかなか先見の目がある。

694:デフォルトの名無しさん
17/08/25 23:09:26.41 pvZFeD5Y0.net
LINQ普及してないってどこの世界の話?
よっぽどレベル低い職場なのかな

695:デフォルトの名無しさん
17/08/25 23:27:50.33 owge4R3Ba.net
>>687
おk、LINQは超流行ってる
でも初心者向けじゃないから別スレでやってな

696:デフォルトの名無しさん
17/08/25 23:33:49.01 xduHYZQR0.net
お仕事でC#使っている人の何割がC#4.0以降の表記使っているか気になるわ

697:デフォルトの名無しさん
17/08/25 23:59:37.12 58ENjuei0.net
>>688
むしろ初心者向けじゃね?
パフォーマンス気にしだすと、StackOverflowの中の人みたく、全ての.csファイルからusing System.Linqを消し去ったりするw

698:デフォルトの名無しさん
17/08/26 00:27:43.45 8TG2nidm0.net
URLリンク(libro.tuyano.com)
このページにある
MyObject obj = new MyObject();
obj.name = "つやの";
obj.age = 123;
obj.printData();
MyObjectクラスを使うこの部分はなんといいますか?
また、obj を変えて複数の上記のような構成を作るとそれに伴いちゃんと表示は増えますが、
objに当たる部分を必要に応じて動的に増やすということは可能のなのでしょうか?
インスタンスを動的に増やす で検索しても見当違いなものがヒットしますので、自分の中で言葉が間違ってるとは思いますが
よろしくお願いします

699:デフォルトの名無しさん
17/08/26 00:28:34.42 c9f1oCv90.net
よくパフォーマンス云々言う奴が居るけど
C#使う用途でLINQ程度のオーバーヘッドが気になるのってどんな場合だよ
書きやすさ捨てても速度ほしいならC++でも使ったほうがいいんじゃないの

700:デフォルトの名無しさん
17/08/26 00:38:20.18 2smXR1J8M.net
>>691
そのレベルならまずは入門書を一通り読もう
時間の無駄だ

701:デフォルトの名無しさん
17/08/26 01:16:27.80 lejZryYl0.net
そのレベルの回答ならまずは入門書を一通り読もう
時間の無駄だ

702:デフォルトの名無しさん
17/08/26 05:00:00.26 E0KllEFJ0.net
>>692
StackOverflowの例が出てるやないか

703:デフォルトの名無しさん
17/08/26 08:01:09.16 kTTj1e9la.net
でも実際のところ遅いよなあ

704:デフォルトの名無しさん
17/08/26 08:49:05.86 JBmiypd/0.net
.netnativeは早いぞ
アレがFormsとかWPFに降りてくることはなさそうだが
UWPで作れる範囲は移行するべきだと思うわ

705:デフォルトの名無しさん
17/08/26 10:09:45.73 c9f1oCv90.net
>>695
ググっても出てこなかったんだけどソースある?

706:デフォルトの名無しさん
17/08/26 11:54:04.74 lejZryYl0.net
LINQスレがあったぞ。そっちで聞いてはどうか。
10年で1スレ消費できないぐらい過疎ってるが。

707:デフォルトの名無しさん
17/08/27 06:31:24.46 7Xxy3tOq0.net
いやStackOverFlowの開発者がLINQ全消ししたって情報出した本人がすぐ上にいるのに
なんでそっちで聞かなきゃいけないの

708:デフォルトの名無しさん
17/08/27 07:45:43.39 +QB1TWiX0.net
大規模のプログラムを解読する場合にはどういう方法でアプローチしますか?

709:デフォルトの名無しさん
17/08/27 07:54:29.85 zeyYP0xT0.net
>>697
>.netnativeは早いぞ
>アレがFormsとかWPFに降りてくることはなさそうだが
なぜ降りて来ないんだろうなあ
普及させれば良いのに

710:デフォルトの名無しさん
17/08/27 08:13:43.76 pEA0SSCb0.net
WinFormsとWPFはMSに捨てられたから仕方ないね

711:デフォルトの名無しさん
17/08/27 08:45:58.12 +QB1TWiX0.net
Winform とWpfを捨てたら何がのこるん?

712:デフォルトの名無しさん
17/08/27 09:40:24.19 s4SYRXbe0.net
ゴミとちょまど神

713:デフォルトの名無しさん
17/08/27 10:27:41.65 +QB1TWiX0.net
WIN32だな

714:デフォルトの名無しさん
17/08/27 10:29:06.43 +QB1TWiX0.net
>大規模のプログラムを解読する場合にはどういう方法でアプローチしますか?
これだけど、本質的を手短に説明できるちょっとレベルの高いひといる? 

715:デフォルトの名無しさん
17/08/27 10:29:16.65 1dVSy16q0.net
そこでざまりんですよ

716:デフォルトの名無しさん
17/08/27 10:35:48.21 Ss/d45M6M.net
>>701
リファクタリング
コミットはしなくていいぞ

717:デフォルトの名無しさん
17/08/27 10:38:53.50 +QB1TWiX0.net
>708
バインドって意味不明なんだが、
TEXT = データ
って書くのと
TEXT ={ バインド データコンテキスト}
って書くのでどんなメリットがあるの? というか1000万個のデータある時に1000万個にバインド
できんでしょ。バインドできるのはその中の一個だから、データを選択しないといけないよな。
でボタンを押されたら、データを選択して、データコンテキストにほりこむんだろ。代り映えがないような
きがする。

718:デフォルトの名無しさん
17/08/27 10:40:27.67 +QB1TWiX0.net
>>701
そう、その言葉をまっていました。そのリファクタリングを掻い摘んで説明してください。

719:デフォルトの名無しさん
17/08/27 10:43:38.89 Pcpci17F0.net
ユーザはWinFormを捨てないから安心して。

720:デフォルトの名無しさん
17/08/27 10:45:36.83 +QB1TWiX0.net
>711
自己解決した。

721:デフォルトの名無しさん
17/08/27 10:46:17.35 J8/CoBlN0.net
>>710
実際、大したメリットはない
最近の流れとしては、Web分野でも一時期バインドが流行っていたけど結局はユーザー操作時の代入に回帰しつつある
所詮は「手作業で代入すんのめんどくせえ」ってだけの問題であって、バインディングはそれだけのために過剰な複雑さを持ち込みすぎている

722:デフォルトの名無しさん
17/08/27 10:47:48.02 42wr1dDO0.net
>>701
まず解読しなくていいように段取りだ

723:デフォルトの名無しさん
17/08/27 10:48:36.94 +QB1TWiX0.net
リファクタリングで
★継承を委譲に置き換える
 継承では基底クラスのすべてのメンバを、サブクラスに許さなければならない。
 基底クラスの一部だけの機能を利用する場合は、継承の代わりに委譲を使う。
これはどういう意味?

724:デフォルトの名無しさん
17/08/27 10:49:09.92 42wr1dDO0.net
>>710
セキュリティチェックが簡単だからでしょ
代替方法あるなら拘る必要ない

725:デフォルトの名無しさん
17/08/27 10:59:37.52 hG554Uge0.net
>>716
それはプログラムを読むための手法でなく最適化するための段取りってのはわかっている?
あとはオブジェクト指向とかのキーワードでググってみるほうが速い

726:デフォルトの名無しさん
17/08/27 11:00:37.70 +QB1TWiX0.net
>>714
デザイン(View)はアーティストの俺が書いて、「土方ロジックは知らん。お前等に任した」っていう時にはいいかもしれない。
しかしその場合にもボタンと同期してデータを切り替えないといけないよね。その仕組みってどうなってるの?
ボリュームを回すから、データはそれに合わせてかえてよねっていうようなこと。

727:デフォルトの名無しさん
17/08/27 11:01:25.93 +QB1TWiX0.net
>>718
VB6をC#に変更するんだが、VBソフトを解読する場合にはどこから手をつける?
画面数が70程度、クラスが10個、標準モジュールが30個位ある。
とりあえずクロスリファレンスを作ってみようとおもってるんだが、何か方法論とかないかなーとおもっている。
そこでリファクタリングをするというのは一つの手ではある。

728:デフォルトの名無しさん
17/08/27 11:04:21.15 +QB1TWiX0.net
VB6ってのは知らないかもしれないが、VBAと同じで標準モジュールというのは
グローバル変数で、これが大量にあるので難儀している。

729:デフォルトの名無しさん
17/08/27 11:05:21.87 GF


730:DdydysM.net



731:デフォルトの名無しさん
17/08/27 11:05:33.18 hG554Uge0.net
>>720
VBなんか知らんし
仕様書があれば仕様書見て作り直し必要な部分だけ元のソース参照する
仕様書が無いのなら動作確認して自分で仕様書書くところから

732:あ
17/08/27 11:21:08.14 0sFxQlMgd.net
>>719
デザインセンター持ってる会社なら、ホントに分業出来るから楽だと思うよ。
ボタンと同期して中身変える、ってのは、ダミーデータ返す関数と、メソッドのスタブ最初に用意して、それを渡す。なかったら「くれ」って言ってくるし。
どちらも無意味な不幸の無いプロジェクトになる。

733:デフォルトの名無しさん
17/08/27 11:21:43.63 +QB1TWiX0.net
>>722
分かり安い説明だが、愛がない。そこもかなり重要だと思う。ところでWPFって
やったことないのだが、やってみたい。
最初はVB6のフォームのコントロールのリストと位置を拾いだせば画面は自動的に変換できそうなので
そうしようかと思ったのだが、XMALでやるってのは難しいだろうか?

734:デフォルトの名無しさん
17/08/27 11:25:19.91 +QB1TWiX0.net
>>724
そうだね。アーティストの俺には土方仕事を丸投げできるからかなり有利かも。

735:デフォルトの名無しさん
17/08/27 11:47:31.40 fbqxfljfa.net
>>720
解読するって言うのはまず間違いじゃないかな
顧客から要望聞いてSEが再設計して仕様書作るのが正しい

736:デフォルトの名無しさん
17/08/27 11:49:16.29 +QB1TWiX0.net
>>仕様書が無いのなら動作確認して自分で仕様書書くところから
ソースを解読してその仕様書を書く手順を考えている。うまくコンパイルして動かすこともできたん
でソースを解読しつつ整理して、最終的に変換をする。
具体的には
整理
1.クロスリファレンスをだしてグローバル変数を整理
2.画面がやたら多いので手書きで書き直すのはとっても大変だ。
しかし殆どはパラメータの設定のような単純な画面なので、画面の書き換えはプログラムで変換できそうだ。
しかし内部のイベントロジックをどうするかだな。画面はC#でもVBでも好きなように変換できるが、ロジック
はC#に変更するのは正気の沙汰ではないな。
やはりVB.netに置き換えるべき。となるとやはりVB.NET Winform以外の選択肢はないのか?

737:デフォルトの名無しさん
17/08/27 11:56:58.26 +QB1TWiX0.net
>顧客から要望聞いてSEが再設計して仕様書作るのが正しい
もともと正しくないところから出発しているので、正しい方法は取れない。唯一できるのは
自由に作れるということだけ。しかも動きさえすればいいというレベルの客。ただし.netで
作るというのが条件でソースも提出することになっている。C#でもVBでもWPFでも問題ない。
 大半をDLLにして、上っ面だけNETでもいい。

738:デフォルトの名無しさん
17/08/27 11:57:14.71 fbqxfljfa.net
ID抽出してみたけど
プロに頼んだほうがいいよ

739:デフォルトの名無しさん
17/08/27 12:01:04.00 FvXw0+6i0.net
ソース提出って下手な仕様書出すより厳しいと思うんだが

740:デフォルトの名無しさん
17/08/27 12:03:03.81 fbqxfljfa.net
>>729
レスを読んで思ったけど本人は真面目なのかもしれないが
やってることは素人の趣味の延長レベル
それで給料がもらえるって非常にありがたいことだね

741:デフォルトの名無しさん
17/08/27 12:16:29.66 +QB1TWiX0.net
平和だからね。

742:デフォルトの名無しさん
17/08/27 12:18:52.83 +QB1TWiX0.net
>プロに頼んだほうがいいよ
頼んだのだけどやる人がいない。

743:デフォルトの名無しさん
17/08/27 12:21:18.06 8n2Hj3z6a.net
>>720
VS2008まではVB6⇒VB2008へのコンバーターがついてたので、
VS2008かVB2008 Expressをなんとか手に入れて、とりあえずVB2008に変換して
みたらどうかなと。
まあ変換精度は高くないので手直ししないとまず正常に動かないし、
返還後のコードはMicrosoft.VisualBasic名前空間とかVBランタイム関数とか
使いまくりなので、それをさらにC#で書き直すのはかなり大変だと思うけど

744:デフォルトの名無しさん
17/08/27 12:31:29.70 +QB1TWiX0.net
>>720
それは調べてやってみたが、1時間かかっても変換できなかったよ。
一時間たってキャンセルしたら1kのLogファイルが残ってた。
多分簡単なものなら変換できるだろうと淡い期待はもっている。リファクタリングして疎結合にすれば
3つに分解できそう。
 IOコントロール
 DBアクセス
 画面
IOが厄介だなーとは思う。多分この部分がよくわからないのでプロは逃げ出す。

745:デフォルトの名無しさん
17/08/27 12:35:37.88 +QB1TWiX0.net
>使いまくりなので、それをさらにC#で書き直すのはかなり大変だと思うけど
混在してつかえるし、VBのクラスはそのまま呼び出せるので不都合のある部分だけラッパーすればいいだけでは?
それならVBで書けよって話になるかもしれないが、追加部分だけでもC#にしたい。

746:デフォルトの名無しさん
17/08/27 13:14:51.06 Ss/d45M6M.net
VB6置き換えは元が酷いスパゲティだしCOMコンポーネントの代替ライブラリが見つかんないと詰むしロクなことにならない
要件定義からリビルドしたほうがマシだぜ

747:デフォルトの名無しさん
17/08/27 13:15:02.42 zg/5OaZO0.net
htmlの文章をC#で書くメリットは有りますか?
無ければテンプレ落として来て挿入するだけなんですけど。

748:デフォルトの名無しさん
17/08/27 13:16:46.63 Pcpci17F0.net
素人はすぐ新しく作り直せとか言うんだよな。

749:デフォルトの名無しさん
17/08/27 13:29:37.85 Ss/d45M6M.net
>>740
一般論的に言ってリプレースは最後の手段だ
少なくとも数ヶ月はリファクタリング、リアーキティングなど試せることは試した上で
それでも手に負えないと判断してからリプレースに着手する
いきなりリプレースはリスクがデカすぎる
しかしながら経験上VB6の移植は結局リプレースになることが多いんだわ

750:デフォルトの名無しさん
17/08/27 13:33:01.79 +QB1TWiX0.net
>>738
確かにそういうばあいもある。モジュールが多いのが問題だけれどもクラスを使っているから、そんなに下手なプログラムではないね。
VB6でクラスを使っているとまあまともだね。

751:デフォルトの名無しさん
17/08/27 13:48:07.30 Ss/d45M6M.net
>>742
UI class : other class : static class = 7 : 1 : 3
かなりバランス悪いと思うぞ
綺麗なソースになってるとは期待できない

752:あ
17/08/27 14:21:50.71 0sFxQlMgd.net
>>726
工業デザインの人に、アーティストと言うと鉄拳飛んできたイメージだが、今のデザイナーはアーティストはなのかな。
俺もデザイン系の単位も資格も持ってるけど、アートと思った事は無いなぁ。

753:デフォルトの名無しさん
17/08/27 16:04:23.27 aV3uBNlQM.net
URLリンク(www.atmarkit.co.jp)

754:デフォルトの名無しさん
17/08/27 16:30:03.45 QZuIwK0r0.net
VB6のコードを解読しないといけないアーティストw
システムの内側からじゃなく外側から整理して
ユースケース単位や機能単位でコードリーディングしていくのが効率的

755:デフォルトの名無しさん
17/08/27 16:47:16.97 UU3MXRkga.net
プログラム本体やシステム全体の仕様が分かってるならゼロから書き直した方が
結局早いと思うけどね。
そもそも今更C#でに移行するのは、将来手を入れる可能性があるからじゃないの?
だとしたら長期的なメリットデメリットを考えてもそうした方がいいよね。
「動いてるプログラムを触ってはいけない」ってのは個人的にはダメな人の台詞だと思うね。
それ、自分のコードを理解する能力が不十分だって語るに落ちてないか?

756:デフォルトの名無しさん
17/08/27 17:04:06.72 +4gR/MAE0.net
COMとドトネトの相性が良くないのは意外だったなあ

757:デフォルトの名無しさん
17/08/27 17:30:52.38 +kJVVvm3a.net
>>747
理論上触らなければバグらない以上
用も無いのに触る一手はないな

758:デフォルトの名無しさん
17/08/27 17:33:19.12 UU3MXRkga.net
>>749
だから、「用がある」から今更C#で書き直すんでしょw
間違った前提から間違った結論を導いてもしょうがないよww

759:デフォルトの名無しさん
17/08/27 17:35:20.33 QpZ6CaB1M.net
既存のクラスを触りたくないといって
間違った場所にコードを追加していったやつがおってな
気がつくと見事なスパゲティの塊が出来上がっていたんだとさ

760:デフォルトの名無しさん
17/08/27 18:26:10.44 QZuIwK0r0.net
>>747
詳細仕様が分かってないからコードを読もうとしてるんじゃ?

761:デフォルトの名無しさん
17/08/27 18:37:29.03 q8gbijSsa.net
>>750
それは現状が正解じゃない状態になったのかい?

762:デフォルトの名無しさん
17/08/27 19:20:19.44 +QB1TWiX0.net
技術的アプローチに対してアーティスト的アプローチもある。そもそも専門家が遣らないという
のは技術的に興味がない。もしくは打算的技術者なら経済的に見てもメリットがないということだ。
つまり儲からない。そういう結論がでている。
 しかしアーティストの見解は違う。アーティストにとっては技術とか打算とかの優先順位は
かなり低い。すべての仕事はどう料理するかがアーティストのアーティストたる能力の発揮し
どころだから、技術屋から見るとかなりリスキーであっても敢てやってみる。

763:デフォルトの名無しさん
17/08/27 19:24:45.57 +QB1TWiX0.net
>>752
表面的な仕様というかパラメータの設定とか動作などの取り扱い方法は客先で大体はわかる。
しかしメカの細かい動作なんかの部分は一切分からない。動作検証は客先でやってくれる。
結果が正しいかどうかは客先でわかる。

764:デフォルトの名無しさん
17/08/27 19:44:16.32 DBQBoW3m0.net
22回だと

765:デフォルトの名無しさん
17/08/27 19:46:36.23 hG554Uge0.net
もうNGでいいよ。作り話だろうから

766:デフォルトの名無しさん
17/08/27 20:58:41.04 QZuIwK0r0.net
>>754
あ~~、敢えてね・・・(察し)

767:デフォルトの名無しさん
17/08/27 21:35:03.08 htfhfzKBM.net
虚言は多弁にて構築する

768:デフォルトの名無しさん
17/08/28 21:24:49.09 jkZMoX4aM.net
>>720
昔、なんかのツール使ってVB6を.NETにしたよ。
急には上がらないから2005にして2008にして2010だったかな。
段階的に変えていく。
それぞれの.NETstudio使う。
前のバージョンを上げられるよ。
2005から2010とかは確かできない。
で、最後にC♯にすればよくね?

769:デフォルトの名無しさん
17/08/28 21:34:07.26 o3aBTh5N0.net
VB6から2010までは一気にいけたはず
そのあと2013までいったら2017まで共通

770:デフォルトの名無しさん
17/08/28 23:16:58.67 LI+9ess2a.net
上にすでに書いたけど、VB6のコンバーター(アップグレードウィザードとか言ったと思ったけど)
がついてたのはVS2008までだよw

771:デフォルトの名無しさん
17/08/29 00:32:19.56 TMhzTuGH0.net
マジか
VB6を2010で開いた記憶があったがボケちゃったな
すまんこ

772:デフォルトの名無しさん
17/08/29 00:56:21.39 BmkqqErg0.net
>>763
発言には責任を持って手で変換してね はぁと

773:デフォルトの名無しさん
17/08/29 07:36:26.75 X4Q/TPlHM.net
コンバーターってロクな結果にならないアレか
手で移植したほうがマシって有名なやつ

774:デフォルトの名無しさん
17/08/29 07:50:29.80 se0bVMb80.net
前VB6を.NETに移行する案件あったなスルーしてよかった新人突っ込んだらしいし
配列要素の1始まりとか鬼門過ぎるVB6触ったこと無いが

775:デフォルトの名無しさん
17/08/29 08:00:33.67 4AYdjmhP0.net
>>766
だめな会社だな
そういう案件にこそ玄人を投入すべき
(玄人=知らない言語でもコードが読める能力を持つ者)

776:デフォルトの名無しさん
17/08/29 08:13:07.45 KBcajP1UM.net
VB.NETの配列はX(N)で宣言するとX(0)~X(N)まで確保される仕様だから、
VB6からの移植の場合はX(0)を無視すればインデックスはだいたいそのままで動くぞ
汚いといえば汚いけどこの仕様を決めた奴は有能だと思う

777:デフォルトの名無しさん
17/08/29 14:29:00.01 z6aeY2gd0.net
逆にVBを1始まりにした奴はとんでもない無能だな

778:デフォルトの名無しさん
17/08/29 14:50:21.63 qDW+6cr0a.net
VB以前のBASICからの伝統なので、、、

779:デフォルトの名無しさん
17/08/29 14:52:25.47 qDW+6cr0a.net
いや、その前のCOBOL,FORTRANからか

780:デフォルトの名無しさん
17/08/29 15:06:42.27 r/k5/IVc0.net
MS-Basic書いたのはビル・ゲイツだな

781:デフォルトの名無しさん
17/08/29 15:41:44.42 /sqn3fx+a.net
BASICのBの意味を考えれば、その方がとっつきやすいという判断でしょう。
プログラマの視点で考えれば、0オリジンの方がきれいに実装できるに決まってるし

782:デフォルトの名無しさん
17/08/29 15:53:08.07 XtumNqBwH.net
VB6でもデフォルトはOption Base 0だろ?

783:デフォルトの名無しさん
17/08/29 16:14:24.95 /sqn3fx+a.net
>>774
そうらしいね
URLリンク(msdn.microsoft.com)

784:デフォルトの名無しさん
17/08/29 17:59:14.69 dKAQo2Vla.net
配列が0スタートのせいでバグが量産されてるという気もするが
それは個人の考え方次第
配列1個目が0番
配列2個目が1番
配列N個目がN-1番

785:デフォルトの名無しさん
17/08/29 20:03:57.06 zDssXbBFM.net
気になるなら下限も指定すればいいのに...

786:デフォルトの名無しさん
17/08/29 20:53:58.30 Vnq3Ax6Ua.net
配列の要素数があれ?ってなる

787:デフォルトの名無しさん
17/08/29 21:20:52.33 BqQa7G9t0.net
>>768
ソースが出てこないが.Net化の際にゼロで統一するようにしたら
ベータ版の段階で世界中からクレームのフィードバックが沢山あったので
その折衷仕様になったはず。

788:デフォルトの名無しさん
17/08/29 21:23:35.54 BqQa7G9t0.net
ゼロで統一じゃないや。C系に揃えるってことでした。
ExcelのCellオブジェクトと関連させる場合は
1スタートto要素数=最終行or列で合う

789:デフォルトの名無しさん
17/08/29 21:34:26.94 r/k5/IVc0.net
Cの基本はポインタで、配列ってのはポインタのシンタックスシュガーだからね
添字は*(p+x)のxだから0始まり

790:デフォルトの名無しさん
17/08/29 21:38:30.14 K1eHFhhta.net
折衷っていうか文化の違いでしょ
C系と違ってVBの配列作成時に指定する値は、添え字の最大値ってことになってたはず

791:デフォルトの名無しさん
17/08/29 23:45:49.74 Z8GIMLiK0.net
抽象クラスのoverride で、型を変えるような事はできるでしょうか?
以下のようなコードが書けるかなと思ったのですが
戻り値はあくまでList<object>でないとダメみたいなので
書く方法があればお教えください
public class hoge { }
public class fuga { }
public abstract class Base
{
public abstract List<object> GetData();
}
public class SubOne : Base
{
public override List<hoge> GetData()
{
return null;
}
}
public class SubTwo : Base
{
public override List<fuga> GetData()
{
return null;
}
}

792:デフォルトの名無しさん
17/08/30 00:17:18.47 RiHZq49u0.net
それはシグニチャが違うから別メソッドじゃ?
overrideはずしてみ

793:デフォルトの名無しさん
17/08/30 00:21:31.70 M/4qyBdLa.net
これじゃいかんの?
public abstract class Base<T>
{
public abstract List<T> GetData();
}

794:デフォルトの名無しさん
17/08/30 00:30:38.41 aQB+rR710.net
同じGetDataメソッドで別のデータ取得させたいのはなんか理由あるのかね
hogeとfugaが抽象化できるならともかく

795:デフォルトの名無しさん
17/08/30 01:23:10.88 ZNhSKe/9a.net
typescriptやjavascriptから流れてきたんだろうな
と勝手に妄想

796:デフォルトの名無しさん
17/08/30 01:26:58.62 ZNhSKe/9a.net
>>784
戻り値の型だけ違うシグネチャは判定ができないから設定できない

797:デフォルトの名無しさん
17/08/30 01:31:51.49 RP2OopsU0.net
ジェネリック使え

798:デフォルトの名無しさん
17/08/30 01:43:21.54 DqOxxcW/0.net
関係ないけど戻り値はインタフェースで返してくれよな

799:デフォルトの名無しさん
17/08/30 02:22:24.13 RiHZq49u0.net
>>788
他言語で実現できてるのは戻り値型の共変性ってやつなんやね。
勉強になったわ。ありがと。

800:デフォルトの名無しさん
17/08/30 04:42:52.63 RyepnT5X0.net
>>785
これ

801:デフォルトの名無しさん
17/08/30 12:13:11.62 ZNhSKe/9a.net
本来は継承で解決すべき事柄じゃないものも何でも継承で
解決しようとする

802:デフォルトの名無しさん
17/08/30 13:29:51.66 flwVYOal0.net
一見>>785でよさそうに思えるが
よくよく考えると使い道が分からん
Base<hoge> と Base<piyo> は違う型になるので
それらを継承したクラス同士も違うクラスから派生しているっつーことで
統一的には扱えなくなる
差分プログラミングがしたいならそれでよいが
なら、Baseクラスのabstractの意味は何だ?

803:デフォルトの名無しさん
17/08/31 07:11:58.47 uXMS1+GuM.net
783ですが、抽象化したテーブルクラスを作って、テーブル単位で選択結果を返す具象クラスを作りたかったのですが、Dapperを使うのでメソッドの戻り値がList<T>となり戻り値の型が具象クラス毎に違っています
こういう例が無さそうということはアンチパターンやってるでしょうか

804:デフォルトの名無しさん
17/08/31 07:23:02.32 ukHSVGRna.net
目的を明確にしていらねーもん全部捨てろよ

805:デフォルトの名無しさん
17/08/31 07:53:46.13 5L4gV5sHM.net
>>795
interface IDao<TEntity, TId> {
TEntity ReadOne(TId id);
IEnumerable<TEntity> ReadPage(int pageSize, int pageIndex);
void Create(TEntity e);
void Update(TEntity e);
void Delete(TEntity e);
}
class FooDao : IDao<Foo> { ... }
これじゃいかんのか?

806:デフォルトの名無しさん
17/08/31 18:48:22.38 RNa0QExKM.net
>>797
テーブルのみを扱うので同様の属性という意味で抽象クラス使ったのですが、インターフェイスで選択したデータを返す機能として定義した方が良いでしょうか
抽象とインターフェイスの使い分けに今ひとつ自信がなくて

807:デフォルトの名無しさん
17/08/31 19:00:57.90 knvUk5zeM.net
>>798
使い分ける必要はない
is Aだのcan Aだの言ってたのは昔の話で、今時はどうしても実装を継承する必要がある場合以外は基本的にインターフェースを使う
もっというと、実装継承のために抽象クラスを使う場合はインターフェース継承とは本来区別して考えるべきで、
インターフェース←抽象クラス←具象クラス
という継承関係にするのが理想
抽象クラスはあくまで実装の共通化のためのツールに過ぎない

808:デフォルトの名無しさん
17/08/31 21:53:11.25 gYg3phKFa.net
Table<T>を作ってGetData<T>
それ以上の機能を使いたかったら適当なクラスを作ってTable<T>をコンポジション

809:デフォルトの名無しさん
17/08/31 22:03:15.27 rtd0E2rY0.net
>>800
単体テストで差し替えできなくね

810:デフォルトの名無しさん
17/08/31 22:22:29.61 izluyX1Ma.net
>>799
何が良くてそんなことやってんの?
変更があったら変更すればいいじゃん

811:デフォルトの名無しさん
17/09/01 05:13:10.52 JBM8M4Dg0.net
MariaDBってデフォで接続できたりする?

812:デフォルトの名無しさん
17/09/01 07:26:54.74 swl6M8kLM.net
>>799
それはDIってデザインパターンでしょうか
なんか教科書のインターフェイスと使い方が違うので理解出来なかったのですが

813:デフォルトの名無しさん
17/09/01 14:07:02.06 RTadbuNn0.net
インターフェースは、has-a、部品化。車とハンドル。
抽象クラスは、is-a、継承。車と消防車
継承は、クラスに親子関係がある。
非常に似ているもの同士
部品化は、全く異なるもの同士
DI は、XMLなどの設定ファイルから、クラスを自動的に作る、ジェネレーター

814:デフォルトの名無しさん
17/09/01 15:17:36.03 sKG/CNAU0.net
>インターフェースは、has-a、部品化。車とハンドル。
↑これマジ?
でも>>799では「can A」って書いてあるよ
大マジ?
そんな説、聞いたことないんだけど

815:デフォルトの名無しさん
17/09/01 15:18:46.48 sKG/CNAU0.net
てかそんな(脳の)状態でプログラム書けるものなの?
C#優秀すぎだろ

816:デフォルトの名無しさん
17/09/01 15:27:41.14 RTadbuNn0.net
スッキリわかる Java入門 第2版、2014
Javaの人は皆、この本で、オブジェクト指向を学ぶ。
というか、日本では、この本しか無い
だから皆、C#をやる前に、Javaから勉強する
オブジェクト指向の最初のクイズが、is-a, has-a の例題

817:デフォルトの名無しさん
17/09/01 15:38:08.33 HIaJQCDW0.net
>>808
外国人みたい言葉遣いしてんな
いつの間にか2chもグローバル化してたのか
そして謎の熱いjavaのステマ付き

818:デフォルトの名無しさん
17/09/01 15:51:33.77 sKG/CNAU0.net
で、最初のクイズで間違ってたら、どうしようもなくね?
has-aはコンポジションであってインターフェースは関係ない

819:デフォルトの名無しさん
17/09/01 15:59:59.83 olFLJFhOM.net
この人あちこちのスレに突如出現しては的外れで一方的な持論とともに書籍を紹介する変な人だよね
書籍宣伝のボットなんじゃないかという気もするけど、もし人工知能だとしたらかなり優秀だと思う

820:スッキリ厨
17/09/01 16:39:36.84 RTadbuNn0.net
「たのしいRuby」「みんなのPython」とか、
掌田津耶乃の「はじめてのJavaScript」では、
オブジェクト指向の説明は、数十ページ
一方「スッキリわかる Java入門」では、250ページ!
他を圧倒してる
漏れは、10言語・数十冊以上は読んでる
本を読む順番は、
1. スッキリわかる Java入門
2. たのしいRuby
3. みんなのPython
C# なんかは、後の方

821:デフォルトの名無しさん
17/09/01 16:42:51.82 Gpi3WshSa.net
>>812
文法解説ばっかりで作って覚える系の本が無いな
なんか具体的にアプリケーション作れる本があった方がいいんじゃないか?

822:デフォルトの名無しさん
17/09/01 16:44:01.49 dv5tNHSMH.net
Javaが一番スッキリしてないと思うが

823:デフォルトの名無しさん
17/09/01 16:46:00.19 JdxtetydM.net
>>812
>10言語・数十冊以上は読んでる
バカじゃねぇの?

824:デフォルトの名無しさん
17/09/01 16:59:37.83 G1MJZtxwa.net
java,ruby,pythonの入門書に共通してるのが作って覚える系の本があまりない
javaはandroidのアプリの本が数冊だが出ているがandroidなんだよね
エミュでしか動かせなかったりイマイチ
そういう意味で入門書にはc#をオススメしたい
これならwindowsアプリが具体的に作って動かせるので絶対に初心者にはこちらのがいい
csvやxlsファイルの処理やDB接続の処理が書いてあったりするのもGood

825:デフォルトの名無しさん
17/09/01 18:15:16.28 e0+gOffZM.net
スッキリは詳しい説明をはぐらかして初心者を誤魔化そうって思惑が透けて見えんだよね

826:デフォルトの名無しさん
17/09/01 18:35:46.75 UZeCG1ZbM.net
>>812
ちゃんとコテハン登録しとけよ
NG登録しとくから

827:デフォルトの名無しさん
17/09/01 20:50:25.60 A4rxsWGh0.net
>>806
has-a capability
部品化とは違うけどね

828:デフォルトの名無しさん
17/09/01 21:08:27.70 v3Wg48+ra.net
真面目に言ってるのかボケてるのか何なんだろうねw

829:デフォルトの名無しさん
17/09/01 21:51:22.37 li9KR7ak0.net
UnityのためにC#もちょこちょこ勉強し始めたけど、Javaと大分似てるんだなこれ
本買おうと思ったけど、完全な新規向けのじゃなくて
言語仕様についてわりとがっつり書いてあるような本でお勧めってあります?

830:デフォルトの名無しさん
17/09/01 21:58:15.49 bJwSdbz60.net
入門書に移譲って書いてなかったんだろうか?

831:デフォルトの名無しさん
17/09/01 21:59:42.54 sKG/CNAU0.net
求めているものとは違うかもだけど
だいぶん古いけど
連載  改訂版 C#入門
URLリンク(www.atmarkit.co.jp)
はわりとがっつりC#の文法を網羅的に説明している
筆者の語りはうざいが・・・

832:デフォルトの名無しさん
17/09/01 22:03:23.25 sKG/CNAU0.net
Wikipediaでも
has-a
URLリンク(ja.wikipedia.org)
日本語では集約やコンポジション集約関係を意味する。
って書いてあるからね

833:デフォルトの名無しさん
17/09/01 22:08:01.94 XixvX44ca.net
クラスの機能はできるだけ簡素にを守っていると
is-aでいられるのは本当に基本的なクラスだけになる
普通にやってると絶対has-aの関係になる
継承を有効に使えるのはほんの一部

834:デフォルトの名無しさん
17/09/01 22:12:18.08 lXz+XipAa.net
>>823
c#最新?
で無いなら折角買ってもなぁ

835:デフォルトの名無しさん
17/09/01 22:35:02.89 ocN7XlE1M.net
>>821
少し古いがCLR via C#
C#やってて読んでないとモグリと言われる一冊

836:デフォルトの名無しさん
17/09/02 01:20:27.66 OFiHW9Qt0.net
javaは重い上にゴミ吐いて死ぬから嫌い

837:デフォルトの名無しさん
17/09/02 01:30:22.70 bF0cAHIp0.net
>>822
委譲ってなんですか?

838:デフォルトの名無しさん
17/09/02 04:34:44.87 tnM/ItCw0.net
>>826
イディオムの本、よかったけどなぁ。

839:デフォルトの名無しさん
17/09/02 09:49:42.44 TQXuPiZd0.net
約一年ぶりにプログラミングをしようと思いC#を選らびました
学生の頃にJavaやCは学習したため参考書の購入にあたって相談があります
今はこの三冊から購入を検討しています
URLリンク(www.sbcr.jp)
URLリンク(www.shoeisha.co.jp)
URLリンク(gihyo.jp)
最後の一冊の購入はほぼ決めているのですが、上の二冊のどちらかを読了した後読もうと考えています
Cのポインタ、Javaのオブジェクト等は理解しているつもりですので、今後辞書のように使えそうな独習C#に傾いています
上記以外でも適切な本やWebサイトがあれば教えていただきたいです。

840:デフォルトの名無しさん
17/09/02 09:59:09.48 5q6bBvmPM.net
>>831
独習c#ってc#のバージョン的に最新出てんの?

841:デフォルトの名無しさん
17/09/02 10:18:37.96 u30btijYd.net
>>831
c#で何をしたいの?

842:デフォルトの名無しさん
17/09/02 10:32:48.98 O1j4weutM.net
>>831
どれもハズレだな
CLR via C#
まずはこれを読もう

843:デフォルトの名無しさん
17/09/02 10:47:06.25 TQXuPiZd0.net



844:>>832 出版日から見るに最新のバージョンには対応していないように見えます >>833 ひとまずはコンソール上で動くプログラムを作ってみようと思ってます 後々はデスクトップアプリやUnityなどに手が出せるという理由でC#にしました >>834 英語に疎いおかげで良書でも読めません・・



845:デフォルトの名無しさん
17/09/02 10:50:46.46 oXM/ZCZp0.net
C#7.1なら本どころかMSDNのリファレンスじゃないと無理だろ
>>831
上に出ているじゃないか>>823
基本部分網羅してあってタダで見られるのだから本買う必要はない

846:デフォルトの名無しさん
17/09/02 11:08:34.82 TQXuPiZd0.net
>>836
最新版を追うなら本では厳しいということですね
目次を流し見してみましたが確かに入門には十分すぎる内容でした
ここで勉強してから本の購入を検討してみようと思います

847:デフォルトの名無しさん
17/09/02 11:16:20.91 oDByz4eYM.net
今のC#ってgithubで言語仕様決めてるからな
もうプログラミング言語は本で覚える時代じゃない

848:デフォルトの名無しさん
17/09/02 11:30:45.92 TQXuPiZd0.net
>>838
githubってそんなに活発なんですね
仕様が議論させるとは

849:デフォルトの名無しさん
17/09/02 12:13:28.97 KSbwYPK00.net
>>835
"CLR via C#"は和訳本出てるよ。
タイトルは"プログラミング .NET Framework"。
最新のは第4版。

850:デフォルトの名無しさん
17/09/02 12:50:09.28 TQXuPiZd0.net
>>840
和訳ありましたか、ありがとうございます
.NETとやらが必要になったタイミングで買おうと思います

851:デフォルトの名無しさん
17/09/02 13:47:13.38 GeyJWChH0.net
書籍もいいがM$燻製のChannel9とかもありじゃね
偶に裏話とかあるし
なんでC#(名称)になったとか(あっ知ってたらスルーね)

852:デフォルトの名無しさん
17/09/02 15:49:15.96 u30btijYd.net
>>841
.NETが必要じゃないc#の用途の方が珍しいと思われ

853:デフォルトの名無しさん
17/09/02 19:11:00.76 h042tsov0.net
>>837
えーでも結局誰かが書いたコードを辞書的に調べたいからそういう本欲しいんでしょ?
最新に対応してないのは困るなぁ
タプルとか出てこないね
最近書籍の対応遅いよね

854:デフォルトの名無しさん
17/09/02 19:55:06.66 9/Pt0bz9M.net
>>844
小さなバージョンアップを繰り返すようになったからね
C#開発のメインストリームがWeb系のバリバリな連中の方に移ってしまって、
書籍の主な購買層であったドカタ系が完全に取り残されて新機能に興味を示さなくなってしまったのも大きい

855:デフォルトの名無しさん
17/09/02 20:56:25.71 tnM/ItCw0.net
>>831
独習とイディオム読んだ独学だけど、一通りの事はできるようになったよ。
api呼んでみたり、データベース連携したりね、
独学やったあと、イディオム読めばええんちゃう?

856:デフォルトの名無しさん
17/09/02 21:24:01.88 RAK1J/Hs0.net
URLリンク(iup.2ch-library.com)
このプログラムを作りたいんだけど
仕様が
・ルートフォルダ
手入力でディレクトリ先のパスフォルダを削除する事ができる
・参照
押してフォルダを選択してパスをルートフォルダのテキストボックスに表示
start
・クリックするとカレンダーが出てきて、そこから日付を選択
End
・start~Endの期間の日付フォルダをまとめて削除できる
上記二つはできたけどstart~endが分からん…
新人プログラマーで入ってまだ4日目なんですが
20時間以上やってるけど全くできない…
みんなこんなの本当にできるの?
入ってすぐ社内ではもう既に無能扱いされてますヾ(。>?<。)ノ

857:デフォルトの名無しさん
17/09/02 21:28:50.88 w/8WFstaM.net
>>847
そりゃそうだよ
無能に決まってるじゃん
そんな問題は10分でできるようになってから入社するのが世界の常識
日本は非常識だから素人でも雇っちゃうけどね

858:デフォルトの名無しさん
17/09/02 21:35:22.95 RAK1J/Hs0.net
>>848
やっぱそーなんですねぇ(´・ω・`)
日曜日1日使って、出来なかったら
向いてないので退職してきます
有難うございます

859:デフォルトの名無しさん
17/09/02 21:36:31.07 NoLppLbV0.net
>>847
日付でなく例えば連番で100から1000までならできるよな?
日付をDateTimeにして同じようにやればいい
比較演算子普通に使えるし
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
でもいいし好きなほうで

860:デフォルトの名無しさん
17/09/02 21:40:57.91 hCVoOyCG0.net
>>847
「C# Forms カレンダー」と「C# ファイル 削除」でググれ

861:デフォルトの名無しさん
17/09/02 21:50:00.25 TQXuPiZd0.net
>>842
C#に決まった由来は気になるので時間あるときにみてみます
>>843
となると遅かれ早かれ必要になりそうですね
学ぶタイミングが難しい気もしますが
>>844
もともとその用途で購入を考えてましたが周りの方が言う通り
ネットの恩恵に預かろうかと思います
>>846
参考になる経験談ありがとうございます
WEBの勉強で不足を感じたら独習→イディオムのように勧めていこうかと思います

862:デフォルトの名無しさん
17/09/02 22:08:20.57 E5+eBi390.net
>>847
勉強の基本なんだけど。
「分からない」時にはなにが分からないかを列挙して、それをさらに細かい要素に分解していく。
分解して考えれば・調べれば分かるようになったら、それをひとつひとつ解決していく。
847 を読んでもなにが分からないのかこちらに伝わらない。
つまり自分でなにが分からないのか分かってないんでしょ。
もっと整理してみたら?
ちなみに新人というか数年程度のヤツにそんなたいしたことは求めてない。
きちんと適切な質問を出来るようになればそれで OK だと思うよ。(ちょー難しい要求だが)
特に1年目なんて、なにを聞いても許される二度とない重要な期間なんだから、それを有効活用しない手はない。
最悪なのは自分で抱え込んでなにも進まない状態だよ。

863:デフォルトの名無しさん
17/09/02 22:11:52.21 9PaYDv7F0.net
>>849
今できることよりも
継続して勉強できるかどうかのほうがずっと大事
1~2年継続して勉強すれば周りのやつ全員追い抜けるよ
ただし基礎的な能力が高いやつに限るが
(論理的思考力、自然言語能力、メタ認知能力等)

864:デフォルトの名無しさん
17/09/02 22:18:11.21 9PaYDv7F0.net
>>849
>>853のアドバイスをよく聞くといい
自然言語能力・メタ認知能力をある程度身につけてる良い手本
勉強の仕方を勉強すること

865:デフォルトの名無しさん
17/09/02 22:26:21.45 NYkisN1vM.net
思考の言語化能力だな

866:デフォルトの名無しさん
17/09/02 22:44:12.81 fbxz7fkLM.net
>>848
床上手な処女理論

867:デフォルトの名無しさん
17/09/02 22:46:27.15 w/8WFstaM.net
無能な働き者に分類される人は自然言語に傾倒しがちだよね
ダラダラと長く曖昧でわかりにくい文章が数式なら僅かな記述で明確に表現できることもある
理解するのに時間がかかる難解な文章が図表なら瞬時に把握できることもある
もちろん自然言語を全て否定する訳ではないがバランス感覚は大事なんだな
自然言語はあくまでツールのひとつ

868:デフォルトの名無しさん
17/09/02 22:52:16.04 o1ErZR2S0.net
最近、イディオム買って読んでるけど、この本読んでる方って多いんでしょうか?
独習C♯読んでから、独学で色々とプログラム作ってましたけど、
OOPの考え方とかまったく知らないでやってたもので、コードが散らかってます
staticおじさんになってたり、クラス分けても結局再利用しないような内容、関数コピペ
メインメソッドから分離してるだけで、メインメソッドに膨大な量書いてるのと大差無い感じです
再利用の仕方とか勉強する為にイディオム本どうかなって見ましたが、みなさんはどの様に覚えたんでしょうか?

869:デフォルトの名無しさん
17/09/02 22:53:55.94 DlxVwJvMa.net
>>849はまだ入って4日目だろ
こんなツール作らせてる教育環境がどうかしてるんじゃないの?

870:デフォルトの名無しさん
17/09/02 23:02:32.93 T/CezPj/0.net
>>860
せめてツール作らせるなら段階的にやらせるわな
クラスやメソッドの組み合わせ考えずに、とりあえず出来ましたで終わりそう

871:デフォルトの名無しさん
17/09/02 23:03:27.85 PfNbROPa0.net
経験者として派遣で投入されたんじゃない?

872:デフォルトの名無しさん
17/09/02 23:05:22.40 w/8WFstaM.net
>>859
再利用は出来れば良いね程度の気持ちで
クラス分けの目的は色々あるけど主に責務の分割な
例えばパソコンに暖房がついてたら嫌だろ
持ち運びもできず
夏場は邪魔になるだけ
暖房機能が壊れたら壊れてないパソコン部分もまとめて修理に出さないといけない
普通と勝手が違うから暖房の起動方法がわからない(セットのパソコンでコントロール?リモコン?)
パソコンを拡張したいけど暖房機能を壊してしまわないか不安になる
問題だらけだ
だからパソコンとエアコンに責務を分けようってわけ
これなら先に挙げたようなアホくさい問題が全部解決するだろ

873:デフォルトの名無しさん
17/09/02 23:17:35.26 o1ErZR2S0.net
>>863
機能の分離でクラス分けすると今度は必要なクラス探すの大変になる感じですかね?
後はどこまで繋げてどこから分離するかも中々難しく感じます
例えばエアコンのコレクションを扱うとして、エアコンの寒暖房機能、温度検知機能、タイマー機能、設定
などエアコンの中を細かくするのが苦手なんですよね
自分がよく作るのは株価を扱うプログラムですが・・・

874:デフォルトの名無しさん
17/09/02 23:22:10.23 Q8fEI/lK0.net
>>863
どうでもいいがテレビデオを思い出した
>>864
>中を細かくするのが苦手なんですよね
それはクラス設計つーより、要件定義の段階でないの
要件が明確なら、作るべきクラスも自然に決まって来るっしょ

875:デフォルトの名無しさん
17/09/02 23:27:14.80 PfNbROPa0.net
>>864
オブジェクト指向設計の本質は、設計を人間の感覚に合わせることだよ
分けることを目的にしたらダメ
人間の直感は設計の指針として明確でわかりやすいし、
オブジェクトの単位が直感に合っている限りは破綻しない(というか、少々無理が出ても破綻したように感じない)

876:デフォルトの名無しさん
17/09/03 00:23:14.14 VHdSJmfv0.net
>例えばパソコンに暖房がついてたら嫌だろ
俺もそう思っていた時期があったけど
Skylake-XとVEGAの組み合わせだと真剣に暖房かもしれない
こういうのも出るし
URLリンク(www.apple.com)
後、質問者に何か助言できるなら、オブジェクト指向はそんなに真剣にしなくてもよいよ
大事なのは手続き型プログラミングが
・データ構造
・制御構造
という二大要素で出来上がっていることに気づくこと
データ構造とアルゴリズムともいう
データ構造と制御構造をそれぞれ別々に思い描いて
その上で、データ構造と制御構造の両方を持つ「class」に分割するには
何処で切り分けたら一番「制御構造の見通しが良いか」を考える
大事なのは制御構造について意識することで、というのもオブジェクト指向でやると
データ構造の方は勝手にきれいになるから意識する必要はないのでね
C#のasync/awaitも制御構造をきれいに保つための仕組みだしね
最近の流行りというか、流れ、トレンド

877:デフォルトの名無しさん
17/09/03 00:28:40.22 VHdSJmfv0.net
なんであまりオブジェクト指向に肩入れしていると
この人はややこしい人だと思われる風潮
オブジェクト指向設計というのは
制御構造とデータ構造という二つのものを考えて
小分けにしてclassという一つのものにまとめる作業
と考えていいと思うよ
二つのものを綺麗に切って一つにして小分けにするのは
高度な作業かもしれないけど、十や百じゃなくて高々二つなんで
まぁ慣れです

878:デフォルトの名無しさん
17/09/03 00:33:37.65 WT48SvB10.net
>>866
設計書を表現することだろ?
直感は人間同士でズレる
過去の自分とも

879:デフォルトの名無しさん
17/09/03 00:57:51.36 ksmau7/rM.net
実装レベルの設計とドメインのモデリングの話がごっちゃになってる気がする
ドメインモデルはまず人間の感覚から入って、そこから実装に落としていく段階で制御構造の観点を入れていく感じだね

880:デフォルトの名無しさん
17/09/03 01:05:30.75 8T0wjaPz0.net
ありがとうございます
OOPの人間の感覚に合わせる意識が大事であって、分けることを目的にしないってのは大事だなって思います
難しいですが・・・
そういう意味だと、プログラムを少し修正したい、機能追加したいって思った時にバグが出にくい、追加しやすい状態にしたいですね
OOPに拘りは特に無く、あくまでソース管理や生産性の向上が目標です
曖昧な目標なので、実現するための手段で手こずってますが
自分の作るプログラムは目的上、同じデータから色んな値を作ったり検証させるので、使いまわせるところは汎用性がほしいんですよね
毎回別のプログラム作るたびにプロジェクト作って一部関数使いまわし、既存プロジェクトのクラス参照で使ってますが、
いつの間にかプロジェクト別で関数が別物になってしまったり、参照クラスの仕様変更で他のプロジェクトに影響出たり、設計が大変なので・・・

881:デフォルトの名無しさん
17/09/03 09:32:19.26 wl+VODG10.net
>>847
いまいるおっさんたちは就職する時点でアマチュアプログラマ歴10年以上だよ
新卒でプログラミング経験なしだと無能扱いされて当然
まずは答えを見つけて写経しろ
ペンでもキーボードでもいいから丸暗記するまで書き写せ
話はそれからだ
ちなみにベテランだったら30秒ぐらいで作るぞ

882:デフォルトの名無しさん
17/09/03 09:47:28.95 jdcIxspg0.net
コントロールを配置するだけで30秒はかかるんだけど

883:デフォルトの名無しさん
17/09/03 09:50:38.93 evIIJ2cg0.net
高校から始めたから、新卒時点で10年以上では無かったな
大学から始める様な人もいるし、適当言い過ぎだろ
新卒未経験は流石に、採用されてもPGじゃなく別部署に回される気がするが

884:デフォルトの名無しさん
17/09/03 10:30:41.79 QlhluFUqM.net
新人は研修する前提だから最初からそんなに高度なことはできなくてもいい
実験データのテキスト読み込んでデータベース化しましたとか
サークルのWebサイトをメンテナンスしてましたとか
論文書くために自力でLinux TeX環境整えましたとか
エロ画像収集ツール自作しましたとか
そういう学生らしい微笑ましいIT体験談を聞ければ充分
あとはやばそうな精神疾患とか障害がなければ合格だね
ただし
何にもしてこなかったけど興味と熱意はありますってやつと
エクセルでマクロ組んでましたをやたら強調する意識たかそうなやつ
プログラムは書かないけどITパスや基本情報をアピールするやつ
これは地雷なのでその場で不採用にチェックします

885:デフォルトの名無しさん
17/09/03 10:39:56.06 u3w+/QXpa.net
あと彼女いないやつは不採用だな
あれは人間として駄目すぎる

886:デフォルトの名無しさん
17/09/03 10:43:23.41 bPltp/aL0.net
「ぼくにとってはコンパイラが彼女のような存在でした」

887:デフォルトの名無しさん
17/09/03 11:50:36.53 c9bJJ/ld0.net
おまえら全員マ板で語れ

888:デフォルトの名無しさん
17/09/03 11:53:04.09 0sJDT6fHa.net
オブジェクト指向はプロジェクトが大きくなるほどベストの設計は存在しないんじゃないかと思う
ベストを目指しベターを繰り返していくけど結局正解はないと思い知らされる

889:デフォルトの名無しさん
17/09/03 11:55:32.51 evIIJ2cg0.net
成果物に問題がなくて、そこそこ保守性が良ければ
無理にベストを目指す必要も無いからね
ベターをベストにする労力を掛けるより、
その労力で別の事をした方がいい

890:デフォルトの名無しさん
17/09/03 12:06:31.17 QlhluFUqM.net
>>879
そういうものだよ
だからカイゼンを繰り返せるように設計する
最悪な設計は間違った設計ではなく変更が難しい設計
現代のOOPの常識だね

891:デフォルトの名無しさん
17/09/03 12:21:22.74 ksmau7/rM.net
変更のしやすさって開発スタイルに依存するからなあ
システムを作る側とそれを利用する側とで責任が分かれてる体制下においては、
綺麗なドメインモデルを継続的に改善し続けるなんて不可能
ひたすらコントローラでSQLを垂れ流す方が遥かに変更しやすい

892:デフォルトの名無しさん
17/09/03 12:28:56.71 QlhluFUqM.net
長大で無数のSQLなんてメンテしたくないよ
リポジトリパターンにしておけば1時間もかからない仕様変更に何日もかかるようになる
テストの工数も考えると辟易するね

893:デフォルトの名無しさん
17/09/03 12:31:00.27 Tnu26RxGd.net
>>882
コントローラーでSQL垂れ流しって時点で、UnitTest考慮ゼロだな

894:デフォルトの名無しさん
17/09/03 13:53:29.42 ksmau7/rM.net
設計フェーズでちゃんと客と握ってれば仕様変更は客に相応のコストを請求すればいいでしょ
変更にかかる工数はトランザクションスクリプトなら高精度で簡単に見積もれる
変更しない前提ならテストなんか画面でポチポチしてExcelにスクショ貼り付けた方が早い
>>882で変更しやすいと言ったのは運用保守フェーズに入ってからの話ね

895:デフォルトの名無しさん
17/09/03 14:03:02.81 QlhluFUqM.net
簡単に変更コスト見積れるトランザクションスクリプトのシステムなんて見たことないな
どこで何をやってるかすぐにはわからない
SQLが酷いと優しく言っても地獄

896:デフォルトの名無しさん
17/09/03 15:50:56.57 SkKZ7pGs0.net
> だからカイゼンを繰り返せるように設計する
思いつきで仕様決める奴の理想。現実は一度決めた仕様を捨てることは困難。

897:デフォルトの名無しさん
17/09/03 17:12:55.58 QlhluFUqM.net
>>887
仕様と実装の区別も付かないあたり初心者スレらしくて微笑ましい

898:デフォルトの名無しさん
17/09/04 18:45:09.41 hB0i/ETq0.net
List<int> suuji に入ってる一桁、数百の整数リストを3個ずつに纏めて新たなList<int> suujibunkatuに入れる作動を希望
C#の仕組みを理解するためにいろいろな方法を試しています
以下ソース
List<int> suuji = new List<int>();
//この後、suujiにはLoopで回した一桁の数字が数百入ります
List<int> suujibunkatu = List<int>();
foreach (var unit in suuji.Chunks(3))
{
Console.WriteLine(unit);
suujibunkatu.Add(unit);
}
//以下ネットからコピペした拡張メソッド
public static class Extensions
{
// 指定サイズのチャンクに分割する拡張メソッド
public static IEnumerable<IEnumerable<T>> Chunks<T>
(this IEnumerable<T> list, int size)
{
while (list.Any())
{
yield return list.Take(size);
list = list.Skip(size);
}
}
}

899:デフォルトの名無しさん
17/09/04 18:45:33.53 hB0i/ETq0.net
やりたいことはforeachの中でList<int>suujibunkatu に三個ずつに纏められたunitの中身を次々に入れていく作動です
ここで、以下のエラーがでます
引数 1: は 'System.Collections.Generic.IEnumerable<int>' から 'int' へ変換することはできません。
場所はsuujibunkatu.add(unit)のunitに赤線になります
引数1 はList<int> suujiの最初の数字である1だと思います。
どうやって解消したら良いでしょうか?
unitに入ってるのがint[]のような配列だと思うのですが…それが原因なのかもわかりません
int[]に入ってる配列をint化する必要があるという感じでしょうか?
拡張メソッドの中身はまだ理解できてないので、拡張メソッドの方を改造しない方向で、のちのち拡張メソッド内を把握していこうと思っています
3つずつまとめる他の方法は出来るのですが、この拡張メソッドの中身を把握するために、使う部分でのエラーをなくしたいと思ってます
よろしくお願いします

900:デフォルトの名無しさん
17/09/04 18:57:40.46 otT4pCTb0.net
>>890
List<int> suujibunkatu = List<int>();にint[]をAddしようとしてエラーになってる
3つずつ格納するならList<int[]>にしないと

901:デフォルトの名無しさん
17/09/04 19:01:00.81 00KK6mcG0.net
エラーメッセージに全て書いてあるのに何で読まないんだろ

902:デフォルトの名無しさん
17/09/04 19:03:22.90 hB0i/ETq0.net
>>891
うぉぉおできました
ありがとうございました
なるほど…

903:デフォルトの名無しさん
17/09/04 19:09:27.18 btcIVubBM.net
リストリスト最強

904:デフォルトの名無しさん
17/09/04 19:11:52.70 GCSWB22g0.net
リスト入れ子で使ってたけど、最近はクラスで中身決めてから使うようにしてます・・・

905:デフォルトの名無しさん
17/09/04 19:17:38.96 btcIVubBM.net
リスト<クラス>も最強!!

906:デフォルトの名無しさん
17/09/04 19:18:16.98 J/PDDIf7M.net
ディクショナリリストリストディクショナリディクショナリリストリスト…

907:デフォルトの名無しさん
17/09/04 19:24:49.60 4D/EyHyVM.net
>>896
最も強いモノが二つあるのか

908:デフォルトの名無しさん
17/09/04 19:30:38.82 2WJ6m4B/a.net
リストはイケメンだったって葉加瀬太郎が言ってた

909:デフォルトの名無しさん
17/09/04 21:15:16.49 xzNFEqQH0.net
もしかして:フランツ・リスト

910:デフォルトの名無しさん
17/09/05 12:51:24.34 gmADSVwC0.net
女性客はリストの演奏で興奮のあまり失神者多発だったからなあ

911:デフォルトの名無しさん
17/09/05 15:32:58.15 MGmieXBfM.net
俺クラオタだけどこういう流れイラっとする

912:デフォルトの名無しさん
17/09/05 15:34:47.87 VPTccCtg0.net
クラシックオタクなのかクラスオタクなのか

913:デフォルトの名無しさん
17/09/05 15:39:07.58 MGmieXBfM.net
>>903
こういうのイラっとする

914:デフォルトの名無しさん
17/09/05 20:51:37.63 n1w+1UPx0.net
クラクラオタクだろ

915:デフォルトの名無しさん
17/09/06 01:29:30.86 nkmkM8Yj0.net
練習でコンソールアプリケーションで迷路のようなのを作ってます
開始からゴールまでの時間を表示することはできたのですが、これを毎回記録しつつ、あなたは○○秒です~現在○位です!
のようなランキングを表示できたらと思ってますが、どのような方法が考えられるのでしょうか?

916:デフォルトの名無しさん
17/09/06 01:46:25.57 t+GbP5lP0.net
>>906
MySQL使ってDB構築してるわ
DB構築、そこからプレイヤーのidをキーに保持して、秒を保存すればええんでね?
ランキングはListとかでソートしてインデックス+1で表示
同率とかの処理必要ならメソッド作る感じで
オススメのDBはよく分からないけど

917:デフォルトの名無しさん
17/09/06 02:18:50.02 x6m+UIsj0.net
>>906
1. 記録はファイル出力/ 順位表示時に毎回ソート
2. SortedList等を使って記録時にソート済みでファイル出力、起動時等にSortedListの構築が必要
3. DBに記録、順位表示はDBからソートした結果を取得して表示
自分だけでプレイするのなら1で十分だと思うが
練習なら上から順番にやっていくのでもいいかもね
DB使うならSQL CEかSQLiteかな

918:デフォルトの名無しさん
17/09/06 05:50:00.34 zWRlsEKn0.net
ブラウザに記録する、Web Storage
どこかのサイトのランキング・サービスとか

919:デフォルトの名無しさん
17/09/06 09:07:50.25 xhMucLYd0.net
つか、その程度のデータならxmlかjson使ってクラスをシリアライズするのが良いよ

920:デフォルトの名無しさん
17/09/06 10:04:14.65 h6l6T9rKM.net
適当なBaaS使うのが簡単だろうね
やる気があればAWSで API Gateway + Lambda + DynamoDB ならほぼメンテナンスフリーで余裕で無料枠に収まる

921:デフォルトの名無しさん
17/09/06 15:39:28.12 rdtIk74+M.net
普通 Redis

922:デフォルトの名無しさん
17/09/06 18:48:35.84 yZhXwa1n0.net
① 記憶媒体からデータを読み込む。読み込んだ順番を保ちつつリストを作成する
② ゲーム開始→終了
③ ①のリストの先頭から見て行き、新しい記録より大きい要素の1つ前に挿入する。(挿入した位置が順位)
④ 表示処理
⑤ リストデータを記憶媒体へ書き込む
ソートは不要。
DBを使う要件がないのであれば記憶媒体はtxtファイルで十分。

923:デフォルトの名無しさん
17/09/06 19:04:59.84 s9ZfYQxla.net
>>906
テキストファイル名に名前秒数を適当な区切りを入れて保存
山田,60,田中,75,伊藤,81.scr
エクスプローラーからF2で編集可能
エディタもいらない
もちろんファイル名に使えない文字はあらかじめ除外だ

924:デフォルトの名無しさん
17/09/06 23:29:32.24 kZeUfc0W0.net
ネットを見ていたら、インターフェースで依存性を排除するコードが
例として出ていたのですが「コンストラクタでengineに実装を注入する」とある部分は、どのように書けるのでしょうか?
インターフェースには実装が書けず、コンストラクタでメソッドを書くこともできないので見当がつきません
よろしくお願いします
public interface Engine
{
void start();
}
public class Car
{
public Engine engine;
public Car()
{
// コンストラクタでengineに実装を注入する
}
public void go()
{
engine.start(); // <- Engineはインターフェースなので依存性がなくなった
}
}

925:デフォルトの名無しさん
17/09/06 23:38:07.92 ygscOEFy0.net
Engineインターフェースを実装したエンジンのインスタンスを
何らかの手段で手に入れてengineに代入しろってことだな
つまり、君の買った車にはエンジンが付いてないので
買ってくるか、自分で作るか、好きにしてもらったらよいが
エンジン作る部分までは説明しないよ、ってことだな

926:デフォルトの名無しさん
17/09/06 23:53:04.33 tZ2T0w/m0.net
>>915
CarはEngineに依存してるよ
インターフェース使えばEngineの実装には依存しないようにできるけど
インターフェースなので依存性がなくなったというのは認識として間違ってると思う
んで実装を注入する方法はいくつかあって、例えばコンストラクタ・インジェクションなら
Carインスタンスを生成するときにEngine実装のインスタンスを渡してあげるイメージ
public Car(Engine engine)

927:デフォルトの名無しさん
17/09/07 00:04:50.83 25clT2YI0.net
>>915
要はインターフェースの使い方が分からないってことかな。
URLリンク(ideone.com)

928:デフォルトの名無しさん
17/09/07 00:30:22.69 jomVuFMWa.net
>>915
依存性云々はとりあえず今は聞き流して、インターフェイスの使い方を覚えるのがいいねw

929:デフォルトの名無しさん
17/09/07 00:35:28.14 n13wzRyY0.net
>>915
基本的にフィールドをpublicにしちゃだめ
メソッド名はPascal
質問とは無関係だけど

930:デフォルトの名無しさん
17/09/07 01:19:40.93 /528PZB30.net
>>915
なんで依存性を無くしたいの?
変更が必要になったら変更に必要なお金を貰えばいいじゃない?
君が依存性を無くした機能が将来的に役に立つ可能性は100%なの?

931:デフォルトの名無しさん
17/09/07 06:29:42.71 yYQdIYqd0.net
>>921
こういう質問からズレた的はずれなこと言うやつってどこにも湧くよな
yahoo知恵袋とかにも多いけど

932:デフォルトの名無しさん
17/09/07 06:52:28.02 /528PZB30.net
初心者スレだし
意味のないことをやってる人間を止めるのも優しさだろ
明らかに意味がない

933:デフォルトの名無しさん
17/09/07 07:06:09.22 jEqK5EjrM.net
>>921
将来保守される保障あんの?
で、突き詰めたらメインメソッドだけで良いという結論に行き着きそうだな

934:デフォルトの名無しさん
17/09/07 07:21:08.70 /528PZB30.net
>>924
実際、機能10個作って10年で内3つしか変更が入らないときって
残りの7つに費やした依存性解消の時間って無駄じゃね?
いつ精算できんの?
変更することになってからゆっくり金貰って変更すればいいよ
予めやっておく必要も金も時間も欠片もない

935:デフォルトの名無しさん
17/09/07 07:32:44.67 oeWMtJN8M.net
>>921
え?ユニットテストしないの?
まじかよ

936:デフォルトの名無しさん
17/09/07 07:33:51.36 j+BNBbb90.net
>>915 を書き直すとこういう感じだろうか
public class Car
{
 private Engine engine;
 public Car(Engine engine)
 {
  // engineのインスタンス生成は外部で行い、
  // その参照をEngineインターフェースの変数として保持する
  // (渡されたクラスにEngineインターフェースが実装されているか
  //  どうかしか感知しない)
  this.engine = engine;
 }
 public void go()
 {
   // コンストラクタで渡されたEngineを使うので、 <


937:br>   // インスタンスの実装には依存しない   // (実際に渡されるクラスで変更があっても、   //  それがEngineインターフェースに関わらない部分なら影響がない)   engine.start();  } } あと、↓に従ってくれると、他の人からも読みやすい インターフェイスの名前付けのガイドライン https://msdn.microsoft.com/ja-jp/library/cc433279(v=vs.71).aspx "インターフェイス名には、この型がインターフェイスであることを示すために、プリフィックス I を付けます。" メソッドの名前付けのガイドライン https://msdn.microsoft.com/ja-jp/library/cc433282(v=vs.71).aspx "Pascal 形式を使用します。"



938:デフォルトの名無しさん
17/09/07 07:41:56.97 KHq0qyGqd.net
>>921
いつの時代の話だよ

939:デフォルトの名無しさん
17/09/07 07:43:59.67 KHq0qyGqd.net
>>927
命名規則持ち出すんなら、メソッド名もPascalにしろよ
それからフィールドはreadonlyにして_engine、thisは消せ

940:デフォルトの名無しさん
17/09/07 07:46:39.37 NVMcPyFE0.net
>>926
依存先を先に作ればいいだけだよ
まさかDI使うプロジェクトは作るクラス全部疎結合にするとでも思ってるのか?

941:デフォルトの名無しさん
17/09/07 08:00:06.40 oeWMtJN8M.net
>>930
それ結合テスト

942:デフォルトの名無しさん
17/09/07 08:02:41.36 j5w9yEfWM.net
下位のモジュールを結合した状態で単体テストするのはおかしなことではないでしょ
MSだって普通にクラスの中でnewしてるよ
見境なくDIすると結合したときとのギャップが大きくなりすぎる
○○サービスと呼べるような粒度の低いクラスだけにとどめるのがいいと思ってる

943:デフォルトの名無しさん
17/09/07 08:10:18.52 oeWMtJN8M.net
>>932
対象を選ぶのは当たり前

944:デフォルトの名無しさん
17/09/07 08:13:41.08 KHq0qyGqd.net
>>930
こいつUnitTestしたことないだろ


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