SEの人でクラス設計してる人ってやっぱり知り尽くしてる?

今月の関連人気記事
(集計単位:1ヶ月)
1: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:42:20.821 ID:TIqllAKa0
プログラミングしながらクラス作ってるけどむずくね?

2: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:45:09.898 ID:TIqllAKa0
出来る限りプライベートで宣言して
セッターとかゲッター使ってく感じだよね?
やっぱり設計を先にすべきなんだろうか

3: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:45:29.296 ID:y+i9+mQ/a
難しいと感じる場合
ほとんどが仕様が曖昧なまま
設計もせずに作ろうとしてるパターン
まあ設計つまんないしね

4: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:48:13.956 ID:TIqllAKa0
>>3
段階を踏んだりするの?
プログラミングの場合メインのクラスで1番最初に実装して
それを小分けにしてクラスにしたり
最初からクラスでどばっと書いて後から追加してったり
もうごちゃごちゃで楽な方法ないのか模索してるんだけど

8: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:53:43.581 ID:y+i9+mQ/a

>>4
ぶっつけ本番でもぐちゃぐちゃになりにくい方法は
「少しでも用途と異なると思った機能はクラスを分ける」と
「クラスに実装した機能でセットになる機能があるならクラス化する」とか

例えば画面の描画を扱うクラスなのに、描画する値を計算させようとするのは機能を分け切れてないとか
クラスのメンバにリストがあって、そのリストの操作を同じクラスの機能として実装してるなら
リスト用のクラスを作ってやるとか

9: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:58:19.418 ID:TIqllAKa0
>>8
考えると考えるだけどんどん小分けになっていっちゃう恐怖がある・・・

10: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:02:34.885 ID:y+i9+mQ/a

>>9
読む側からしたら肥大化するよりかは小分けの方がいいかな
もちろん、似たようなクラスがあるとかは困るけど
きちんと機能の差別化が出来てるなら小分けにした方がいい
そうすればエラーの特定もしやすくなるし、仕様変更にも対応しやすくなる

あと、機能を付け加える癖があるなら
デザインパターンでadapterみたいな
機能の拡張に関するものを調べとくといいかも

12: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:04:58.309 ID:TIqllAKa0
>>10
検索してみたけどそこまで難しいのはやってない!
単純にメインのクラスとそこにおいて行く物で再利用する物をクラスにちょこちょこしていってる感じ

22: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:16:16.894 ID:XaWIGRIK0
>>3
設計がつまらないとか言う馬鹿はさっさと死ね

6: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:50:19.431 ID:TIqllAKa0
クラス作り得意な人とかいる?

7: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 21:52:26.248 ID:n+rroNGE0
何つくってんのか知らんけどおきまりのアーキテクチャとかあるだろ
デザパタ本とか読めば

11: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:04:09.289 ID:etFelRmqH
DBありきでクラス設計してけばいい

13: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:06:08.254 ID:TIqllAKa0
>>11
DBもよくわかんないんだよなぁ
外部キーと主キーがうまく実装出来ない
テーブル二つになってもいいやって感じでようやく動かしてるレベル

14: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:07:13.121 ID:etFelRmqH
>>13
オブジェクト思考でモデル設計してけばだいたい固まってきて
DBの1レコードがそのままクラスになる

17: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:08:51.042 ID:TIqllAKa0
>>14
DBとクラスってすごい似てると思ったけど
やはりそんな感じなんだ

19: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:11:46.163 ID:etFelRmqH
>>17
has manyの関係気をつけるのと
あとはorm使ってやってけばだいたいわかると思う

24: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:17:37.896 ID:XaWIGRIK0
>>14
むしろER設計→オブジェクトだと思うんだが

28: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:20:00.492 ID:etFelRmqH
>>24
むしろというか
そういう設計しかやったことない

30: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:21:56.225 ID:XaWIGRIK0
>>28
それなら>>14の書き方おかしいだろ
順序が違う

