ふらっと C#,C♯,C#(初心者用) Part134at TECH
ふらっと C#,C♯,C#(初心者用) Part134 - 暇つぶし2ch872:デフォルトの名無しさん
17/12/20 17:57:31.91 0mbmAU0+.net
50個のクラスができるものをクラス使わずにごちゃ混ぜにしたら余計にわけわからんだろ
こういう話題で数が増えたらどうするの?って反論するやつが必ず現れるけどそれ墓穴掘ってるだけだぞ

873:752
17/12/20 18:12:27.89 PXZlLTCM.net
>>845
レートクラスは必要かも知れないですね
まだまだ考慮不足でした

874:デフォルトの名無しさん
17/12/20 18:25:24.19 AIjICjtT.net
データが構造を持ってしまうと、別の使い方をする時に手間が増えるだけなんだよ
データはデータでクラスにする必要なんかまったく無い

875:デフォルトの名無しさん
17/12/20 18:31:13.93 dzFn8RAE.net
>>852
> クラス図どうなるの?クラス50個作るん?
必要なら作るだけだろ
> 上下のわからんクラスって粒度を
> そんなちっぽけなもんに使うと
> 全体が見えなくなっちゃうんだよ
それお前さんの管理能力の問題...
> 費目は少なくてってそれお前の環境がそうってだけの偶然でしょ?
世の中の会計ソフトとか見てみな
もしくは自分の会社の経理担当者に聞けばわかると思うよ
> この方針はオススメできないね俺は
別にお前もそうしろなんて言ってないから勝手にやってなよ

876:デフォルトの名無しさん
17/12/20 18:47:00.16 n3mgdNKt.net
>>855
別の使い方する時点で分析設計ミス

877:デフォルトの名無しさん
17/12/20 18:56:33.13 R/x04Nlq.net
>>856
残念ながら、世の中の会計ソフトなんかほぼ100%トランザクションスクリプトだよ

878:デフォルトの名無しさん
17/12/20 19:01:31.53 6oreCn9e.net
>>853
好きなようにすればいいよ
ただ、お前のクラス図に50個のクラスが並ぶだけ

879:デフォルトの名無しさん
17/12/20 19:08:20.84 dzFn8RAE.net
>>858
なんの話をしてるんだよ w

880:デフォルトの名無しさん
17/12/20 19:13:04.16 w7lpXa1y.net
費目、時間単価、時間がそれぞれ独立したクラスか
めまいを禁じ得ない

881:デフォルトの名無しさん
17/12/20 19:35:42.09 n3mgdNKt.net
それらが同じクラスに混在する方が目眩するわ

882:デフォルトの名無しさん
17/12/20 19:59:30.76 +lUILV8P.net
で、最終顧客がのぞむ要求に答えられるアプリケーションなのかと

883:デフォルトの名無しさん
17/12/20 20:00:24.04 1pJRigF6.net
全体を把握しないと作業に取り掛かれないなら
既にクラス設計として破綻してるとしか

884:デフォルトの名無しさん
17/12/20 20:45:21.17 QInM5P3Y.net
結局要件があいまいだから何とも言えんけど普通に考えれば費目ごとに派生するのはないね。
せっかくC#にはデリゲートがあるんだから、費目で違う処理はコンストラクタで
デリゲート食わせて対応できるし、その上でプロトタイプパターン適用した方が分かりやすいと思うよ。
もちろん費目ごとの固有の処理が費目固有のプロパティに依存するような場合は



885:継承を使うしかないけどね



886:デフォルトの名無しさん
17/12/20 21:00:51.80 D80mgGFK.net
費目はクラスじゃなくてデータにするべきものでは在るが、初心者が「そう言われたから」って理由でやるより
何故そうなのかを理解してやるのは悪いことじゃない
自分で考える人を挫くスタイルはあまり感心しないな

887:デフォルトの名無しさん
17/12/20 21:05:35.30 n3mgdNKt.net
種類によって振る舞いが違うって要件なのにデータで扱うとか呆れるわ
どんだけswitchする気だよ

888:デフォルトの名無しさん
17/12/20 21:15:55.31 dxH3+214.net
> 自分で考える人を挫くスタイルはあまり感心しないな
マウントしたいだけやろ
今回は質問者の方がレベル高いからアホみたいなことになってるけど w

889:デフォルトの名無しさん
17/12/20 21:16:44.49 R/x04Nlq.net
>>867
アホ
全く別のデータ項目をどうやったら混同できるんだ

890:デフォルトの名無しさん
17/12/20 21:22:03.45 n3mgdNKt.net
>>869
全く別のものを混同して同じデータ構造でごちゃ混ぜに扱おうとしてるのがデータフロー派だぞ
俺や質問者は異なる物は異なるクラスにしろっていうオブジェクト指向派な
むしろ真逆だわ

891:デフォルトの名無しさん
17/12/20 21:33:44.71 6oreCn9e.net
>>870
何でこんなくだらないものいちいちクラスにするんだ
クラス図書かないからこんな蜘蛛の巣みたいなクラス図作って平気な面してんだろお前

