2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

オブジェクト指向のディレクトリ構造の調査と設計

1 :デフォルトの名無しさん:2021/03/07(日) 18:10:08.57 ID:j0hLt10R.net
オブジェクト指向云々を議論するのは構いませんが、
結局ソースファイルがどこなのか分からなければ
話にならないことを忘れてはならないと思う。

大変なのは、プログラミングそのものより、
自分が手を加えなければいけないのはどの
ソースファイルでどのメソッドなのかということや
どこにディレクトリりを作ってどこに配置をすればいいか
決めることではないのか?

継承やポリモーフィズム、オーバーライド
抽象クラス、インタフェースとか使いこなすのは構わないが
ソースがどこにあるか余計わからなくなるようでは
後から参加する人が困ります。

また、ディレクトリ構造にはソースファイルが
だけがあるわけではない。
HTMLや画像や音声や設定ファイルや
JSON,XMLファイル、アプリ特有の特殊なバイナリ
だってあるんだ
これらをどう配置すればいいかなんて誰も教えてくれない
じゃないですか。

2 :デフォルトの名無しさん:2021/03/07(日) 18:16:25.38 ID:j0hLt10R.net
もっと最悪なのは
外部ソースをインクルードする文
そのものが変数化されてたり
関数型プログラミングやリフレクションにかぶれて
関数とかクラスが変数化されていることにより
実行されているソースそのものが
ソース読んだだけじゃ追いにくくなってたり

フレームワークの特殊な命名規約や
特殊ルール知ってないと、どこに処理が飛んでるのか
ソースを追えなくなったりすることが多すぎる。

新人とかに実装投げても、3時間経ってもまだ
ソース探してんだよ。
状況を聞くと「こりゃ初見じゃ無理だ。」って
思わざるを得ないことが多い。
俺が全部ソース探し手伝わなきゃならんのか?

3 :デフォルトの名無しさん:2021/03/07(日) 18:25:47.99 ID:WtkfuJ8m.net
最初は手伝ってやればいいじゃん、そのうち慣れるよ

4 :デフォルトの名無しさん:2021/03/07(日) 19:38:28.77 ID:vyuBuDwH.net
意訳 ディレクトリ構造=クラス構造のJavaは先見の明があったな

5 :デフォルトの名無しさん:2021/03/07(日) 21:41:35.36 ID:OPAOeHk0.net
初心者は何をやるにしたってつまづくんだから教えてやれよで終わり

6 :デフォルトの名無しさん:2021/03/08(月) 07:02:54.02 ID:v29abKC6.net
ちゃんとモデル設計しろよ

7 :デフォルトの名無しさん:2021/03/08(月) 08:16:33.09 ID:hs7WEJ4d.net
ディレクトリ構造をドキュメントに落としてないとこなんてあるのか
新しく参加した開発者に最初に説明する内容でしょ

8 :デフォルトの名無しさん:2021/03/08(月) 12:56:36.18 ID:P3HygzNP.net
Python大好き
http://blog.nogizaka46.com/newfourth/2020/05/056214.php
https://twitter.com/supikiti/status/1264493868147343360
(deleted an unsolicited ad)

9 :デフォルトの名無しさん:2021/03/08(月) 17:24:21.89 ID:L/PaohrV.net
でも親子クラスの配置とか
抽象クラスやインタフェースと
実装クラスの配置まで考えて言うほど厳密に
ディレクトリ設計するか?

あと共通してどこからでも呼び出される
モジュールや関数とか

HTMLの共通外枠テンプレとか共通組み込み画面部品とか
CSSやJavaScriptの共通読み込みファイルとか
何だかんだグダグダになってカオス化しやすいイメージ
特に画面の部品はDIYを捨てて共通化せずに
画面とファイルが1対1の関係で使い捨てた方が絶対いい
コピペだってDIYだろ
画面だけは無闇に動的変動要素だらけにせずに直書きの方がメンテしやすい
バックエンドは共通化すべきだが

10 :デフォルトの名無しさん:2021/03/08(月) 18:14:20.77 ID:aw2IeuYt.net
ディレクトリ構造ってのはアプリケーションアーキテクチャの設計を反映したものなんよね

開発者にとってはディレクトリ構造がコードレベルでアーキテクチャを理解するための第一歩

11 :デフォルトの名無しさん:2021/03/09(火) 10:55:45.61 ID:xG3jZtoX.net
>>9
一般的には抽象クラスやインタフェースや実装クラスみたいな形式的種別でどのディレクトリに置くかを決めたりしない
各ファイルが持ってる責務で決める

