ふらっと C#,C♯,C#(初心者用) Part139
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/ 歴史あるmfcのウンコドキュメントビューアーキテクチャと
なにが違うの? そもそもこれでもかってぐらいこびりついてるのになぜ切り離そうとするのか?
画面アプリとサーバー側で分けて画面アプリは作り直せよ 一時期strutsとかいうインチキくさいフレームワークがほんのりはやったが
いまはもう見る影もない どこの記事だか忘れたけどMVCに関して昔読んだので一つだけ説得力を感じたのは、
古いタイプのインストーラーみたいにウィザード形式のUIの画面遷移のためにはCが必要って内容
そこは確かに一理あると思った
ウィザード形式なんてそうそうあるUIとも思えんが >>757
それも「行きはよいよい帰りは怖い」だけどね
書いてる時はいいんだよ。
問題は後で見た時に、あるいは他人のコード見た時に
何やってるのか理解するのに無茶苦茶時間が掛かること
支持する奴の気がしれん MVCは近代的な開発環境を使っていれば自然と守られるから学習する必要ないよ
CにMを書いちゃうとか変なことをしない限り大丈夫だよ
対するMVVMは難しいね、かなり練習しないとただ3層に分けただけの偽MVVMになってしまう C#とあわせてDB勉強するならどれがいいですか?
やっぱり同じMS製のSQL Serverですか? >>761
どうせ Visual Studio 使うんだろ?
ならSQL Server LocalDB使うのがインストールも簡単だしVisual Studioから基本的な操作ができるから楽だよ >>758
実際にはめちゃくちゃわかりやすいけどな >>758
今時mvvmアンチとか新しいな
対案は? mvvmは状態がわからないと言うか再現できないことが多くて
従来型のmvvmはwebのあたりでは捨てられ始めてる DIコンテナ使い出すとwpf+mvvmから抜け出せなくなるな
もしかするとDIコンテナ知らずにmvvm批判しているんだろうか? >>769
再現ってVMのプロパティセットするだけだが? React & Fluxを使いだすとmvvmはもう戻れないと言ってるやつと同じレベルだな >>771
DIは関係なくね?
DIは特定のアプリケーションフレームワークに依存したものじゃない
コンソールでもFormsでも使えるよ アジャイルを知ったらもう他にはもどれない
TDDじゃない開発はIT土方だ
などとくだらないことをいうバカ信者は死ねばいい FBは一時期mvvmに傾倒してたけど大規模になってくるとなぜだか思ったように動かないことが多くなって
mvvm自体に弱点があることに気付いた
そしてmvvmを捨てることにした
中小規模ならmvvmはまだ使えるが大規模になると使えない
状態を追いきれない FBによるとmvvmでは大規模になると値が変わった場合どこでどうしたからその値が変わったのか説明できない
元をたどれないことが多くてバグをつぶしたと思ったら同じバグがまた出ることに悩まされていた
簡単にどこででも状態をいじれることが間違っていたと判断した MVCを知りたいという初心者に
MVVMの有能さを洗脳するスレなのか デザパタ語りたがり初心者が湧いてるのか
ママにでも教えてやれ ViewをViewModelの影に徹させて管理すべき状態数を明確化、最小化しようってアイデアがMVVMの基本
なのでその明確化、最小化された状態数すら追いきれないというならMVVMをやめた途端に余計に追いきれなくなるだけだ ID:9e4CRvDY
ID:jYUPCkq4
恥ずかしいやつら >>761
MSに生涯の忠誠を誓うんならSQL Serverでいいけど、そうでないならPostgresかMySQLがいいよ
SQL Serverって癖が強くて性能も低くてVSやWinとの相性を除けば正直ク○ いま、SQLiteのテーブルを編集するおもちゃを
CLRのwindowsフォームでC#でなく、あえてC++で作って遊んでみてる
書いてることはC#と当然ほぼ同じになる
SQLiteをODBC経由でアクセスするだけで
DataGridViewで簡単にDBの編集ができることが分かった
ただし、MSが提供してるコンポーネントを適切に使用する必要がある
DataAdapterでDataSetとって
DataSetからDataTableとって、そのDataTableをDataGridViewのDataSourceに設定する
※ どうやらSQLiteでは1つのテーブルのデータセットしかとれない模様
※ DataSetという意味ではこのDataSetは超無意味
で、DBの種類とか関係なく
C#で用意されてるコンポーネント経由でデータがとれるようにしないと
作るのが極端にめんどい
なにがいいたいかといえば
C#のおもちゃ部品使ってるくせに
MSがどうこういってることが的外れ
C#とMSのコンポーネント使ってる時点で、
どっぷりMSに浸かってる ないね
何でもそうだけどあるがまま理解するのが結局早い
たとえ話は理解の助けにならん
あえて言えばVMがMをVの都合に合わせる装置として機能する、って考えればトランスとか
でもトランスは一方通行だし、そもそもトランスが何か分かる奴も少ないよなw でも理解しなくていいと思うw
全然普及してないし、私見だけどMVVMなんて複雑な問題をより複雑な別の問題に置き換えるだけw 話し変わるけどちょっと聞きたいのだが
コミット前に全ソースコードをバッチ処理でフォーマットしたいのだが良いツール知らん?
Visual Studioでフォーマットできるけど、修正したいファイルを1こ1こ開いてフォーマットを実行しなきゃならんから、ちょっとしんどい
Visual Studioに依存せずにコマンドラインから使えることが必須条件 MVVMとかぜんぜん知らんが
DBMSでいえば、
ModelがテーブルでViewModelがビューテーブル程度のしょうもないもんにしか
パッと見た感じで、見えんかったわ
で、Viewがビューテーブルをひたすら参照 >>794
それがお前の限界だ
FBがMVCやMVVM捨てた理由とその後どうしたかを調べてから言え そうかそれは残念だ
ViewModelのbindなんかすでに決まった手続きのパラメータマッピングしてるだけのように
しかみえないしな
この部分はDBMSでいえばプリペアドステートメントに
パラメータをバインドする操作と似ているとは思った MVC
View ←(Update)← Controller ←(Notify)← Model
View →(User action)→ Controller →(Update)→ Model
カサカサ
三 三 /\彡⌒ ミ/\
三 三 /\(´・ω・`)/\
View ← ViewModel ←(Notify)← Model
View →(Bind)→ ViewModel →(Update)→ Model
ViewModel から View に一切作用しようとしない
ViewはViewModelにインターフェースの提供のみ
大雑把には
ModelのデータをViewが参照できるデータになるように
ViewModelがマッピングや加工して取ったり設定したりするインターフェースを
Viewに提供してるだけのようにしかオレには見えんかったわ
マジで >>798
整形できるツールはVisualstudioかVSCodeくらいしかないんだろう?
UWSCのような自動化ツール使うこと考えるのが一番早いんじゃないの
これ以上はVisualStudioかVSCodeのスレで聞いた方がいいかと >>805
レスありがとう
でも自己解決したからもういいや CLRのオブジェクトにPropertyGridというのがあるが
いま丁度それでDBMSの値を更新するおもちゃ作ろうとしてる
なんとなくコレに似てるのかなあとは思う
設定取得のプロパティーインターフェースをもったインスタンスを渡すだけで
そのインスタンスのインターフェース使って
プロパティー設定の画面インターフェースがPropertyGridに勝手にできあがってしまう
すげえと思ったが、なんとなくうさんくさい
どういう仕組みになってるのかはぜんぜん分からないが
そのデータの設定取得の仕方は実装する側でなんとでもできるのは分かる >>806
あのねえ
どうやって解決したか書くのが礼儀ってもんだろ きっとなちょろっと試しに検索したら↓コレが一発であったとしか考えられない
https://github.com/dotnet/codeformatter
ホントな質問するヤツも回答するヤツも無能揃いといっていい
回答するヤツもググレカスとすらいわないからな
回答するヤツも最初から回答できるレベルじゃない
むしろ回答しないほうがマシなレベルといっていい >>809
ん〜それも検討したけどVS/VSCodeの手動フォーマッティングと設定共有できないっぽいから見送った
>>808
とくにひねりもなくOmniSharpとビルドスクリプトを使うことにしたよ リファクタリングってやってる?
いつも気付くと似たような処理や非効率な処理が増えてて辛い……
凄腕のマなら最初から効率的なコード書けるんだろうけどさ…… 動いているコードに手をつけるリファクタリングは最悪。 でもでもっ!
ちょっと弄るだけで処理が効率よくなり、コードがリーダブルになり、exe(dll)のサイズも小さくなりますよ?
テスト前ならいいよね? >>811
世界的に有名な凄腕ですら最初から完璧は無理だからリファクタリングしろと口を揃えて言っている
程度が低いプログラマほどリファクタリングをしない >>813
だめや、くだらん時間つこてないでテストせえ >>814
実は有名な凄腕はリファクタリングなんかしていない。
あとから出てくる有能なやつをつぶす目的でリファクタリングなるものを生み出した。 >>811
私は時々やりますけどね
新しいネタ仕入れたときとか試してみたり
普段あまり先を考えずに逐次的な処理を思いつきで描くので
冗長になりがちだし
数年自分で使ってみると不必要な機能や処理が見えてきて
そいつをそぎ落としたりする 業務系はメンテを他社がやることが多い
なので競争相手の負担になるようにリファクタリングしていない汚いコードを納品したほうが資本主義的に正しい クローンコードは……無能の証……
細かく……機能毎に……クラス化……メソッド化せよ……
有能なマなら……30行程度までの……小さなメソッドが……いくつもできる……
当然……役割で機能クラス化し……マジックナンバーも使わない……
無能は……1クラスにメソッドを詰め込み……メソッドも100行を超えることがある……
クローンコードだらけで……おまけにマジックナンバーがあり……保守性が……非常に悪い…… 初心者相手だからこそ善導せねばならない。
リファクタリングとやらにうつつを抜かす暇があるなら目前のコードを正しく読む力を会得するべきである。 >>818
競合他社「ぷげらっwwwあの会社のマはこんなコードしか書けねぇ無能っすよ?www」
お客人「マジかよwww次からお前んとこにするわwww」 そもそも何を目的としてリファクタリングなんてするわけ?
次の開発は来ないかも知れないじゃない?
また、次の開発を目的とするなら仕様がわかってから手を出せばいい
全てにおいてトンチンカン >>820
普通この辺りってネットで調べたら一番に出てくるのに、なんで糞コード量産されちゃうんだろう・・・ >>826
調べないから。
基本他人のコードをコピーして今回の要件を満たすように
書き換える仕事。意味がわからないところとか
通らないロジックがあっても気にしない >>825
リファクタリングなんての持ちだして初心者を混乱させるガイジが多くて困るよ そういや、VSCodeのswitch文の変な整形って何時になったら直るんかねえ? else句を多く使うのは三流PG
一流のPGは極力else句を避けるものだ
else if なんてのは論外だ
returnせよ! >>823
競合他者「難しくメンテ出来ません(´;ω;`)納期間に合いません(´;ω;`)」
お客人「使えねえな。おまえんとこはもう二度と使わん(´;ω;`)」 >>824
開発、テスト、デバッグ、仕様変更対応をしやすくするためにやるんだとさ
確かに楽に安く高品質になるんだけど、ビジネス的にはコスト増やして請求も増やすほうが儲かるのにもったいないよね 「ガイジ」なんて汚い言葉を平気で使える奴って自分で自分がどんな人間か
語るに落ちてることも気づかないんだろうな >>832
こういう思考回路の人がマ板とかでブラック企業とか人買いとか吠えてるんだろうな。 キミたちc#で何作ってるの?
俺はFormアプリしか作ってない
Webアプリはrubyかphpで構築
Formアプリなんかクッソ時代遅れ感あるけど ガイジを連呼する差別主義者は自分が社会の最底辺だと気がついてないんだろうな
リアルな社会でもガイジ連呼して白い目でみられればいい >>811
完成までの間にいつもやってる。
とりあえず適当に動くモノを作ってみる → 自分の担当部分を見直して整理する
最初に動くモノが出来るまでが貰った期間の 1/4 〜 1/3 くらいの時点、あとは時間が許す限り(組み直して遊んでる)。
やってるうちに最初から(自分なりに)組み直しする必要のないコードが書けるようになってく。
でもそのときは自分の技量が上がってるから別のやり方を試したくなるので堂々巡り。
受け入れる側とすればコードのわかりやすさとか以前に試験しろよと思う。
なんでこっちがバグ出ししてやらなきゃならねーんだよ、と。 >>832
高品質って?
何を基準に?
同じ金使って次の改修が見えてから動いたほうが遥かに品質高くない? >>838
メトリクス計測すればコードの品質は一目瞭然だけどそういうことじゃなくて?
何を言いたいの? 複数の戻り値ほしいとき、タプルを使うべきか、refつけてメソッド内で対応しちゃうか皆さんどうしてます? >>839
メトリクス計測と売上に相関でもあるの? >>831
世知辛い世の中だな
俺なんてまとまった処理毎にコメントまで入れてんのに
やむを得ずダラダラ書くことになる時はリージョンで畳んだりとかもしてるのに >>843
タプルはイミュータブルなのがな・・・
クラス内ならプライベートクラスや無名クラスでやっちゃうかな イミュータブルのほうが良くない?
なんでc#は引数をfinalできないのか不思議なんだけど理由あるの? クリックした点から点まで連続線を引いてダブルクリックで連続線を終える。
これって難しいですか?参考サイトとかありませんか? ■ このスレッドは過去ログ倉庫に格納されています