892:デフォルトの名無しさん
17/12/20 21:35:40.32 R/x04Nlq.net
>>870
混ぜて使いたいからクラスにするんだと思ってたんだが違うのか?
全く別物として区別して扱うんなら行全体を1クラスにして複数のフィールドで持つのと大差ないと思うけど?

893:デフォルトの名無しさん
17/12/20 21:49:04.68 ie4nb91k.net
費用と言っても材料費、人件費、、減価償却費、貸倒引当金など性格や扱いの異なるものを同じ基底から派生させるのはどだい無理がある
集計したいだけなら金額を取得するインターフェイスを実装する方が賢い

894:デフォルトの名無しさん
17/12/20 22:10:01.13 n3mgdNKt.net
>>871
アホほど条件分岐書いて平気な顔してるやつに言われたくない
きみさクラス図どころかオブジェクト指向すらしたことないだろ?
>>872
同じ規約で異なるものを集めるのと
異なるものをただひとつのものとするのと
全く違うことだ
混ぜるという言葉の使い方を見極めろ

895:デフォルトの名無しさん
17/12/20 22:10:03.47 WriG98aZ.net
List〈string[]〉の型をstring[]の特定の列をキーにしてソートしたいんですけど
List.Sort(x => x[1]);
のような書き方はできないのでしょうか?
List〈class〉を用意するしかないのでしょうか?多分Listの中の配列にもLINQ使えそうなんですが・・・
テストで試しに動かしたいだけなのにわざわざclassを書くのが大変なので・・・

896:デフォルトの名無しさん
17/12/20 22:18:17.41 gjQwmCKz.net
>>875
Sortは過去の遺物
OrderBy使っときなさい

897:デフォルトの名無しさん
17/12/20 22:26:57.08 6oreCn9e.net
>>874
でもさ
クラス図書いたら君のはこんなくだらない処理でクラスが50個も並んでるんだぜ
どの辺がいいプログラムなの?
他のも合わせれば5-600は行くんじゃない?
正しいクラス図なんて一度も書いたことないっしょ?
おそらく資料見てもこのクラスは記述があるけどこのクラスは記述がないなぁ
ってもんを平気で作っちゃうでしょ?

898:デフォルトの名無しさん
17/12/20 22:31:22.52 n3mgdNKt.net
>>877
そのドメインがそういうものなら何百クラスだろうがクラスで書くのが正しい
それがそのドメインでは最も簡潔で正しい姿なんだよ
そこを曲げてデータ区分や条件分岐で雑なコードを書いたら
クラス数は増えないかもしれないがコードの複雑度が爆発的に高まるだけ
なぜなら数百クラスが個々に持つべき振る舞いが同じクラスに区別なく同居してしまうんだぜ?
ろくなことにならないよ

899:デフォルトの名無しさん
17/12/20 22:32:30.67 WriG98aZ.net
>>876
OrderByも試したんですがこのラム�


900:_式だと意図した動作にならないです とりあえずList〈class〉で素直に書いてみますが、ラムダ式のキーに配列やListのインデックス指定して使うのは無理なんでしょうか?



901:デフォルトの名無しさん
17/12/20 22:33:13.38 GdnGy9ZB.net
>>875
>型をstring[]の特定の列をキーにしてソートしたいん
ってどういう事ですか?
型をソートするの意味が分かりません。
初心者なので詳しく教えて下さい。

902:デフォルトの名無しさん
17/12/20 22:35:03.12 QInM5P3Y.net
意図した動作にならないのをバグっていうんだと思いますw

903:デフォルトの名無しさん
17/12/20 22:36:47.64 6oreCn9e.net
>>878
そもそも設計書で四角で囲って強調すべき単位なの?費目って
オブジェクト指向も自分解釈でおおよそ一般人がオブジェクトなんてしない単位でオブジェクトを作ってるよね?

904:デフォルトの名無しさん
17/12/20 22:40:38.82 D80mgGFK.net
>>878
結局DBに入れて永続化しなくちゃいかんわけで、その用途考えると数百のクラスとかありえんのさ
EFで扱える範囲で物を考えたほうが良いよ

905:デフォルトの名無しさん
17/12/20 22:42:06.35 WriG98aZ.net
>>880
ちょっと説明不足してたので補足
List〈string[]〉

{"1", "aa", "1個目"},
{"2", "bbb", "2個目"},
{"3", "abc", "3個目"},
{"4", "dddd", "4個目"}

の形があった場合、string[1]のところを基準にソートさせたいってことですね
public class test

public string id{get; set;}
public string text{get; set;}
public string discription{get; set;}

みたいな形式だった場合
list.OrderBy(x => x.text);
と同じ動作にしたいということです

906:デフォルトの名無しさん
17/12/20 22:54:00.94 QInM5P3Y.net
>>884
そこが分からない人はいないと思うよw
逆に何が難しいの
list.OrderBy(x => Integer.Parse(x[0]));
とか、
list.Sort((x, y) => Integer.Parse(x[0]) - IntegerParse(y[0]));
ではダメなんですか?

907:デフォルトの名無しさん
17/12/20 22:55:43.46 QInM5P3Y.net
あ、やってもーたw
IntegerじゃなくてInt32ね