12 :デフォルトの名無しさん:2021/03/09(火) 11:00:09.58 ID:p4cuNQqC.net
>>11
その理屈だとテストディレクトリなんてものは作らずに
ソースコードと同じ所にテストコードも置くべきということになるが?

13 :デフォルトの名無しさん:2021/03/09(火) 11:40:48.72 ID:vAevlrlc.net
>>12
それどんな理屈だよw

14 :デフォルトの名無しさん:2021/03/09(火) 11:41:59.83 ID:SVNbCZD4.net
>>13
責務できめるからだろ

15 :デフォルトの名無しさん:2021/03/09(火) 11:43:39.71 ID:kMVDaOhq.net
>>14
テストコードの責務をなんだと思ってるの???

16 :デフォルトの名無しさん:2021/03/09(火) 11:45:38.48 ID:SVNbCZD4.net
>>15
インターフェースの責務をなんだと思ってるの?

17 :デフォルトの名無しさん:2021/03/09(火) 12:00:20.58 ID:uT9d2fS/.net
なるほどなー 責務という言葉だけでは理解できない人もいるんだな
勉強になったわ

18 :デフォルトの名無しさん:2021/03/09(火) 12:09:40.76 ID:z04g+BkK.net
はい、説明できずに逃げたー

19 :デフォルトの名無しさん:2021/03/09(火) 12:20:35.95 ID:MbPysK70.net
責務は能力と権限をセットにしたもの

テストとテストでないプログラムは機能も実行タイミングもアクターも違うので
分けていいと思うけど、パッケージプライベートのクラスをテストするために
クラスパスを同じにすることはあるよねー

20 :デフォルトの名無しさん:2021/03/09(火) 12:22:01.57 ID:MbPysK70.net
同じディレクトリにテストを置くのはそれはそれで良いところもあるよね
ケースバイケースで

21 :デフォルトの名無しさん:2021/03/09(火) 12:24:00.63 ID:z04g+BkK.net
>>19
はいはい、その理屈だと
インターフェースも機能も実行タイミングもアクターも違うので
ディレクトリは分けるべきだと言ってますー

22 :デフォルトの名無しさん:2021/03/09(火) 12:25:31.45 ID:MbPysK70.net
>>21
apiパッケージとimplパッケージにわけることあるよね
ケースバイケースで良いと思うよ

23 :デフォルトの名無しさん:2021/03/09(火) 12:29:00.23 ID:z04g+BkK.net
インターフェースをディレクトリに分けるケースは出た
わけないケースはないのだろうな
ケースバイケースだが、わけないケースを言わないということはそうなる

24 :デフォルトの名無しさん:2021/03/09(火) 12:29:31.86 ID:MbPysK70.net
>>23
分けなくてもいんじゃない?

25 :デフォルトの名無しさん:2021/03/09(火) 12:30:49.37 ID:MbPysK70.net
インタフェイスと実装が同じパッケージに存在しても問題ないよ
ケースバイケースだよ

26 :デフォルトの名無しさん:2021/03/09(火) 12:43:00.42 ID:z04g+BkK.net
>>11
> 一般的には抽象クラスやインタフェースや実装クラスみたいな形式的種別でどのディレクトリに置くかを決めたりしない

理解できたか?ケースバイケースということだ

27 :デフォルトの名無しさん:2021/03/09(火) 12:44:27.53 ID:MbPysK70.net
責務で決めるのもケースの一つじゃないかな

28 :デフォルトの名無しさん:2021/03/09(火) 12:44:49.01 ID:MbPysK70.net
一般的だと思うよ

29 :デフォルトの名無しさん:2021/03/09(火) 13:23:04.54 ID:uEPsHiDJ.net
>>26
そのケースもインターフェースという形式的種別で分けてるわけじゃないんだよ
アプリケーションの中でそのファイルが果たすべき"責務"によって分けてる

"責務"がわからんと話通じないだろうけどね

30 :デフォルトの名無しさん:2021/03/09(火) 13:31:39.94 ID:23EnNN7A.net
syntaxとsemanticsの違いが分からないみたいな感じかな?
文脈によってsemanticsは変わるから見えてる景色が違うんだろう

31 :デフォルトの名無しさん:2021/03/09(火) 15:55:56.08 ID:p7a+eowO.net
形式と意味と意図
これらを区別して考えられないやつはクソプログラマー
クソプログラマーほど意図ではなく形式に意識が向かう

なぜか?