33: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:25:54.015 ID:etFelRmqH
>>30
んーまぁそうか
とはいえ厳密な順番は無いと思ってて
切り離しては考えられないから設計するときは同時に決まってる印象

35: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:28:35.987 ID:XaWIGRIK0
>>33
オブジェクト設計のオブジェクト切り分け指針は不明瞭という話だ
ER設計ほどの明確な基準がオブジェクト指向にはない
現実的にはERの指針に従ってデータを保持するオブジェクトを切り分けているはず

37: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:30:17.578 ID:etFelRmqH
>>35
うまいこと言語かしてくれてる気がする
実際はorm使うからdbの制約やormの仕様に合わせてモデル設計をしてると言われればその通りだと思った

15: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:08:38.845 ID:etFelRmqH
mvcでしか作ったこと無いから他のシステムはわからん
参考にならないかも

16: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:08:48.187 ID:y+i9+mQ/a
DBいいな、分かりやすい
配列の操作にも慣れるし

18: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:09:57.642 ID:WirTLUOd0
データ仕様と処理フローが決まれば勝手に決まってくだろそんなもん

20: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:13:14.345 ID:TIqllAKa0
DBのテーブルって一つのクラスで列が変数みたいな感じなわけで
それに関数がついてるのがクラスみたいなイメージにはなった
ただSQL苦手だし覚えてないからDB苦手すぎる
あとなんか怖い

21: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:15:01.366 ID:etFelRmqH
>>20
なんの言語でなに作ってるの

23: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:17:15.268 ID:TIqllAKa0
>>21
C++でゲーム作ってるけど全然ごちゃごちゃ・・・

26: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:19:26.963 ID:etFelRmqH
>>23
UEとか?
ゲームエンジンはそんなわからんなぁ
的確なアドバイスはできなそうだ

27: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:19:33.859 ID:WirTLUOd0
>>23
要するに要件を固められてない
要件が固まってないから仕様がふわふわする
仕様がふわふわするからゴチャってクソプログラムができる

29: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:21:03.605 ID:XaWIGRIK0

>>27
これも間違ってるなあ
要件が変わっても設計の基礎は揺らがない設計が望ましい設計

分かってない奴多過ぎ

40: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:34:05.775 ID:WirTLUOd0

>>29
もしインプットが変わってアウトプットが変わらないならむしろ具体化が足りない
「基礎は」とか言ってる時点でお前のレスが見当違い

>>31
気がするだけで、本当は正しい可能性もある
とりあえず、迷ったときは一からやり直すのも手だぞ
積み重ねた資産がないならだけど

43: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:36:30.762 ID:XaWIGRIK0

>>40
オブジェクト指向の根本は
要件は変化する
だから

それを認識できていない奴がオブジェクト指向について語るな

47: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:39:28.771 ID:WirTLUOd0
>>43
お前こそ分かってないな
まあ、見当違いなレス連発してくれた時点でお前の程度は分かったけど

49: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:42:15.296 ID:XaWIGRIK0
>>47
な、
オブジェクト指向の根本は要件は変化する
ということすら理解してないアホだろ

44: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:37:14.580 ID:TIqllAKa0
>>40
1からやり直すのも視野にいれてみるありがとう

31: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:23:01.561 ID:TIqllAKa0
>>27
ごっちゃごちゃになってる気がするんだよね・・・
とりあえず一つのクラスに色々つめこんでるクラスができてる

25: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:19:20.465 ID:8fgB6/P3M
要件決めろ
そんでコード書く前に設計しろ
コード規約も書け

32: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:24:03.809 ID:S+bNr6HU0
オブジェクト指向の勉強になるいい本ない?
実際のコードよりはコンセプトの方を学びたいんだが

34: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:28:03.404 ID:TIqllAKa0
>>32
オブジェクト指向とは現実世界で言えば
人間というクラス、家というクラス、学校というクラス、PC、スマホ、テレビというクラス
のようになんでもクラスに出来る!