908:デフォルトの名無しさん
17/12/20 22:59:37.49 WriG98aZ.net
>>885
classでも試してだめでした
それで動かなかったので質問したのですが、classもソートされなかったのでデータ側の問題かもです
さっきのダミーデータでちゃんと挙動するか試します

909:デフォルトの名無しさん
17/12/20 23:03:12.47 n3mgdNKt.net
>>882
質問者のドメインでは書くべきものだよ
振る舞いが異なる別のものだからね
それが数百種類でそれぞれ異なるような複雑なドメインなら書くんだよ
無理やり1つのレコードに押し付けちゃダメ
逆にドメインそのものがシンプルで1つのクラスで表現すべきならそうする
きみのおかしな点は質問者のドメインを無視してきみの頭の中にあるシンプルなドメインを前提に話を進めようとするところだな
独りよがりってこと
>>883
実装はどうとでもなる
RDBにこだわる必要もない

910:デフォルトの名無しさん
17/12/20 23:06:38.88 QInM5P3Y.net
>>887
classってのが何のことかよくわからないけど、OrderByの方使ってる?
LINQのメソッドはコレクションをのものを並び替えるのではなくて
並び替えた列挙オブジェクトを返すんだけど、そこを誤解してるなんてオチではなくて?

911:デフォルトの名無しさん
17/12/20 23:17:47.14 dFGD4M7x.net
>>887
URLリンク(ideone.com)
できたよ

912:デフォルトの名無しさん
17/12/20 23:21:21.55 lugKio2h.net
書き方がわかりませんということだから並び替え方法とは違うように読めたけどな
list = list.OrderBy(x => x[1]).ToList();
もしくは
list.Sort((x, y) => x[1].CompareTo(y[1]));
とかだろ
OrderByはシーケンスが返ってくるからListにしたい場合はToListが要る
Sortは直接並び替えてるので前の状態も欲しい場合は事前にコピーしておくかな

913:デフォルトの名無しさん
17/12/20 23:23:23.48 WriG98aZ.net
>>890
ありがとうございます
var a = ~
って感じで受け取っててVSで中身無いけどどうなってるの??
IOrderedEnumerabel〈~〉型ってなんだ?ってなってましたけどforeachに直接入れないとダメなんですね
使い方間違えてました
>>889
これでした、すいません

914:デフォルトの名無しさん
17/12/20 23:26:14.46 WriG98aZ.net
>>891
あぁToList()を忘れてました
あやふやな記憶で使っててToList()使うって教わったのにすっかり忘れてました
型の返り方の説明見て、正しい扱い方覚えないといけないですねすいません
ICollectionみたいなやつとか、抽象化されてるからToListでListに明示的に変換しないとあかんやつでした

915:デフォルトの名無しさん
17/12/20 23:29:58.52 Xe3ly/H6.net
>>892
てかその構造のデータをstring[]で扱わなきゃいけない理由が何かあんの?

916:デフォルトの名無しさん
17/12/20 23:31:09.24 Xe3ly/H6.net
あ、ごめん書いてたね

917:デフォルトの名無しさん
17/12/20 23:35:13.47 WriG98aZ.net
>>894
試しにデータ群扱う時にclass宣言したり、大量のデータを型分けするのがめんどいからこういう扱い方できると楽ってだけですね
この使い方ならcsv形式にsplitでListぶち込むだけでやれるので宣言項目少なくてテストするなら楽ってだけです
DBから持って来るときは文字列型じゃなければToStringかけたりとかありそうですが
最近はEF使ってるので楽ですけどね

918:デフォルトの名無しさん
17/12/20 23:38:15.25 nn3v7K50.net
Kotlin では、ある列の値で、レコードをソートするのは以下。
年齢・名前でソートする
スレリンク(tech板:18番)

919:デフォルトの名無しさん
17/12/20 23:44:31.66 Xe3ly/H6.net
>>896
Visual Studioならjsonからクラスを自動生成できるからクラスの方が扱いやすいけどね。stringとHashtableまみれのコードとか絶対メンテできない…

920:デフォルトの名無しさん
17/12/20 23:49:35.45 WriG98aZ.net
>>898
こんな機能あるんですね!
interfaceのメソッド自動実装ぐらいしか知らなかったのでこういうの積極的に使いたいです

921:デフォルトの名無しさん
17/12/21 00:47:58.94 HdSqx1Ax.net
URLリンク(yossk.hatenablog.com)
ここの「4-3散在する情報」のサンプルコード
川俣晶の本からのコピーなんだけど
Runメソッド内で値設定したあと
CalcDistメソッド先頭で値をリセットしてるから
常に計算結果0になるように見えるんだけど
なんか俺読み間違えてる?

922:デフォルトの名無しさん
17/12/21 00:54:31.04 h7wsiOnr.net
たしかに

923:デフォルトの名無しさん
17/12/21 03:28:09.32 3KOuKcBo.net
>>888
はぁ?人件費がクラスに?
センス悪いじゃん

924:デフォルトの名無しさん
17/12/21 05:44:12.11 /dR3YALD.net
>>902
人件費と光熱費が異なる振る舞いをするなら別のクラスにするのが正しい
センスの問題じゃない常識の問題