32 :デフォルトの名無しさん:2021/03/09(火) 16:08:39.80 ID:MbPysK70.net
>>29
責務とは何かね

33 :デフォルトの名無しさん:2021/03/09(火) 16:09:57.46 ID:MbPysK70.net
>>31
数学会の主流は形式主義だからプログラミングも形式を追求することによって圧倒的な成長を遂げると思うの

34 :デフォルトの名無しさん:2021/03/09(火) 22:10:14.60 ID:BIanm+fj.net
形から入っている奴は結局ダメ
そもそもオブジェクト指向と言っても継承やらを必ず使う必要は全然無い訳で
クラスをブラックボックスで利用出来るようにするぐらいで十分
それが知らない奴はそういう実装が出来ない訳だがw

35 :デフォルトの名無しさん:2021/03/10(水) 00:07:44.23 ID:yFwP4B8e.net
ネテロが毎日一人で正拳突きを繰り返し人類の頂点に上り詰めたように
先人が築いた理論を真似することでそこからさらに高みに行ける
先人の知恵を無視して自己流でやっても先人は超えられない
守破離の守ができない人間はそれを破ることさえもできないのさ
プログラミングの極意は形式の中にこそある

36 :デフォルトの名無しさん:2021/03/10(水) 00:39:06.80 ID:YbOvU8Ck.net
>>35
尻滅烈

37 :デフォルトの名無しさん:2021/03/10(水) 00:46:53.36 ID:yFwP4B8e.net
形から入るやつはダメというのも一つの形だから自己矛盾なんですね

38 :デフォルトの名無しさん:2021/03/10(水) 00:47:33.24 ID:yFwP4B8e.net
ところで君たちエヴァンゲリオンは観たのかい?

39 :デフォルトの名無しさん:2021/03/10(水) 09:43:24.16 ID:vUFReCtH.net
平成時代に見たよ

40 :デフォルトの名無しさん:2021/03/10(水) 18:06:48.08 ID:MCvoFBii.net
>>30
その「責務」ってやつが
クラス設計者の頭の中で構築されて
各プログラマで推測することでしか共有認識されない事が
オブジェクト指向そもそもの問題点なんだよ。

責務というものはコード上から機械的に追うことは不可能
クラス名から推測するしかなくて
そのクラスを格納するディレクトリ名などからしか
推測することしか出来ない
どんなにコメントを書いても、
UMLや仕様書をかいたところで
認識は各メンバーでどうしても微妙にズレていく

41 :デフォルトの名無しさん:2021/03/10(水) 18:50:40.75 ID:8NWvnedP.net
>>40
最低限の核になる部分の設計意図ぐらいちゃんと文章を書けって話だろ
どうとでも解釈出来る図や表ばっかりじゃなくてな
それが出来ないというかやろうともしない失語症みたいな人間が山ほど居てウンザリするけどな

42 :デフォルトの名無しさん:2021/03/10(水) 19:00:18.05 ID:oeJexwIy.net
>>40
その文章力だと何やっても無理
オブジェクト指向とか関係なく君がクソなだけ

43 :デフォルトの名無しさん:2021/03/10(水) 19:50:30.68 ID:NxUYWl/k.net
>>40
コード上から機械的に追うことが可能なものだけしか見ないから
いつまで経ってもクソプログラマーなんだぞ

クソコードスレのやつらと一緒だな

44 :デフォルトの名無しさん:2021/03/10(水) 21:07:59.45 ID:oNaV9oC3.net
末端プログラマの考え方が学べる良スレ

45 :デフォルトの名無しさん:2021/03/11(木) 18:50:34.92 ID:nhBfI0TI.net
ところで「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!

46 :デフォルトの名無しさん:2021/03/11(木) 19:15:57.45 ID:fdwFiuL8.net
不随意運動。
ハイ論破。

47 :デフォルトの名無しさん:2021/03/11(木) 19:23:26.51 ID:2k6w0W90.net
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く

48 :デフォルトの名無しさん:2021/03/12(金) 00:28:34.58 ID:bK2JcbQx.net
「オブジェクト指向」って単語スレタイに入ってるといつもの人来るの草

49 :デフォルトの名無しさん:2021/03/12(金) 12:00:12.73 ID:iC3QOahd.net
統失っぽいだよなあ

50 :デフォルトの名無しさん:2021/03/12(金) 13:01:29.82 ID:5NoXColr.net
日本語には意志動詞と無意志動詞という区別があってだな
意志動詞はその主体が意志を持って動作を行っている様を表現したいときにのみ使うもの