36: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:29:11.330 ID:XaWIGRIK0
>>34
ど素人乙

38: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:30:52.833 ID:etFelRmqH
>>36
えー
そういう考え方でいいと思うけどなぁ

39: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:33:13.050 ID:XaWIGRIK0
>>38
実際のシステム構築すれば>>34の考え方じゃ作れないとすぐに気付くんだが
その考えじゃデータを保持するオブジェクトについてしか対応できない
機能を担当するオブジェクト設計する指針ではないんだよ

41: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:35:11.479 ID:TIqllAKa0

>>36
ほんとこんな感じなんだよ!
地球というクラスをメインに1個作るでしょ?
他には人間というクラスを作る
地球というクラスの中で人間クラスをインスタンス化して宣言する
人間と言うクラスの中で歩く関数や走る関数、年齢という変数、性別という変数を定義してあとから追加する
新しく火星というクラスを作る
そのときに人間クラスをインスタンス化すると火星でも人間を簡単に作れる
ほかにも車クラスや木クラスや家クラス、スマホやPCクラスも地球クラス作るとき作っておけば火星クラスでも再利用できる

ここまでは理解できたけど中身がごちゃごちゃしてるのが問題

42: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:35:37.865 ID:etFelRmqH
>>41
手伝いたいわw

45: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:37:17.253 ID:XaWIGRIK0
>>41
んで、機能を担当するクラスは?

46: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:39:20.970 ID:TIqllAKa0
>>45
なんの機能?

48: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:41:42.788 ID:XaWIGRIK0
>>46
馬鹿過ぎ
どんなシステムでも機能あるじゃん
実際のシステム構築した経験があれば絶対にしない質問だわ

51: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:44:04.307 ID:TIqllAKa0
>>48
だからなんの機能?
例えば火星の機能なら火星クラスに直接書いてもいい
でも空気とかであるならば空気クラスを作ったほうがいい
空気は火星クラスでも地球クラスでも使うから再利用できる

54: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:45:29.608 ID:XaWIGRIK0
>>51
てめえが設計した経験があれば機能なんてイメージできるだろ
イメージできないの?
イメージすらできない奴が設計語るとか恥ずかしくない?

55: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:48:11.705 ID:TIqllAKa0
>>54
だからなんの機能だよ
火星の機能なら火星で書くよ

56: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:49:00.279 ID:XaWIGRIK0
>>55
だからさ、どんなシステムでも機能あるだろw
機能と言われてなんでこれまでも経験からイメージできないんだ?
あ、設計した経験がないのかwwww

58: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:51:51.964 ID:TIqllAKa0
>>56
だから何の機能だよ

59: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:53:52.213 ID:XaWIGRIK0
>>58
あのさ、
数個でもシステム構築した経験がありゃ
システムの機能と言われりゃおおまかなイメージくらい湧くだろ
お前は湧かないの?
なんで?
お前はシステム構築経験あんの?
あ、ない?wwww

62: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:59:46.556 ID:TIqllAKa0
>>59
何の機能だよ
火星の年齢とかなら火星クラスに書いてもいいし
共通するデータになりそうだからデータクラスみたいなのでも問題なさそう

63: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:01:54.676 ID:XaWIGRIK0

>>62
な、馬鹿だろ
オブジェクト指向はシステム一般の課題に対する解決策を提案する思想なのに
「で、どの特定の業務なの?」
と何度も聞くバカ

お前は何も理解してねえよ雑魚

64: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:02:56.167 ID:TIqllAKa0
>>63
言ってる事がよくわかんない・・・
俺が悪かったよ・・・ってことで・・・

65: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:03:22.130 ID:XaWIGRIK0
>>64
馬鹿すぎるわw

50: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:42:52.064 ID:5Y3d6XLl0
オブジェクト指向とか適当にやっとかないと無駄に時間消費するだけ
後から後からここは違ったなとか出てくるからな

52: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:44:33.969 ID:XaWIGRIK0
>>50
はいバカ
適当な設計でコーディングして
コードを修正するほうがよっぽど手間なんだが