925:デフォルトの名無しさん
17/12/21 06:04:58.06 gZ1XcqWP.net
>>903
はぁ?
どう組んでも動きますが?

926:デフォルトの名無しさん
17/12/21 06:50:24.48 /eYbpg/S.net
オブジェクト指向は物事を複雑にするためにあるモノじゃ無いぞ。
オブジェクト指向を目的にしてどうするwww

927:デフォルトの名無しさん
17/12/21 06:50:56.44 c0/BZHI9.net
動く動かないとセンスの有無は別の話
理解力無さすぎだろ w

928:デフォルトの名無しさん
17/12/21 06:56:56.39 /eYbpg/S.net
どの世界でも原理主義者は物事を複雑にするw

929:デフォルトの名無しさん
17/12/21 06:57:03.08 gZ1XcqWP.net
>>906
正しいとかおかしいよな
どう組んでも動くし

930:デフォルトの名無しさん
17/12/21 07:00:31.05 gZ1XcqWP.net
クラス図書かないやつは客観的に自分の設計を見ることができない
だからこんなプロパティ単位のものクラスにして
クラス図を蜘蛛の巣にしちゃっても
それを汚いと反省する機会がない
ただし、どう組んでも動くのであくまで俺の持論

931:752
17/12/21 07:13:38.51 RBSPw/d+.net
費用クラスの者ですが、色々なアドバイスありがとうございます
参考になります
>>904
どう組んでも動くの精神で、前任のパートさんが凄いの組んでくれたので、オブジェクト指向を意識し始めました
クラスどころかイベントリスナーのメソッドというのでしょうか?
そこから共通関数すらなく処理されているので、なんとかしたかったのです
ドメイン層とアプリ層とインフラ層が渾然一体となっていると、どう手を付けて良いのやら

932:デフォルトの名無しさん
17/12/21 07:25:44.67 Mqu0aN7Q.net
必要最低限だけ修正しろ
コードのきれいさは主観
他人のコードはすべて糞コード

933:デフォルトの名無しさん
17/12/21 07:27:47.47 gZ1XcqWP.net
>>910
お前のはプロパティ単位もクラスになってるからさらにカオスだな
初見で見た人間がそのたくさんあるクラスの依存関係がわかるといいな

934:デフォルトの名無しさん
17/12/21 07:42:54.80 iiESRPBo.net
と、プロパティ単位とか意味不明のことをつぶやいており当局は措置入院の必要性があると判断している模様です

935:デフォルトの名無しさん
17/12/21 07:56:29.75 h7wsiOnr.net
>>910
おまえ本当に未経験者かよwww

936:デフォルトの名無しさん
17/12/21 08:08:25.86 gZ1XcqWP.net
残念なのはおそらくこいつはコードレビューとかしたことないね
クラス図と基本設計書との不一致とか設計書のレビューもやったことない
このレベルでクラス図なんて書いたらごちゃごちゃしてなんだかわからないだろ
見難いよって誰からも指摘されたことないから当然伸びない
修正が聞かないまま今に至る