オブジェクト指向と擬人化思考の相性がいい理由の一つ

51 :デフォルトの名無しさん:2021/03/12(金) 13:23:51.72 ID:Hb0It6HF.net
『シコシコ』という擬音はどうでもよい。問題は、

自我    チンポ
↑      ↑   チンポ=自我
チンポ   自我

オブジェクト指向では、この三種類が考えられるということだ。
>チンポ=自我
散歩している時、自分もチンポも所在地は同一である。

https://i.imgur.com/4XhBmP3.jpg
https://i.imgur.com/PPFJZqI.jpg

夏目くんの場合は、チンポが自我を圧倒し、体が自然に滝川さんの股間に近づいていったのだ。

『笑ってごまかすな!!』

と言われても、夏目くんは何と言えば良かったのだろう?

    チンポ≫自我

『チンポが自我を超えてしまった』を簡略化して、チンポがシコシコする!

チンポがシコシコしていると(チンポが自我を超越していると)、息もハァハァになる。
チンポがシコシコしている(チンポが自我を超越している)と、顔もアヘ顔になる。
つまりその顔は『チンポの一部』つまりチンポの皮と同じということ。

博士号の肩書きがあっても、STAP細胞のそれは間違いであり科学者として失格。
チンポと自我の関係について、それが間違いということなら、俺も科学者を自称するのを止めよう。
しかしながらあの夏目くんは、笑ってごまかす以外に何と申し上げたら良かったのか。

52 :デフォルトの名無しさん:2021/03/12(金) 13:27:17.92 ID:Hb0It6HF.net
クリントン大統領の「不適切」というのは、チンポが独立して主体意思でシコシコしてしまったから。

>>50
>意志動詞はその主体が意志を持って動作を行っている様を表現したいときにのみ使うもの

クリントン大統領だって、チンポが勝手に独立してシコシコしてしまったのだからな!

クリントンの「不適切な関係」
https://eigo-kobako.blog.so-net.ne.jp/2008-06-21

不適切な関係、そんな言語表現あるのか?

ちんぽがしこしこしてしまったのが、不適切な関係なのか?

53 :デフォルトの名無しさん:2021/03/12(金) 13:32:29.83 ID:Hb0It6HF.net
オブジェクト同士は常に二人称で、「俺」←対話(メッセージング)→「チンポ」。
つまりチンポは独立し自ら考えて行動する別の生き物なのである。

この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
https://blog.mah-lab.com/2014/03/18/object-oriented/

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」

まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!

【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp

54 :デフォルトの名無しさん:2021/03/12(金) 13:41:06.67 ID:Hb0It6HF.net
>>50
>意志動詞はその主体が意志を持って動作を行っている様を表現したいときにのみ使うもの

男性では排尿後に陰茎をよくふって尿道内残尿をきるように指導したり、あるいは尿道のなかでいちばん太い
球部尿道があるのは陰茎の付け根あたり(陰嚢のうら)ですので、そこから尿道を出口へむけてこする
ようにしぼり出すという方法もあります。 
https://www.tachikawa-hosp.gr.jp/kenko-column/zannyou.html

55 :デフォルトの名無しさん:2021/03/12(金) 13:51:13.87 ID:rGP7M8NS.net
>>50
>意志動詞はその主体が意志を持って動作を行っている様を表現したいときにのみ使うもの

そして、トイレへ行き尿を出そうと思うと、脳が「出してよい」という信号を送ります。ここで副交感神経が
主にはたらき、尿道の筋肉がゆるみ、反対に膀胱の筋肉は締まって尿を押し出し、尿が排出されるのです。
健康な成人では、1回の排尿量は300ミリリットルほどで、約30秒で膀胱が空っぽになるのが普通です。
https://www.hainyou.com/sp/m/mechanism/

56 :デフォルトの名無しさん:2021/03/12(金) 16:41:35.99 ID:WS11SrCh.net
このスレタイの趣旨は
そのチンポや尿がディレクトリ構造
のどこにあるかを探す、という話なんだか

57 :デフォルトの名無しさん:2021/03/24(水) 19:44:14.60 ID:acx8Cm+D.net
ちょっと質問なんですが、
以下の場合の時、ファイルのimportは必要ですか?

あるクラスでメソッドを定義する時、
Hogeというクラスのインスタンスを引数として
要求するメソッドがある場合
メソッド定義側でHogeをimportは必要ですか?