53: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:44:44.747 ID:TIqllAKa0
>>50
また1から作ればいい!

57: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:51:33.866 ID:i/Cu+6Nna
よくいる、プログラミングしてる人を馬鹿にして優越感に浸りながらやる気をくじこうとしてるタイプか
まるで本質を語ってるようで教科書にでも書いてる本質の一部を語ってるだけだから間に受けないように

60: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:55:33.926 ID:i/Cu+6Nna
システムの機能か
本業だけど「どんなシステムか」が無いと分からないな

61: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 22:56:14.913 ID:XaWIGRIK0
>>60
オブジェクト指向は特定の業務限定の思想じゃないぞ
根本的にずれてるな
おバカさんw

68: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:07:37.323 ID:i/Cu+6Nna
>>61
この読解力のなさ、説明の下手さ
お前素人だろ
どんなシステムにも必ずあるような機能、なんてものは存在しない
お勉強やり直してこい

69: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:09:11.538 ID:XaWIGRIK0

>>68
な、こいつ馬鹿だろwww

オブジェクト指向の根本は要件は変化する
と教えてやったんだが

馬鹿は根本すら理解してないからポイントが把握できないwwww

70: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:10:16.285 ID:i/Cu+6Nna
>>69
オブジェクト指向に基いた設計思想と機能にはなんら関わりはないんだよなぁ
ど素人が

72: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:11:19.722 ID:XaWIGRIK0
>>70
特定の業務に限定されないとはっきり書いたがwwww
特定の業務に限定されないのに
業務を特定しろと要求する馬鹿は馬鹿だよなあwwww

66: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:05:55.599 ID:qSiKpJSK0
なんでこいつはこんなに上から目線なの?
素直に教えてやりゃいいのに

67: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:07:15.485 ID:XaWIGRIK0

>>66
はいバカw

オブジェクト指向は特定の業務に限定されない
システム一般の課題への対応策だと説明してやってるだろ

説明されてるのに理解できないアホってw

73: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:11:47.028 ID:i/Cu+6Nna
>>71
曖昧な言葉で相手を煽り挑発し
具体的な内容を言わないことでイライラさせてストレスやコンプレックスを解消しようとしてるだけ
間違いなく消えるまで具体的な事は何も言わんよ
知らんからな

77: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:13:00.590 ID:XaWIGRIK0
>>73
え?
ポイントを明確に指摘されてるのに理解できないバカwwwww

78: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:13:32.820 ID:i/Cu+6Nna
>>77
よう馬鹿
もう喋んなくていいぞ
お前の無能さは理解した

79: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:14:43.250 ID:XaWIGRIK0

>>78
このバカよwww
指摘されてるポイントは明確なのに
反論とは「お前の母ちゃんでべそ」レベルwwww
反論したきゃ指摘されたポイントがなぜ違うか言おうぜ

幼稚園児じゃないんだからさあwwwww

75: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:12:17.890 ID:XaWIGRIK0
>>71
スキルの低い馬鹿は
適切な指摘をされてもそれを理解できないよなあ
馬鹿の典型的反応wwww

74: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:11:51.284 ID:NinJhgP5d
オブジェクト指向設計とオブジェクト指向プログラミングは似て非なるもの。

76: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:13:00.467 ID:LZ+BKLT20
とりあえずここのみんなで何か設計しようぜ

89: 以下、5ちゃんねるからVIPがお送りします 2018/07/20(金) 23:38:13.116 ID:XKjI/i+pr
C++ででっかいプロジェクト作ってるとクラス無いと死ぬ
ウェブ系だとクラス以外にもシステムを疎結合にする方法が沢山あるからクラス使わないまま育つのかね

引用元

SEの人でクラス設計してる人ってやっぱり知り尽くしてる?

管理人からひと言

ホントにクラス作るときってどうやって考えてるんだろ?

スポンサー

シェアする

フォローする