1: デフォルトの名無しさん 2021/03/07(日) 18:10:08.57 ID:j0hLt10R
オブジェクト指向云々を議論するのは構いませんが、
結局ソースファイルがどこなのか分からなければ
話にならないことを忘れてはならないと思う。
大変なのは、プログラミングそのものより、
自分が手を加えなければいけないのはどの
ソースファイルでどのメソッドなのかということや
どこにディレクトリりを作ってどこに配置をすればいいか
決めることではないのか?
継承やポリモーフィズム、オーバーライド
抽象クラス、インタフェースとか使いこなすのは構わないが
ソースがどこにあるか余計わからなくなるようでは
後から参加する人が困ります。
また、ディレクトリ構造にはソースファイルが
だけがあるわけではない。
HTMLや画像や音声や設定ファイルや
JSON,XMLファイル、アプリ特有の特殊なバイナリ
だってあるんだ
これらをどう配置すればいいかなんて誰も教えてくれない
じゃないですか。
2: デフォルトの名無しさん 2021/03/07(日) 18:16:25.38 ID:j0hLt10R
もっと最悪なのは
外部ソースをインクルードする文
そのものが変数化されてたり
関数型プログラミングやリフレクションにかぶれて
関数とかクラスが変数化されていることにより
実行されているソースそのものが
ソース読んだだけじゃ追いにくくなってたり
フレームワークの特殊な命名規約や
特殊ルール知ってないと、どこに処理が飛んでるのか
ソースを追えなくなったりすることが多すぎる。
新人とかに実装投げても、3時間経ってもまだ
ソース探してんだよ。
状況を聞くと「こりゃ初見じゃ無理だ。」って
思わざるを得ないことが多い。
俺が全部ソース探し手伝わなきゃならんのか?
3: デフォルトの名無しさん 2021/03/07(日) 18:25:47.99 ID:WtkfuJ8m
最初は手伝ってやればいいじゃん、そのうち慣れるよ
4: デフォルトの名無しさん 2021/03/07(日) 19:38:28.77 ID:vyuBuDwH
意訳 ディレクトリ構造=クラス構造のJavaは先見の明があったな
5: デフォルトの名無しさん 2021/03/07(日) 21:41:35.36 ID:OPAOeHk0
初心者は何をやるにしたってつまづくんだから教えてやれよで終わり
6: デフォルトの名無しさん 2021/03/08(月) 07:02:54.02 ID:v29abKC6
ちゃんとモデル設計しろよ
7: デフォルトの名無しさん 2021/03/08(月) 08:16:33.09 ID:hs7WEJ4d
ディレクトリ構造をドキュメントに落としてないとこなんてあるのか
新しく参加した開発者に最初に説明する内容でしょ
9: デフォルトの名無しさん 2021/03/08(月) 17:24:21.89 ID:L/PaohrV
でも親子クラスの配置とか
抽象クラスやインタフェースと
実装クラスの配置まで考えて言うほど厳密に
ディレクトリ設計するか?
あと共通してどこからでも呼び出される
モジュールや関数とか
HTMLの共通外枠テンプレとか共通組み込み画面部品とか
CSSやJavaScriptの共通読み込みファイルとか
何だかんだグダグダになってカオス化しやすいイメージ
特に画面の部品はDIYを捨てて共通化せずに
画面とファイルが1対1の関係で使い捨てた方が絶対いい
コピペだってDIYだろ
画面だけは無闇に動的変動要素だらけにせずに直書きの方がメンテしやすい
バックエンドは共通化すべきだが
11: デフォルトの名無しさん 2021/03/09(火) 10:55:45.61 ID:xG3jZtoX
>>9
一般的には抽象クラスやインタフェースや実装クラスみたいな形式的種別でどのディレクトリに置くかを決めたりしない
各ファイルが持ってる責務で決める
12: デフォルトの名無しさん 2021/03/09(火) 11:00:09.58 ID:p4cuNQqC
>>11
その理屈だとテストディレクトリなんてものは作らずに
ソースコードと同じ所にテストコードも置くべきということになるが?
13: デフォルトの名無しさん 2021/03/09(火) 11:40:48.72 ID:vAevlrlc
>>12
それどんな理屈だよw
14: デフォルトの名無しさん 2021/03/09(火) 11:41:59.83 ID:SVNbCZD4
>>13
責務できめるからだろ
15: デフォルトの名無しさん 2021/03/09(火) 11:43:39.71 ID:kMVDaOhq
>>14
テストコードの責務をなんだと思ってるの???
16: デフォルトの名無しさん 2021/03/09(火) 11:45:38.48 ID:SVNbCZD4
>>15
インターフェースの責務をなんだと思ってるの?
26: デフォルトの名無しさん 2021/03/09(火) 12:43:00.42 ID:z04g+BkK
>>11
> 一般的には抽象クラスやインタフェースや実装クラスみたいな形式的種別でどのディレクトリに置くかを決めたりしない
理解できたか?ケースバイケースということだ
29: デフォルトの名無しさん 2021/03/09(火) 13:23:04.54 ID:uEPsHiDJ
>>26
そのケースもインターフェースという形式的種別で分けてるわけじゃないんだよ
アプリケーションの中でそのファイルが果たすべき”責務”によって分けてる
“責務”がわからんと話通じないだろうけどね
32: デフォルトの名無しさん 2021/03/09(火) 16:08:39.80 ID:MbPysK70
>>29
責務とは何かね
10: デフォルトの名無しさん 2021/03/08(月) 18:14:20.77 ID:aw2IeuYt
ディレクトリ構造ってのはアプリケーションアーキテクチャの設計を反映したものなんよね
開発者にとってはディレクトリ構造がコードレベルでアーキテクチャを理解するための第一歩
17: デフォルトの名無しさん 2021/03/09(火) 12:00:20.58 ID:uT9d2fS/
なるほどなー 責務という言葉だけでは理解できない人もいるんだな
勉強になったわ
18: デフォルトの名無しさん 2021/03/09(火) 12:09:40.76 ID:z04g+BkK
はい、説明できずに逃げたー
19: デフォルトの名無しさん 2021/03/09(火) 12:20:35.95 ID:MbPysK70
責務は能力と権限をセットにしたもの
テストとテストでないプログラムは機能も実行タイミングもアクターも違うので
分けていいと思うけど、パッケージプライベートのクラスをテストするために
クラスパスを同じにすることはあるよねー
21: デフォルトの名無しさん 2021/03/09(火) 12:24:00.63 ID:z04g+BkK
>>19
はいはい、その理屈だと
インターフェースも機能も実行タイミングもアクターも違うので
ディレクトリは分けるべきだと言ってますー
22: デフォルトの名無しさん 2021/03/09(火) 12:25:31.45 ID:MbPysK70
>>21
apiパッケージとimplパッケージにわけることあるよね
ケースバイケースで良いと思うよ
20: デフォルトの名無しさん 2021/03/09(火) 12:22:01.57 ID:MbPysK70
同じディレクトリにテストを置くのはそれはそれで良いところもあるよね
ケースバイケースで
23: デフォルトの名無しさん 2021/03/09(火) 12:29:00.23 ID:z04g+BkK
インターフェースをディレクトリに分けるケースは出た
わけないケースはないのだろうな
ケースバイケースだが、わけないケースを言わないということはそうなる
24: デフォルトの名無しさん 2021/03/09(火) 12:29:31.86 ID:MbPysK70
>>23
分けなくてもいんじゃない?
25: デフォルトの名無しさん 2021/03/09(火) 12:30:49.37 ID:MbPysK70
インタフェイスと実装が同じパッケージに存在しても問題ないよ
ケースバイケースだよ
27: デフォルトの名無しさん 2021/03/09(火) 12:44:27.53 ID:MbPysK70
責務で決めるのもケースの一つじゃないかな
28: デフォルトの名無しさん 2021/03/09(火) 12:44:49.01 ID:MbPysK70
一般的だと思うよ
30: デフォルトの名無しさん 2021/03/09(火) 13:31:39.94 ID:23EnNN7A
syntaxとsemanticsの違いが分からないみたいな感じかな?
文脈によってsemanticsは変わるから見えてる景色が違うんだろう
40: デフォルトの名無しさん 2021/03/10(水) 18:06:48.08 ID:MCvoFBii
>>30
その「責務」ってやつが
クラス設計者の頭の中で構築されて
各プログラマで推測することでしか共有認識されない事が
オブジェクト指向そもそもの問題点なんだよ。
責務というものはコード上から機械的に追うことは不可能
クラス名から推測するしかなくて
そのクラスを格納するディレクトリ名などからしか
推測することしか出来ない
どんなにコメントを書いても、
UMLや仕様書をかいたところで
認識は各メンバーでどうしても微妙にズレていく
41: デフォルトの名無しさん 2021/03/10(水) 18:50:40.75 ID:8NWvnedP
>>40
最低限の核になる部分の設計意図ぐらいちゃんと文章を書けって話だろ
どうとでも解釈出来る図や表ばっかりじゃなくてな
それが出来ないというかやろうともしない失語症みたいな人間が山ほど居てウンザリするけどな
42: デフォルトの名無しさん 2021/03/10(水) 19:00:18.05 ID:oeJexwIy
>>40
その文章力だと何やっても無理
オブジェクト指向とか関係なく君がクソなだけ
43: デフォルトの名無しさん 2021/03/10(水) 19:50:30.68 ID:NxUYWl/k
>>40
コード上から機械的に追うことが可能なものだけしか見ないから
いつまで経ってもクソプログラマーなんだぞ
クソコードスレのやつらと一緒だな
31: デフォルトの名無しさん 2021/03/09(火) 15:55:56.08 ID:p7a+eowO
形式と意味と意図
これらを区別して考えられないやつはクソプログラマー
クソプログラマーほど意図ではなく形式に意識が向かう
なぜか?
33: デフォルトの名無しさん 2021/03/09(火) 16:09:57.46 ID:MbPysK70
>>31
数学会の主流は形式主義だからプログラミングも形式を追求することによって圧倒的な成長を遂げると思うの
34: デフォルトの名無しさん 2021/03/09(火) 22:10:14.60 ID:BIanm+fj
形から入っている奴は結局ダメ
そもそもオブジェクト指向と言っても継承やらを必ず使う必要は全然無い訳で
クラスをブラックボックスで利用出来るようにするぐらいで十分
それが知らない奴はそういう実装が出来ない訳だがw
37: デフォルトの名無しさん 2021/03/10(水) 00:46:53.36 ID:yFwP4B8e
形から入るやつはダメというのも一つの形だから自己矛盾なんですね
38: デフォルトの名無しさん 2021/03/10(水) 00:47:33.24 ID:yFwP4B8e
ところで君たちエヴァンゲリオンは観たのかい?
39: デフォルトの名無しさん 2021/03/10(水) 09:43:24.16 ID:vUFReCtH
平成時代に見たよ
48: デフォルトの名無しさん 2021/03/12(金) 00:28:34.58 ID:bK2JcbQx
「オブジェクト指向」って単語スレタイに入ってるといつもの人来るの草
50: デフォルトの名無しさん 2021/03/12(金) 13:01:29.82 ID:5NoXColr
日本語には意志動詞と無意志動詞という区別があってだな
意志動詞はその主体が意志を持って動作を行っている様を表現したいときにのみ使うもの
オブジェクト指向と擬人化思考の相性がいい理由の一つ
58: デフォルトの名無しさん 2021/03/24(水) 20:02:06.41 ID:jO3PWgho
全部自分で書いて試せるだろうよ
44: デフォルトの名無しさん 2021/03/10(水) 21:07:59.45 ID:oNaV9oC3
末端プログラマの考え方が学べる良スレ
みんなどうしてるか気にはなる
http://toro.2ch.sc/test/read.cgi/tech/1615108208/
この記事へのコメントはありません。