また戻り値がHogeクラスのインスタンスだった場合
メソッド定義側にHogeをimportは必要ですか?

Hogeクラスの戻り値を受け取るメソッド呼び出し側で
Hogeのimportは必要ですか?

Hogeを親クラスとしてextendしたりimplementsする場合
子クラス(実装クラス)側でHogeをimportは必要ですか?

親クラスでimport済みのクラスを
子クラスで再度importせずにnewで呼び出すことは可能ですか?
または戻り値として呼び出し元へ返すことは可能ですか?

何らかの子クラスを呼び出す側でimportした時に
その子クラスの全ての親クラスや
その子クラスがimplementsしたインタフェースも
全てimportしたことになりますか?

Hogeというクラスのインスタンスを自分のコードで呼び出したメソッドの戻り値として受け取ったものを
自分のコードのメソッドで自分のメソッドの呼び出し側に
戻り値として更に返すことは可能ですか?
また、その際にHogeのimportは必要ですか?

58 :デフォルトの名無しさん:2021/03/24(水) 20:02:06.41 ID:jO3PWgho.net
全部自分で書いて試せるだろうよ

59 :デフォルトの名無しさん:2021/03/25(木) 12:53:45.78 ID:18nzHvsr.net
Elixir では、import, alias は無くても動くけど、
require は、別のファイルを読み込んで実行するものだから、必須

import すれば、
A.f( )のモジュール名を省略できるので、f( )と書けると言うだけ

むしろ、f( )と書くと、短くなるけど、
どのモジュールの関数か、分からなくなる

Ruby の作者・Matz も、import/require の区別がつかない人は、
プログラマーに向いていないと言ってる

60 :デフォルトの名無しさん:2021/03/31(水) 13:44:45.83 ID:kGXRgIVZ.net
>>59
この違いは分からないな。
何が違うんだ?

61 :デフォルトの名無しさん:2021/03/31(水) 14:25:03.66 ID:rlnsgVLR.net
英語の意味は違うけど、プログラミング用語としては一緒じゃね?
あの関数が必要(require)だから読み込むんだ(import)
という文章のどの単語を使うかってだけ

62 :デフォルトの名無しさん:2021/04/01(木) 01:55:09.40 ID:Qm9pGYRd.net
>>61
RubyのやつはあちこちでRubyの話を書き込み有名人

スルーしてください

63 :デフォルトの名無しさん:2021/04/01(木) 11:16:52.89 ID:/m7p4qXu.net
ruby界隈のクソルールだろ。どうでもええわ。

64 :デフォルトの名無しさん:2021/04/01(木) 19:26:56.23 ID:ryE6fAwd.net
importでもincludeでもrequireでもいいが
これを正確に追えんと移植した時システムぶっ壊れるからな
ある意味プログラミングより重要だな

先週もクソ新人がバックアップ取るディレクトリ
の範囲が狭くて復旧不可能なレベルでシステムぶっ壊されたわ
(もっと親ディレクトリをバックアップしないといけなかった)
結果半月くらい前まで大デグレや
git管理は崩壊しとったし、最悪やで。

65 :デフォルトの名無しさん:2021/04/01(木) 19:41:57.66 ID:/m7p4qXu.net
クソ新人一人に壊されるような体制自体がクソだろ

66 :デフォルトの名無しさん:2021/04/01(木) 21:36:20.66 ID:t8+AXSKU.net
Elixirの話だって書いてるだろw
そんなんじゃまたルビキチにすらバカにされるよ

67 :デフォルトの名無しさん:2021/04/07(水) 21:21:39.55 ID:BNYv60c+.net
大量のエラー出力されるの見て
「俺すごいプログラム作っただで…」って勘違いしそう
それをネカマや視聴者に自慢することで感慨に浸っていき
大物プログラマー気取りで40分くらいうんちく垂れ流しそう

68 :デフォルトの名無しさん:2021/04/08(木) 07:08:23.61 ID:J10pYO6o.net
>67は自己紹介なんだろうな

69 :デフォルトの名無しさん:2022/03/21(月) 02:20:36.76 ID:yDL8pXTw.net
権威主義的に、頭のいい奴が示した考えに乗っかっちゃえばいいと思う
オニオンアーキテクチャとか適当なアーキテクチャパターン引っ張ってきて
それをベースにプロジェクトとかディレクトリ構成してカスタマイズしていけば
大失敗はないやろ

70 :デフォルトの名無しさん:2023/09/27(水) 21:56:59.80 ID:UTrOsnS+.net
(*○*)!!

23 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★