937:デフォルトの名無しさん
17/12/21 08:09:15.38 gYUruymP.net
(キリッ

938:デフォルトの名無しさん
17/12/21 08:17:58.61 81J6Ca8t.net
新参だがここで聞くのは無駄だってことは分かった

939:デフォルトの名無しさん
17/12/21 08:37:19.47 VQD1Tiju.net
>>910
え~、今更オブジェクト指向なの?
c#はマルチパラダイム言語なのに

940:デフォルトの名無しさん
17/12/21 08:40:09.55 VQD1Tiju.net
>>917
ちゃんとした質問ならまともな答えが帰って来る。
トンデモ質問はスルーされるかネタにされて遊ばれるw

941:デフォルトの名無しさん
17/12/21 08:54:24.69 upKQQwHx.net
最近クラス図キチガイが湧いてるな

942:デフォルトの名無しさん
17/12/21 09:04:04.27 VQD1Tiju.net
>>914
素人だろうね。
ギョーミーなアプリ開発の経験者に費目毎のクラス化なんて発想はない。
社内のパソコンマニアに白羽の矢が立っただけ。

943:デフォルトの名無しさん
17/12/21 10:15:36.99 VXvVb2gy.net
>>921
俺が言ったのは本当にプログラミング初体験なのかよってことな。

944:デフォルトの名無しさん
17/12/21 10:19:43.29 iwfbZ4kw.net
javaの匂いが消えない

945:デフォルトの名無しさん
17/12/21 10:33:22.61 VQD1Tiju.net
>>922
大学出てりゃプログラミング初体験なんてことは無いだろうな。
プログラミング教育義務化なのでプログラミング初体験者ゼロの世の中になるw

946:デフォルトの名無しさん
17/12/21 10:41:24.50 VXvVb2gy.net
>>807
>急遽プログラムをやれと言われた人間なのでセンスとか言われると厳しいです

947:デフォルトの名無しさん
17/12/21 12:03:45.23 Q/EvmKMe.net
>>910
昨日も書いた((>>865)けど、費目ごとに派生クラス作れ、なんて話は真に受けない方がいいと思うよw
処理の委譲はデリゲートでもできる。

948:デフォルトの名無しさん
17/12/21 12:50:57.69 iiESRPBo.net
>>920
自称上級者なんだろ
今度はデリゲートとか言い出しちゃってるし
自分の知ってる単語ならべてるって感じ w

949:752
17/12/21 12:55:56.30 Bs03k3IZ.net
>>925
急遽と言っても半年以上OJTの形で作っているので、変数、関数、クラスが何なのか程度は理解しています
で、費用と費目は抽象クラスを使うのに絶好の課題ではと初めて使ってみて、世間様ではどう思われるか聞いてみたら、そんな関係には使わないと指摘された次第です

950:752
17/12/21 13:00:11.33 Bs03k3IZ.net
ズブの素人でも手続き型プログラムを一ヶ月で作れるようになったのは、visual studioの支援とC#の解りやすさのおかげだと感謝してます
ゆえに急遽突っ込まれたのかも知りませんが

951:デフォルトの名無しさん
17/12/21 13:29:10.16 WNlCIVzg.net
>>928
結局ね、データってのはDBに保存したり手で入力したりするものなので
データごとにクラスが変わったりすると破綻するんですよ
クラス分けは集計には便利かもしれんが、全ての工程でどうなるか考えて設計しないとね

952:デフォルトの名無しさん
17/12/21 13:38:55.98 xinkvf3y.net
>>929
ズブの素人が1ヶ月でc#をそれなりにマスターするなんて凄いわ。
オレは無理だ (ーー;)

953:752
17/12/21 17:30:18.01 68OBjHX8.net
>>931
最初の二ヶ月は前任の人が引き継ぎ兼トレーニングしてくれたのでブートは早かったと思います
そこから半年でやっと継承を触ったので、成長曲線はそこまで急では無いかと
比較が解らないですが仮に成長が早いとするとC#が非常に取っ付きやすかったのが大きいと思います
基本情報試験のアルゴリズムとかさっぱり解らないので、プログラム能力は経験相応に低いと思います

954:752
17/12/21 17:42:42.42 68OBjHX8.net
>>915
PM交え前任者とコードレビューをしましたが、三項演算子とLINQは見難いと指摘されました
手続き型より宣言型のが良いとネットで見たのですが
逆に前任者が書いた4重ネストのfor文にifelseが連ねてあるコードはいくら頭をひねっても理解できず
数字の動きはステップ実行で見れるのですが、だから何って感じになります
ゆえに知識を整理したくなり初めて抽象クラスを意識した次第です

955:デフォルトの名無しさん
17/12/21 17:50:29.58 c4/lwFQU.net
優秀だね
ここにくると馬鹿になるからもう来ない方がいいよ

956:752
17/12/21 17:56:25.54 68OBjHX8.net
>>909
素朴な疑問ですがプロパティが大量に並ぶのとクラスが大量に並ぶのはどちらが好まれるのでしょうか
個人的には、クラス内にプロパティがギッシリという光景も凄いなと思うのですが
私の知らないテクニックで隠蔽できるのかも知れないので解りませんが
なおデリケートはイベントリスナとして使われてる程度の理解しかなく使いどころがピンと来ていません
精進します

957:デフォルトの名無しさん
17/12/21 18:05:03.28 Tz1RNGN4.net
プログラミングしたので評価してください
archive.isに定期的にアーカイブさせるプログラムです
URLリンク(dotup.org) 👀
Rock54: Caution(BBR-MD5:1322b9cf791dd10729e510ca36a73322)


958:デフォルトの名無しさん
17/12/21 18:12:09.40 Tz1RNGN4.net
間違えてプログラムだけ上げてしまいました
こっちはプロジェクトです
URLリンク(www.axfc.net)

959:デフォルトの名無しさん
17/12/21 18:14:54.74 upKQQwHx.net
GitHubにあげてくれ

960:デフォルトの名無しさん
17/12/21 18:56:17.83 VaR9+Vl3.net
ギフハブ?

961:デフォルトの名無しさん
17/12/21 19:01:00.92 YYEMhcfN.net
>>935
そんなのトレードオフに決まってんじゃん

962:デフォルトの名無しさん
17/12/21 19:04:17.37 Q/EvmKMe.net
>>935
何べんも言うけどさ、結局要件の詳細が分からないとどういう実装方法が
ベストかなんて何とも言えんよ
妄想込みの印象論としては費目ごとに派生クラス作るなんて筋悪に感じるなとは言えるけど

963:デフォルトの名無しさん
17/12/21 19:09:52.65 Tz1RNGN4.net
(´・ω・`)
URLリンク(github.com)

964:デフォルトの名無しさん
17/12/21 19:21:07.79 iwfbZ4kw.net
md書け

965:デフォルトの名無しさん
17/12/21 19:22:33.42 Ym9/Pn+0.net
いつから「評価してもらうスレ」になったんだよ
せめて相談室でやれよ

966:デフォルトの名無しさん
17/12/21 19:37:28.56 iwfbZ4kw.net
ちょっとだけ見たけどやはり初心者ですねとまだ短いにも関わらず読みづらいコードになりそうですねということかな
一行が長いところは絶対ダメとはいわないけど大体クソコード

967:デフォルトの名無しさん
17/12/21 19:41:21.29 Ate4yeHH.net
>>935
もう手続き型の組み方で良いんじゃないの?
オブジェクト指向はプログラムを分かりやすく保守しやすくするために出来たもの。
変なオブジェクト指向に拘って物事を複雑にするのは本末転倒。

968:デフォルトの名無しさん
17/12/21 19:46:25.90 iwfbZ4kw.net
意味なく一行が長いのを見るとどんなエディタで書いてるんだろうかと思う
あとは一行でつなぎまくってるのを見るとデバッグがめんどくさいだろうなと思う

969:デフォルトの名無しさん
17/12/21 19:47:38.41 Tz1RNGN4.net
>>947
120行目のことでしょうか
それとも出だしのメッセージボックスでしょうか

970:デフォルトの名無しさん
17/12/21 19:52:03.68 iwfbZ4kw.net
もう見るつもりはないから忘れたけど後ろの方にあったメソッドは内容をもっと見直したらいいと思う
けど初心者はこんなもんだろ

971:デフォルトの名無しさん
17/12/21 19:52:34.81 Tz1RNGN4.net
(´・ω・`)

972:デフォルトの名無しさん
17/12/21 19:57:53.60 iwfbZ4kw.net
>>948
メソッドの結果を受ける段で概念的にわかりやすい名前で一度受けたほうがいいと思う
何々Textとか何々uriとか
あとは個人的な感想として成功じゃなくて失敗をbool値で受ければいいんではないか
bool 失敗=false
catchで失敗=true
>>950
まあこんなところで聞くやつが悪い

973:デフォルトの名無しさん
17/12/21 19:58:12.75 HqNyhY75.net
>>935
小さなクラスが大量に並ぶのがオブジェクト指向の正解

974:デフォルトの名無しさん
17/12/21 20:10:11.41 YYEMhcfN.net
>>952
俺はトレードオフがオススメ
ちょっとした修正でクラス図まで書き直す必要ありますはお客に印象悪い
どういう設計してんの?って聞かれる

975:デフォルトの名無しさん
17/12/21 20:12:10.78 Mqu0aN7Q.net
クラス図なんて成果物にいれるからだ

976:デフォルトの名無しさん
17/12/21 20:16:53.37 HqNyhY75.net
>>953
コードが変わるならドキュメントも同期させるって当たり前のことだよ
ちょっとした修正だからドキュメントは変えなくていいって、それは本来ドキュメントに書かれてなければならない事が書いてないだけ
手続き型の設計ではそういう手抜きがよくあるけどね

977:デフォルトの名無しさん
17/12/21 20:17:38.91 Tz1RNGN4.net
ここで頼まれて作ったよ(´・ω・`)
スレリンク(news4vip板)

978:デフォルトの名無しさん
17/12/21 20:21:08.11 YYEMhcfN.net
>>955
じゃあそうやって客に言えば?
俺とお前の資料を比べたときに
同じ修正量でもお前はセコセコ動いてなんだか余裕が無さそうに見えるから

979:デフォルトの名無しさん
17/12/21 20:21:36.24 wimnqGen.net
他人に誉めてもらわないと張り合いが出ないのはわかるが
ここは初心者しかいないんだからレビューがまともに帰ってくるわけがない

980:デフォルトの名無しさん
17/12/21 20:23:37.18 Tz1RNGN4.net
いまソースコードにコメント付けたので評価してください

981:デフォルトの名無しさん
17/12/21 20:32:06.58 HqNyhY75.net
>>957
余裕がなさそうに見えるからwww
わらっちゃった
余裕を演出するためにやるべきことをやらずに自分を追い込んで最後には余裕なくすんだろうなキミは

982:デフォルトの名無しさん
17/12/21 20:33:40.96 YYEMhcfN.net
>>960
実際お前のやり方だと
ほんのちょっとの変更でもう
クラス図から手を入れなきゃじゃん
これって変更に弱いってことじゃないの?

983:デフォルトの名無しさん
17/12/21 20:41:22.00 YYEMhcfN.net
>>960
それでいいんだよ
コードの綺麗さは人間の主観だろ
だったら自分のコードじゃなくて人間を見なければ成長はしないよ

984:デフォルトの名無しさん
17/12/21 20:46:30.90 HqNyhY75.net
>>961
手間がかかるから変更に弱いという考え方しかないのか?
ショートコーディングが至高ならC#じゃなくてスクリプト言語やった方がいいぞ
コード修正におけるOOPのメリットはタイプ量や作業量の少なさじゃ断じてない
わかりやすく整理されたコードをわかりやすさを維持したまま変更できることがメリットな
そりゃこだわらなきゃ手短に修正することは簡単だよ
例えばちょっとしたフラグ変数やif文を追加すればクラス構成を変えずに素早く修正して目の前の問題を解決することはできる
ローカルな修正だからドキュメントの修正も軽微で済むかもしれん
でもそれを積み重ねていくと気が付いた時にはもう手に負えなくなってしまうんだよ

985:デフォルトの名無しさん
17/12/21 20:51:53.83 HqNyhY75.net
>>962
コードの綺麗さは計量可能
常識的なことだぜ
人間を見なければ成長しない(キリッ)なんて意識高いっぽいけど意味不明な戯言を言う前に
まずは君の仕事を人並みにこなせるように基本的なことを勉強しなよ

986:デフォルトの名無しさん
17/12/21 20:52:40.67 Mqu0aN7Q.net
そんなことはない
オブジェクト指向はケースによって処理ががらっと変わるような場合の対処は得意だが
細部が細かいルールでちょこちょこ変わるようなのは大の苦手だ
おとなしくIF文使ったほうがいいケースはたくさんある、というかそっちが普通
あとフラグ変数まみれになるのはたぶんOOP以前に構造化プログラムができてない

987:デフォルトの名無しさん
17/12/21 20:56:35.39 Mqu0aN7Q.net
計量可能とかうそだ

988:デフォルトの名無しさん
17/12/21 20:59:34.57 iByWYmKo.net
>>879
んなこたあない

989:デフォルトの名無しさん
17/12/21 21:00:51.75 Ate4yeHH.net
>>964
計量可能なのはコードの複雑さだろ。
将来的にはディープラーニングでカラオケマシン並みの採点ができるかもだが。

990:デフォルトの名無しさん
17/12/21 21:05:03.60 iByWYmKo.net
>>929
あなたのレベルはこのスレを遥かに越えてる
汚物に汚染されない方が良いよ

991:デフォルトの名無しさん
17/12/21 21:06:20.65 HqNyhY75.net
>>965
細部の修正はOOPの場合、メソッド内とかクラス内で完結するから、非常にやりやすい
苦手どころかむしろ得意な分野
手続き型だと逆に、同じ処理があちこちに分散する傾向があるから、些細な修正が思ったよりも広範囲で大規模な修正になることが少なくないね
つうかまるでOOPではif文を全く使わないように聞こえるのが気になったな
クラス内では普通に使うぞ

992:デフォルトの名無しさん
17/12/21 21:08:30.80 HqNyhY75.net
>>966
コードメトリクスと言って割とポピュラーな分野だよ

993:デフォルトの名無しさん
17/12/21 21:09:04.02 iByWYmKo.net
>>933
向上心の無い「おじいちゃん」達とは程々に付き合うのが吉

994:デフォルトの名無しさん
17/12/21 21:17:01.86 YYEMhcfN.net
>>963
いや、変更に弱いじゃん
クラスぶっ壊して組み直さなきゃいけないんだし

995:デフォルトの名無しさん
17/12/21 21:22:17.04 HqNyhY75.net
>>973
クラスをぶっ壊すほどの変更ならなおさらだよ
今あるモデルが根本的におかしいという現状把握
新しいモデルへ推移するための道筋
オブジェクト指向ならこれがはっきり見える
クラスがなかったらモデルもないのだから現状が正しいのかそうじゃないかの判断すらおぼつかない
新しいモデルもないからどうやって変更すればいいのかもぼんやりとしか見えない
現在地点も目標地点もよく認識できないんじゃこわくて動けんよ

996:デフォルトの名無しさん
17/12/21 21:30:04.52 Y3l0yz+N.net
今時こんなにオブジェクト指向を信仰してるやつも珍しいな

997:デフォルトの名無しさん
17/12/21 21:33:07.91 VaR9+Vl3.net
大昔はCだけでゴリゴリ書いてたんだけどなー

998:デフォルトの名無しさん
17/12/21 21:34:32.41 YYEMhcfN.net
>>974
だってお前1メンバ変数1クラスの勢いでクラス作るじゃん
人件費なんてクラスにしねーだろ
こんなことしてっからちょっと変更があったらもうクラス図書き直しじゃん
設計が悪いよ

999:デフォルトの名無しさん
17/12/21 21:43:02.15 giWx2kxQ.net
>>935
> 素朴な疑問ですがプロパティが大量に並ぶのとクラスが大量に並ぶのはどちらが好まれるのでしょうか
そもそもプロパティとクラスって全然違うものだからどっちがいいとかはない
クラスとインスタンスの違いがわかってない奴の戯れ言だからそう言うのは無視でいいよ
> なおデリケートはイベントリスナとして使われてる程度の理解しかなく使いどころがピンと来ていません
デリケートは一部の処理を動的に変えたりしたい時や外部から必要な処理を与えたい時に使うものだから必要になるまで覚える必要はない
>>865とかは自称上級者のうぬぼれテクなので真似しなくていい
> 精進します
今のままでいいから頑張ってね

1000:デフォルトの名無しさん
17/12/21 21:48:19.96 giWx2kxQ.net
>>976
アセンブラガー
って話になるからほどほどにしときなよ

1001:デフォルトの名無しさん
17/12/21 21:52:35.91 Q/EvmKMe.net
>>978
いろいろ語るに落ちてるね。
こういう人ってARGBの組み合わせの数だけクラス作るのかなw
処理もデータと同じで変数に代入して柔軟に交換可能であるなんて
発想はCの時代からあるし、高度なテクニックでも何でもないけど、
この程度のことを理解してないから「自称上級者のうぬぼれテク」に見えちゃうんだろうね

1002:デフォルトの名無しさん
17/12/21 21:56:22.73 HqNyhY75.net
>>977
そりゃするよ
1変数のクラスは超重要なものだ
オブジェクト指向では絶対に欠かせないツール
1つの文字列変数を持った注文番号クラス
1つの数値変数を持った金額クラス
1つの日付変更を持った出荷予定日クラス
などなど
僕たちがプログラムで扱うものはただの文字列や数値や日付じゃあないんだ
そこをしっかりと認識してほしいね

1003:デフォルトの名無しさん
17/12/21 21:56:29.51 VaR9+Vl3.net
char *p;
p = 0;
*p = 0;

1004:デフォルトの名無しさん
17/12/21 22:01:14.12 h7wsiOnr.net
>>982
次スレよろ

1005:デフォルトの名無しさん
17/12/21 22:01:31.28 Mqu0aN7Q.net
この上っ面だけのの現実とリンクしてない理解
主張をいうだけで論拠もへったくれもない態度
雑談スレで暴れてたやつか

1006:デフォルトの名無しさん
17/12/21 22:05:56.61 h7wsiOnr.net
これでいいっぽいな
ふらっと C#,C♯,C#(初心者用) Part134
スレリンク(tech板)

1007:デフォルトの名無しさん
17/12/21 23:30:24.92 oDUVChgl.net
大学入試程度の数学をよく理解できない人がいるのと同じように
オブジェクト指向を理解できない人ってどうしてもいるわけで
それはしかたがないことなのかもしれないね

1008:デフォルトの名無しさん
17/12/21 23:38:52.52 HqNyhY75.net
>>984
現実から目をそらさず複雑性に立ち向かうためにOOPを使う
現実とリンクしてないなのはプリミティブタイプ


1009:を使う人たちだな



1010:デフォルトの名無しさん
17/12/21 23:52:44.06 +ZpzqfgR.net
ワードサラダとあんまり変わらんな

1011:デフォルトの名無しさん
17/12/22 00:24:55.67 sp7ymsVp.net
>>980
> こういう人ってARGBの組み合わせの数だけクラス作るのかなw
意味わからん
> この程度のことを理解してないから「自称上級者のうぬぼれテク」に見えちゃうんだろうね
いや、必要もないのにドヤッてるから自称上級者とかバカにされてるだけ w

1012:デフォルトの名無しさん
17/12/22 00:30:23.73 SpQ4O+yi.net
>>989
1を聞いて10を知る人間もいれば、0にしかならない君みたいな人もいるわけで。
君はデータと処理はまったく別物だと思い込んでるから「意味わからん」わけ

1013:デフォルトの名無しさん
17/12/22 00:37:51.40 H1xj7tcO.net
いや誰が見ても意味不明

1014:デフォルトの名無しさん
17/12/22 00:46:44.98 mdOvvC+t.net
何で争ってるのかもわからないし
間に読み飛ばされた人がいたらかわいそうだな

1015:デフォルトの名無しさん
17/12/22 01:07:14.36 sp7ymsVp.net
質問者は理解してるっぽいから大丈夫でしょ
一部の自称上級者様が頓珍漢なネタでドヤッてるだけ w

1016:デフォルトの名無しさん
17/12/22 01:29:42.45 agnD/jLF.net
>>981
馬鹿みたい
構造も変わってないのに
クラス図を変更しなきゃいけない
お前の組み方は無駄に変更に弱えーんだよ
ただ、それだけじゃん

1017:デフォルトの名無しさん
17/12/22 01:33:36.39 agnD/jLF.net
なんかメリットあるのかよと
単にプログラム記述上のお前の勝手な都合だけだろw

1018:デフォルトの名無しさん
17/12/22 01:35:03.42 YbdIgSB6.net
classを使うメリットって入出力を共通化する為って意識が強かったんだけど違うのかしら・・・
整理してないところで追加項目を一つ増やしたら他の関係ない場所にも追加項目を処理する機構を作らないといけなくなるみたいな

1019:デフォルトの名無しさん
17/12/22 01:38:59.75 YbdIgSB6.net
>>996
入力は追加するけど出力や処理はそのままでも動きますよって変更に対して修正しないと動かなくなるようなのを防ぐ意味合いで考えてた
追加した入力に対してはメソッド新しく作ったりして対応や既存のところに付け足すとか色々やり方はあるだろうけど

1020:デフォルトの名無しさん
17/12/22 01:52:53.80 SpQ4O+yi.net
何度も言うけど、要件の詳細が明らかになってないから断定はできないが、
普通費目って聞いたら費目ごとに異なる処理(具体的な価格を計算するメソッド?)
はせいぜい1つ程度だろうと想像する。
たった一つのメソッドの動作を上書きするために派生させるなんて愚の骨頂。
アホかと。ありえない。
そんなのOOPでも多態でも何でもないよ

1021:デフォルトの名無しさん
17/12/22 02:30:17.88 FmyxrnYE.net
うめ

1022:デフォルトの名無しさん
17/12/22 02:30:29.41 FmyxrnYE.net
うめ

1023:デフォルトの名無しさん
17/12/22 02:30:41.94 FmyxrnYE.net
うめ

1024:デフォルトの名無しさん
17/12/22 02:30:49.17 FmyxrnYE.net
うめ

1025:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 23日 5時間 0分 1秒

1026:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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