X



オブジェクト指向ってクソじゃね?
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:32:09.36ID:ifygL6bT
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
0003デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:35:14.51ID:ZAZ1bDZG
よくある
0004デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:44:30.12ID:dWZiPnfz
アホだな
0006デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:48:32.20ID:JNQXY3hm
>>696-701
ハロワ!
0007デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:48:49.10ID:JNQXY3hm
>>188-193
ハロワ!
0008デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:48:49.93ID:JNQXY3hm
>>188-193
ハロワ!
0009デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:06.65ID:JNQXY3hm
>>936-941
ハロワ!
0010デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:07.52ID:JNQXY3hm
>>936-941
ハロワ!
0011デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:24.49ID:JNQXY3hm
>>475-480
ハロワ!
0012デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:25.25ID:JNQXY3hm
>>475-480
ハロワ!
0013デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:42.00ID:JNQXY3hm
>>504-509
ハロワ!
0014デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:42.66ID:JNQXY3hm
>>504-509
ハロワ!
0015デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:49:59.43ID:JNQXY3hm
>>10-15
ハロワ!
0016デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:00.16ID:JNQXY3hm
>>10-15
ハロワ!
0017デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:17.05ID:JNQXY3hm
>>846-851
ハロワ!
0018デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:17.68ID:JNQXY3hm
>>846-851
ハロワ!
0019デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:34.99ID:JNQXY3hm
>>794-799
ハロワ!
0020デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:35.59ID:JNQXY3hm
>>794-799
ハロワ!
0021デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:52.74ID:JNQXY3hm
>>594-599
ハロワ!
0022デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:50:53.52ID:JNQXY3hm
>>594-599
ハロワ!
0023デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:51:10.36ID:JNQXY3hm
>>74-79
ハロワ!
0024デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:51:10.98ID:JNQXY3hm
>>74-79
ハロワ!
0025デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:51:27.73ID:JNQXY3hm
>>865-870
ハロワ!
0026デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:51:28.57ID:JNQXY3hm
>>865-870
ハロワ!
0027デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:51:46.63ID:JNQXY3hm
>>193-198
ハロワ!
0028デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:51:47.62ID:JNQXY3hm
>>193-198
ハロワ!
0029デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:04.41ID:JNQXY3hm
>>639-644
ハロワ!
0030デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:05.28ID:JNQXY3hm
>>639-644
ハロワ!
0031デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:22.20ID:JNQXY3hm
>>743-748
ハロワ!
0032デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:22.85ID:JNQXY3hm
>>743-748
ハロワ!
0033デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:39.73ID:JNQXY3hm
>>2-7
ハロワ!
0034デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:40.36ID:JNQXY3hm
>>2-7
ハロワ!
0035デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:57.00ID:JNQXY3hm
>>300-305
ハロワ!
0036デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:52:57.69ID:JNQXY3hm
>>300-305
ハロワ!
0037デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:53:14.69ID:JNQXY3hm
>>423-428
ハロワ!
0038デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:53:15.30ID:JNQXY3hm
>>423-428
ハロワ!
0039デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:53:32.47ID:JNQXY3hm
>>227-232
ハロワ!
0040デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:53:33.30ID:JNQXY3hm
>>227-232
ハロワ!
0041デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:53:50.36ID:JNQXY3hm
>>150-155
ハロワ!
0042デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:53:51.27ID:JNQXY3hm
>>150-155
ハロワ!
0043デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:54:07.98ID:JNQXY3hm
>>715-720
ハロワ!
0044デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:54:08.57ID:JNQXY3hm
>>715-720
ハロワ!
0045デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:54:25.45ID:JNQXY3hm
>>57-62
ハロワ!
0046デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:54:26.08ID:JNQXY3hm
>>57-62
ハロワ!
0047デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:54:42.76ID:JNQXY3hm
>>856-861
ハロワ!
0048デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:54:43.68ID:JNQXY3hm
>>856-861
ハロワ!
0049デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:55:00.44ID:JNQXY3hm
>>595-600
ハロワ!
0050デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:55:01.09ID:JNQXY3hm
>>595-600
ハロワ!
0051デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:55:17.72ID:JNQXY3hm
>>314-319
ハロワ!
0052デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:55:18.39ID:JNQXY3hm
>>314-319
ハロワ!
0053デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:55:36.07ID:JNQXY3hm
>>632-637
ハロワ!
0054デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:55:36.71ID:JNQXY3hm
>>632-637
ハロワ!
0055デフォルトの名無しさん
垢版 |
2018/08/24(金) 14:27:45.99ID:0hzqlpOd
>>1
ケイちゃんの言うレシーバオブジェクトは
ネットワーク越しにアクセスできるコンピュータだから
プライベートのキーワードはなくても
必然的にプライベートになるんじゃないかな
0057デフォルトの名無しさん
垢版 |
2018/08/25(土) 13:13:07.84ID:00w/RGH3
砂糖(シンタックスシュガー)を加えて関数型言語っぽくしているが、臭いまではごまかせない
0058デフォルトの名無しさん
垢版 |
2018/08/25(土) 13:25:46.59ID:bFeNHPVf
オブジェクト指向が無くなった場合
メソッドは全部グローバル関数になるの?

PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();

FirePersonCreate(Person p);

FirePersonRename(Person p,string newName);
FirePersonSetAge(Person p,int age);
FirePersonGetAge();
0059デフォルトの名無しさん
垢版 |
2018/08/25(土) 13:27:10.91ID:bFeNHPVf
訂正

PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();

FirePersonCreate(Person p);

FirePersonRename(FirePerson p,string newName);
FirePersonSetAge(FirePerson p,int age);
FirePersonGetAge();
0061デフォルトの名無しさん
垢版 |
2018/08/31(金) 19:34:28.84ID:lHXkvQer
文系がこねくり回して、結果的に無駄にコード量増やすようなイメージしかない。
0062デフォルトの名無しさん
垢版 |
2018/09/05(水) 05:14:03.10ID:UEpkpswy
>>1
オブジェクト指向で組めない君らがクソ
0064デフォルトの名無しさん
垢版 |
2018/09/05(水) 09:21:08.12ID:BLSFUWnl
カプセル化が原因で開発ができなくなるとするならオブジェクトの分け方が不適切なのだろ、開発が進むに連れてオブジェクトの役割が変遷したのだろ、設計やり直せないなら地獄だな
0066デフォルトの名無しさん
垢版 |
2018/09/05(水) 15:30:35.02ID:UEpkpswy
>>61
正しく組めば重複が減ってコード量は減る

>>64
普通はカプセル化しないことで
開発できなくなることの方が多い
グローバル変数を使うとか
0067デフォルトの名無しさん
垢版 |
2018/09/05(水) 23:23:20.11ID:BuNkH2Jq
オブジェクト指向で描くロバストネス図なんてのは
構造化プログラミングの前のフローチャートそのものじゃないか
オブジェクト指向は現代のGOTO文なんだろ?
0068デフォルトの名無しさん
垢版 |
2018/09/06(木) 01:28:19.10ID:uUC4mFDs
>>67
https://thinkit.co.jp/article/13487

> ロバストネス図を書くにあたっては、以下のルールを遵守する必要があります。
>
> ・アクターはバウンダリのみ関連線(矢印)が引ける
> ・バウンダリはコントロールとアクターのみ関連線が引ける
> ・エンティティはコントロールのみ関連線が引ける
> ・コントロールはコントロール同士とバウンダリのみ関連線が引ける

残念ながらフロー(流れ)を示す線は書けないので
フローチャートにはならない。特に条件分岐やループなどがない
0069デフォルトの名無しさん
垢版 |
2018/09/06(木) 03:27:30.57ID:OdtAawkS
>>67
どちらかというとロバストネス図は
ユースケース図の方が近くて
フローチャートと同じってのはおかしい
0071デフォルトの名無しさん
垢版 |
2018/09/06(木) 07:42:10.81ID:ndioKak8
/** リストの要素をゼロで置き換える **/
private void clearList() {
 for (Integer el : someList) {
  el = new Integer(0);
 }
}

なかなかファンキーなロケンロールだぜ
0072デフォルトの名無しさん
垢版 |
2018/09/06(木) 08:26:13.84ID:abjuqq+M
>>68
条件分岐はあるで
ループもあるで
GOTOだからわかりにくいけど
線はフローを表すんやで
ロバストネスエアプか?
0073デフォルトの名無しさん
垢版 |
2018/09/06(木) 08:28:15.97ID:abjuqq+M
>>69
ユースケース図はユースケースを並べたものですよね
ロバストネスはユースケースごとに処理フローを
書くわけでフローチャートそのものですよ
0074デフォルトの名無しさん
垢版 |
2018/09/06(木) 08:31:32.42ID:abjuqq+M
構造化プログラムでゴトーが滅亡したようにオブジェクト指向にも構造化のブレイクスルーが生まれていい頃合いだと思うの
0075デフォルトの名無しさん
垢版 |
2018/09/06(木) 12:51:58.13ID:ntAiYVJq
オブジェクト指向って簡単な処理先に書いて難しい処理は後回しにする考え方でしょ
0076デフォルトの名無しさん
垢版 |
2018/09/06(木) 13:33:23.77ID:uUC4mFDs
>>75
違うけど、意味がわからないから例をあげてみて
「簡単な処理」とは何かライブラリを使えば難しい処理は簡単な処理とみなせるのか?
0078デフォルトの名無しさん
垢版 |
2018/09/06(木) 13:50:58.27ID:BY1c9tpo
そもそも、継承関係で隠蔽しちゃい合うのが問題なだけで、
インスタンス握り合うだけの仲なら、相手の陰部まで見に行く必要性なんて無いだろ。
0079デフォルトの名無しさん
垢版 |
2018/09/06(木) 23:36:20.94ID:OdtAawkS
>>70
そのサイトには賛成できる部分と反対の部分がある

「クラスとはデータ構造」で
「責務はクラスではない」というのには大反対

クラスは責務そのものという方が
オブジェクト指向の主流の教え方
0080デフォルトの名無しさん
垢版 |
2018/09/06(木) 23:37:17.79ID:OdtAawkS
>>75
当たってる部分がなくもないけど
たんに関数に分割するんじゃなくて
抽象化するのがオブジェクト指向
0081デフォルトの名無しさん
垢版 |
2018/09/07(金) 08:35:51.18ID:avaKv6NM
>>79
ゴトーが主流の時代もあったわけで
主流じゃないからという理由で反対するのは
いけないことだと思います!
0084デフォルトの名無しさん
垢版 |
2018/09/07(金) 19:25:29.09ID:ZCXZkOYn
>>81
それもそうか

>>82
変更コストが下がるから

>>83
いやむしろ凝集度は上がるよ?

凝集度を上げるっていうのは
でかいクラスを作ることじゃないよ?
0085デフォルトの名無しさん
垢版 |
2018/09/07(金) 19:40:40.77ID:Nc+ifFiB
ボトムアップで設計したら結局最上位クラスが神クラス化しちゃうのは、アプリ層の設計が甘いんかな?
どうもUI部の設計は苦手だ。
0087デフォルトの名無しさん
垢版 |
2018/09/07(金) 20:36:30.67ID:avaKv6NM
ドメインオブジェクトがドメインとしての振る舞いを持つのですから肥大化とは言いません、データと関わりのない振る舞いを持つわけではないんです
0088デフォルトの名無しさん
垢版 |
2018/09/07(金) 20:48:57.91ID:ZCXZkOYn
>>85
肥大化するのが設計が甘いと言われればその通りでしょ
ただ最初から一発で分からないことも多いので
リファクタリングするのも大事だと思う
0089デフォルトの名無しさん
垢版 |
2018/09/07(金) 20:49:13.32ID:ZCXZkOYn
>>86
>データに関わる処理を一箇所に
複数のデータの処理を一箇所でやるという意味なら
凝集度は下がる

>>87
ドメインオブジェクトの数が増えていくのは普通だが
1オブジェクトの行数が増えていくのは肥大化
0090デフォルトの名無しさん
垢版 |
2018/09/07(金) 21:07:16.42ID:0j44DGgx
>>89
そんなバカな
行数でオブジェクトを捉えるべきじゃない
振る舞いがどこにあるべきかで考えないと

行数が増えたからオブジェクト分けましょうなんてのは
オブジェクト指向の理念に反する

データをカプセル化してデータに対する責務を持つのが
オブジェクトなんだよ
0092デフォルトの名無しさん
垢版 |
2018/09/07(金) 21:12:47.16ID:0j44DGgx
オブジェクトが何かを考えないと行数で判断するという
前世紀のような事が起こるわけです
行数が多いからこのオブジェクトは頑張ってるんだな
と思ってしまうわけです
大きな間違いです、オブジェクト指向の根幹はカプセル化です
次に多態性、オブジェクトに適切なフルマがあって初めて
多態性を実現できます
0093デフォルトの名無しさん
垢版 |
2018/09/07(金) 21:15:03.24ID:Nc+ifFiB
皆が言ってることはもちろん分かる。
分かった上でViewのコートが大きくなりすぎて例えばC#ならついついpartial使ってファイル分けちゃう。
MVVMでも結局はViewか大きくなっちゃう。

いや、分かるよ。俺がViewの設計が下手っぴなのは認める。
0095デフォルトの名無しさん
垢版 |
2018/09/07(金) 22:12:16.23ID:ZCXZkOYn
>>90
もちろん行数は目安でしかない
責務ごとにクラスを作るのが本筋

>>91
>>83
別人の発言かもしれないがこの発言の関係に疑問が残る

責務ごとにクラスを作ることで凝集度が上がるのであって
複数の責務をひとつのクラスに混ぜたら凝集度は下がるよ
0096デフォルトの名無しさん
垢版 |
2018/09/07(金) 22:14:41.41ID:ZCXZkOYn
>>92
もちろん行数は目安でしかないが
行数が増えすぎたときに
リファクタリングするのは実践的には大事


>>93
大きくなったら分割するのは何も悪くない

全体の規模が大きくなっていく時に
ひとつのクラスの行数が増えるのが肥大化
クラス数を増やしていくのが正しいOOP
0098デフォルトの名無しさん
垢版 |
2018/09/07(金) 22:58:43.86ID:B/yxkRYZ
このスレにいるような池沼が作らなければ
クラスライブラリも階層や種類で作るからな

低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする

そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする

その上にアプリケーションを実現するクラス群がのっかる

低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる
0101デフォルトの名無しさん
垢版 |
2018/09/08(土) 02:18:28.54ID:j/6nk0eH
当然、低レベルな部分を実現するクラスライブラリと
アプリケーションが主に利用する中間層のクラスライブラリと
アプリケーション自体を記述するクラス群は
シロウトでもないかぎり完全に分離するからな

低レベルな部分を実現するクラスライブラリは
当然、中間層のクラスライブラリやアプリケーション自体を記述するクラス群を
参照することはまずない

アプリケーションが主に利用する中間層のクラスライブラリは
アプリケーション自体を記述するクラス群を参照することはまずない

低学歴知恵遅れが作ると酷い依存関係ができる
コレはオブジェクト指向関係なくライブラリの基本だからな
0102デフォルトの名無しさん
垢版 |
2018/09/08(土) 04:34:33.80ID:xpw/+eIi
>>99
継承はクラス間の階層構造だろ?

>>100
行数だけの問題じゃないけど
プログラムを単純化するために
間接的なクラスを作ることはあるぞ?
0103デフォルトの名無しさん
垢版 |
2018/09/08(土) 09:24:01.98ID:t/+GvP7Y
× このクラスの責務は行数を減らす事です
○ fooクラスに別のクラスに責務を分離できる処理を見つけたので分離しました。
その結果fooクラスの行数が減りました。

「行数を減らす」は「責務」ではない。「責務」を分離することで
得られる結果(メリット)の一つだ
0104デフォルトの名無しさん
垢版 |
2018/09/08(土) 12:06:19.78ID:GaM457i+
>70のサイト読んでると

プログラミングでどの様にしてプログラミングするか
というのと
実際のシステム要件なんかからどうやって設計するか
というのがごっちゃに書かれている感じがする
0105デフォルトの名無しさん
垢版 |
2018/09/08(土) 12:33:05.14ID:1I6Cu01I
>>103
鋭い
0106デフォルトの名無しさん
垢版 |
2018/09/08(土) 12:41:12.60ID:j/6nk0eH
責務とアホみたいなこといってるわ
組織でたとえるならこうなるからな

 経営者クラス 社員をこき使う
  ↓
 社員クラス ← 派遣をこき使う(職階ごとの複数の中間層)
  ↓
 派遣クラス ← キミラが担当するような低レベルな部分の単純作業(つまりキミラ)

派遣は社員の作業も役員の作業もしない
社員は役員の作業はしない

行数が多いのは
作業を整理して作業を手順化して
派遣にうまく単純作業を割り当てれてないのと同じだからな
つまり、人に仕事させないと自分の作業が増える

キミラは派遣だからな、そういう作業はできないのは分かる

作業ミス(例外)が発生してスルーし続けてたら上までいくからな
0107デフォルトの名無しさん
垢版 |
2018/09/08(土) 12:52:36.37ID:j/6nk0eH
例えば扱うビジネスの領域が違えば
部門を分けることになる

会社に複数の部門があっても一つの会社だからな
種類で分けるというのはそういうことになる

キミラみたいな一種類の単純作業しかしてないヤツラには関係ない
0108デフォルトの名無しさん
垢版 |
2018/09/08(土) 13:03:07.35ID:j/6nk0eH
というわけでな
キミラは刺身にタンポポのせる作業に戻りなさい
キミラにはムリ
0110デフォルトの名無しさん
垢版 |
2018/09/08(土) 13:11:07.86ID:j/6nk0eH
あ、オマエは刺身の醤油入れに醤油つめる作業だったか
いや、醤油入れのキャップをしめる作業だったか

ともかく、キミの細かい作業なんかオレは知らないからな
作業ミスが発生したらちゃんと報告するようにな

まずキミの直属の上長にだ

分かった?
0112デフォルトの名無しさん
垢版 |
2018/09/08(土) 14:59:23.20ID:1I6Cu01I
>>106
それだと上位が下位に依存して
組織が硬直化する
インタフェスを挟んで依存関係を逆転させる

(経営者クラス → 社員インタフェス) ← (社員クラス → 派遣インタフェス) ← 派遣クラス

これがInversion Of Control
0114デフォルトの名無しさん
垢版 |
2018/09/08(土) 15:11:58.88ID:1I6Cu01I
Inversion of Controlパターンでコンポーネント間の結びつきを弱める:CodeZine(コードジン)
https://codezine.jp/article/detail/60

こことか
0115デフォルトの名無しさん
垢版 |
2018/09/08(土) 15:40:47.46ID:j/6nk0eH
ただのリフレクションやんけ
昔のウンコMFCのコントロールのリフレクションとほとんど同じ
結局親のコントロールに大量のリフレクションのコードを埋め込むことになる

コントロールごとに処理記述するほうがはるかに分かりやすい
0116デフォルトの名無しさん
垢版 |
2018/09/08(土) 15:43:54.64ID:j/6nk0eH
×結びつきを弱める
○もともと末端ではなにもしない処理にする
0117デフォルトの名無しさん
垢版 |
2018/09/08(土) 15:51:53.40ID:1I6Cu01I
何もしないだと・・・
じゃあたんぽぽ担当は何のために
0118デフォルトの名無しさん
垢版 |
2018/09/08(土) 16:07:40.80ID:j/6nk0eH
いちいちタンポポ載せてる作業経過報告はいらない
作業の補助とか、いちいち次になにをするかとかとか指示はしないからな

タンポポが地面に落ちたとかこのタンポポのハナ小さいとか
そういう報告もいらない
捨てときなさい
それぐらい分かるだろう

タンポポが足りなくなりそうになったら
この台帳に書いときなさい
コレだけはたまに見といてやるからな
0119デフォルトの名無しさん
垢版 |
2018/09/08(土) 16:11:08.60ID:1I6Cu01I
台帳によって疎結合になるわけですね
0120デフォルトの名無しさん
垢版 |
2018/09/08(土) 16:11:29.17ID:1I6Cu01I
台帳オブジェクトの発見、これがドメイン分析
0122デフォルトの名無しさん
垢版 |
2018/09/09(日) 01:14:12.52ID:0bXk8YdS
DBのテーブル数や列数が少なくて
テーブル設計が洗練されているならオブジェクト指向っていいんだろうね。
でも現実のシステム考えるとアホみたいにテーブルの数が多くて
アホみたいに列の数が多くて、整理もされていないわけじゃん。
そしてアホみたいに文言の定数定義とかも多い。
そうすると、階層構造作ってレイヤの数を増やして
結果的1つの機能を達成するのに作るファイルの数が増えるほど、
それらのアホみたいに多くて長い列名をレイヤの数だけ書きまくる
みたいな苦行が待っているわけじゃん。
少しでも項目名の変更があったらそれらのファイル部書き換えたり
クラス名に変更がありでもしたらファイル名やフォルダ名とか、
テーブル名、import文とか全部書き換えになるわけじゃん。
それにオブジェクト指向でどう頑張っても最終的に値を
埋め込む画面が汚くなるのは避けることができない。
そうするとオブジェクト指向設計で無理にファイルを分けて
構造化するリスクってやばいと思う。
そうなると少ないファイルオブジェクト指向クソ喰らえみたいな勢いで
構造化プログラミングだけでゴリッと書くほうが早いと思うんだよね。
命名規則もいちいち気を使わないで勢いで書くんだよ。
ファイルの中関数定義だらけになるが、
その中で似たような処理の関数見つけてきて、複製して、
今必要な処理ができるように改変して新たな関数を作る。これで十分だ。
1ファイルの中で完結しているんだから不具合は波及しない。
ファイルをまたいでimportして無理にファイルの昨日使う必要性なんて
どこにも有りはしないだろ。ファイルの頭からimportやextend inplementだらけ
とか吐き気がするよ。
オブジェクト指向ってファイル間の関連性追ったり、
ファイル構造を含んだデバッグの苦痛は無視してんのか?って思う。
0124デフォルトの名無しさん
垢版 |
2018/09/09(日) 06:49:20.59ID:O317ycPa
>>122
簡単に言うと短期間しか使わないシステムなら
構造化+DBで組むのも良いと思うけど
長期間使う大規模なシステムは
オブジェクト指向で組んだ方が
保守まで含めた全体のコストは下がる
だから企業もOOを採用している
0126デフォルトの名無しさん
垢版 |
2018/09/09(日) 07:53:15.67ID:B5kEXEZS
>オブジェクト指向ってファイル間の関連性追ったり、
>ファイル構造を含んだデバッグの苦痛は無視してんのか?って思う。

それはその通りだと思う
ただ関連性はプログラムではなくてクラス構造図やオブジェクト生成手順図みたいなので判断するもので所謂上から下に辿って見て行く物でも辿って出きる物でも無い
オブジェクト指向プログラミングをすると設計図をちゃんと描いてから作ってる
って感じがするし
ただまともに且つ効果的に作るのは難しくて解っていない人が無理やり作ってしまうと反って酷くなる
そういう風にしか作れなかったりそういう風な人しか居ないならオブジェクト指向プログラミングは止めておいた方が良いそういう風な所はcobolみたいなのが一番向いていると思う
ただしオブジェクト指向プログラミングに効果的な使い方が有り実際に行われているのでオブジェクト指向プログラミングその物がおかしいというのは間違い
多くの人が
使えるか?
使うべきか?
となるとそれは無理なのかなぁ
とは思う
どっちかって言うと解らないなら無理して使うなという物だと思う
解らない人が有る程度居る?沢山居る?ということならプロジェクトで使わないという判断する
というのが重要なんだと思う
解らない人には苦痛でしかないし解らない人が作った物は本人にも他に人にも迷惑でしかないだろうなぁ
0127デフォルトの名無しさん
垢版 |
2018/09/10(月) 23:59:27.90ID:R+xXPRjE
オブジェクト指向がよくわからんド素人俺にはlinqは感動した。
web系フレームワークの真似事+継承だらけのコードのメンテは地獄だった。素人が手をだしたらアカン代物だわ。
0129デフォルトの名無しさん
垢版 |
2018/09/17(月) 13:30:49.79ID:27GPeyCI
>>128
なんか気持ち悪い、アスペっぽい
0131デフォルトの名無しさん
垢版 |
2018/09/17(月) 22:41:39.72ID:AYOVQ736
>>130
なんか気持ち悪い、糖質っぽい
0132デフォルトの名無しさん
垢版 |
2018/09/19(水) 05:57:49.26ID:zGAoAQgA
>>128
そのブログ前も見たけど説明が下手だなあ……

何でデザインパターンが必要なのかとか
自分の言葉でほとんど説明できてないじゃん
分かりやすさ以前に分かる説明をしていない
0133デフォルトの名無しさん
垢版 |
2018/09/19(水) 19:25:49.89ID:3+BPTz35
>>125
そらーオブジェクト指向はオブジェクト使うからオブジェクトの構造をちゃんと綺麗に作れば問題は起きないな
オブジェクトの構造と言えばオブジェクト同士の繋がり方関連性も含まれるだろうからそのまま全体像にも繋がるから個々のオブジェクトさえちゃんと作れば全部が良くなるとも言えるはず

問題はシステムの基本設計が破錠しないように作ればいい、ということではなくて破錠しやすいという所にあるような
0135デフォルトの名無しさん
垢版 |
2018/09/20(木) 00:25:31.99ID:UYyYb6vq
>>134
そやな。俺が知ってる唯一の情報がオブジェクト指向はシステムの基本設計が破綻するってだけだからな。
0137デフォルトの名無しさん
垢版 |
2018/09/20(木) 17:06:26.63ID:UYyYb6vq
>>136
問題はそこからやな
バカが使わなければ破錠しないのか、隠蔽のコスパが手続き型や関数型で作るコスパを本当に上回ってんのか
0139デフォルトの名無しさん
垢版 |
2018/09/21(金) 19:22:25.43ID:+zpU6K4O
オブジェクト指向は複雑な構造を構築するわけだから
別に破綻はしないだろう
むしろ見た目は良い
0140デフォルトの名無しさん
垢版 |
2018/09/21(金) 20:28:00.82ID:qgyq16h9
オブジェクト指向の弱点はクラスとクラス間の関係を設計しないといけないこと
0141デフォルトの名無しさん
垢版 |
2018/09/21(金) 20:46:48.28ID:qgyq16h9
小規模ならいいが大規模だと設計必須
とりあえず書き始めると最後に詰まるのがオブジェクト指向

小っちゃいパーツを作ってって最後に組み合わせるとき全然組み合わなかったり
つなぎ目の形が合わないのがオブジェクト指向

普通は小さいパーツが出来てるならある程度楽できるはずなのに逆に苦しくなる
本当におかしい
0142デフォルトの名無しさん
垢版 |
2018/09/21(金) 20:51:36.57ID:qgyq16h9
クラスの関係の設計を軽減するためにクラスには最低限の機能しか実装しないようになっていく
インターフェイスを考えた上の設計がないと後で詰まる
当たり前に思ってるけどそれはオブジェクト指向の限界というか弊害
0144デフォルトの名無しさん
垢版 |
2018/09/22(土) 09:44:45.27ID:jtQ8570T
>>140
境界定義なんて、モノリシックアプリでも必須なんだが?
その認識もないままオブジェクト指向とかマイクロサービスに手を出すとグダる。

開発チームを苦しめるマイクロサービス(翻訳)
https://techracho.bpsinc.jp/hachi8833/2018_01_29/51135
0146デフォルトの名無しさん
垢版 |
2018/09/22(土) 14:09:59.67ID:ycLOp2uz
>>145
あんまりそこにしっかり書かれていないから語弊ありきで言うんだが
その抽象的間接的に作らなきゃいけないてことやな
作ってもいい、じゃなくて作らなきゃいけないという
0147デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:20:24.84ID:LHC7cNdc
>>146
そりゃ大規模プログラムをメンテナンス性あげて作ろうとしたら
オブジェクト指向に限らず、考えなきゃいけないことだろな。

でも破綻していいなら、別に抽象的間接的に作らなくていい。
小さなツール程度ならゴットクラスで破綻状態でもなんとかできるだろうさ
そういう点で、オブジェクト指向の限界でも弊害でも何でも無い
0148デフォルトの名無しさん
垢版 |
2018/09/23(日) 01:13:41.68ID:MlhnYRcx
>>147
いや俺の言う破綻てのは別にオブジェクトオンリーにこだわって
細かいとこをクロージャで逃げたり、その場しのぎ的に小さいオブジェクトで茶を濁すのもダメって意味じゃないんよ
小さいオブジェクトならオブジェクト同士やシステムが密結合になりえないだろうしな

オブジェクト指向の問題や破綻てのはやはし密結合の時にだけ起こるな
0149デフォルトの名無しさん
垢版 |
2018/09/23(日) 04:48:40.07ID:N8r2Gw6d
> オブジェクト指向の問題や破綻てのはやはし密結合の時にだけ起こるな

因果関係が逆

密結合の時・・・問題や破綻が起きる(オブジェクト指向に限らない)

話はこれだけだろう?単純だろうが
0151デフォルトの名無しさん
垢版 |
2018/09/23(日) 11:37:45.64ID:0vXeudiz
>>149
おまえめちゃめちゃバカやなw
0152デフォルトの名無しさん
垢版 |
2018/09/23(日) 12:09:34.69ID:loi8GnJQ
まあオブジェクト指向は密結合を観察する際の一つの指針にはなるかな。
〜指向全般に言えるけれど、結局は一つの指標みたいなもんで
指標上げることが目的になったらクソになるのは当たり前だよね。
0153デフォルトの名無しさん
垢版 |
2018/09/23(日) 12:29:12.02ID:0vXeudiz
バカすぎて意味がつながっとらんw
0154デフォルトの名無しさん
垢版 |
2018/09/23(日) 15:43:38.58ID:w6QfJYdi
オブジェクト指向に継承って要る?
もともとのオブジェクト指向の発想からすれば、別に無くてもいいっていうか、むしろ邪魔じゃね?
0155デフォルトの名無しさん
垢版 |
2018/09/23(日) 16:17:15.71ID:NWkg7eaT
>>154
継承でコードを書く量を減らせるってのはあるが、他の仕組みで代わりになるなら無くても良い
0157デフォルトの名無しさん
垢版 |
2018/09/23(日) 16:37:33.42ID:MlhnYRcx
>>149
ちゃうねん

複雑で大規模なモノは何で組もうが問題や破綻が起きやすくなる、って話と
オブジェクト指向は複雑で 大規模なモノを作ると破綻する、ってのは意味が違う
何故ならオブジェクト指向そのものが大規模で複雑なモノを作るため”だけ”の物だからよ。話の流れで言うと前者により後者が悪質な形で発動する

ただ当然理想論言えば問題を元々起こさなきゃいいっちゃいい話よ理想を言えば
0158デフォルトの名無しさん
垢版 |
2018/09/23(日) 16:50:39.86ID:N8r2Gw6d
> 何故ならオブジェクト指向そのものが大規模で複雑なモノを作るため”だけ”の物だからよ。
前提が間違っているから話にならん。

まず標準ライブラリの時点ですでに大規模で複雑
それが隠蔽されてるから単純に見えるってことに気づいていない
大規模で複雑なものを作るためだけのものだからというのなら、
ほとんどのものが大規模で複雑なんだから、オブジェクト指向を
使うのは当然ということになる


そして隠蔽されている部分は無視するという話なら、(オブジェクト指向の)
標準ライブラリを使うだけの簡単なコードは作れる
例えば、Rubyでprint "hello world"と書いただけでもオブジェクト指向が使われてる
オブジェクト指向であっても、小規模で単純なものを作れるものである証拠
0159デフォルトの名無しさん
垢版 |
2018/09/23(日) 17:11:55.75ID:MlhnYRcx
>>158
オブジェクト指向言語の標準ライブラリとか1番破綻しないオブジェクト指向のパターンじゃないか?
そりゃ全てのオブジェクト指向で作った物が全て破綻することはないだろう

大規模に向いてるオブジェクト指向をあえて小規模なもの作るに都合いいから流用するのはいい事だろう。個人的には自分で作ったクラスを多数のところで使い回してるならそれぞれ小規模でも全体でみたら中、大規模じゃんってなる所はあるけども

とわいえ、それでもやっぱりオブジェクト指向は大規模なものの為”だけ”にあって、そのため”だけ”の機能があって、そのせいで破綻するってのが俺の考えよ
0160デフォルトの名無しさん
垢版 |
2018/09/23(日) 17:22:45.03ID:N8r2Gw6d
>>159
だからオブジェクト指向で小規模なものを作る例あげたじゃん。
馬鹿なの?

大規模なら破綻するのは、オブジェクト指向で無くても同じ

つまりお前の理屈は
 オブジェクト指向・・・小規模は作れない、大規模は作れる
 ???指向・・・小規模は作れる、大規模も作れる
って言ってるだけでしょ

で大規模であれば、破綻するのはどちらも同じなんだから
大規模に置いてはオブジェクト指向も???指向も変わらない
だからオブジェクト指向で、小規模は作れないと言ってるだけだよね?
(実際にはオブジェクト指向で小規模なものが作れる)
0161デフォルトの名無しさん
垢版 |
2018/09/23(日) 17:45:57.32ID:cRG95Xcq
この原則さえ守れば破綻は回避できる
大体の大きな問題は起きなくなる

 @公開インタフェースは可能な限り少なくする
 A原則として、よほど適切な理由がないかぎり、可能な限り継承よりコンポジション使う
 B下位階層(ここでの階層は>>101>>106の意味)のクラスが上位階層のクラスのインターフェースに絶対に直接アクセスしてはいけない
  ※ 当然、下位クラスが上位クラスのインターフェースを直接呼びだすようなリフレクションは禁止
 C下位階層のインスタンスが非同期で上位のインスタンスに処理を依頼したい状況が発生した場合(可能な限りこんな状況が起きる設計は当然避けるべき)、
  処理のやりとりはメッセージキューで行い、可能な限り少ない回数で簡潔なメッセージを用いて簡単に完結できるようにする、複雑なメッセージシーケンスも禁止
  (コレは並立するインスタンス間でも同じ)
 D同じ階層に並立するインスタンスをムダに乱立させるのは当然禁止

コンポジションとメッセージシーケンス、クラスの階層(ここでの階層は>>101>>106の意味)、インスタンスの生存期間さえ
ドキュメントで適切におさえることができる状態になっていれば
問題やエンハンスが発生しても持続可能対応できる
0163デフォルトの名無しさん
垢版 |
2018/09/23(日) 20:20:35.62ID:MlhnYRcx
>>160
そりゃ作れないなんて言ってないがな。
「オブジェクト指向は大規模なモノを作る為だけにある」って話であって「オブジェクト指向は小規模なモノは絶対に作れない」とはならんからな

ただオブジェクト指向で小規模なモノ作ったらデータをオブジェクトでラッピングしやすいてのがあるけど
あれ完全に全くの偶然でデータをオブジェクトにまとめるのがオブジェクト指向の本丸じゃないように、オブジェクト指向の本丸ではないサブシステムが運良くそこにハマったってだけで
特にそこもオブジェクト指向は大規模なモノを作る為”だけ”にあるってのは意味は変わってないからな

俺が言ってるのは一般的にモノが複雑になれば破綻しやすいという話ではなくて
、”その上で更に”オブジェクト指向は独特の破綻を招くって話であって
0164デフォルトの名無しさん
垢版 |
2018/09/23(日) 21:48:23.69ID:N8r2Gw6d
>>163
あー、わかったわかった、つまりこういうことだろ?

墜落事故は飛行機特有の問題だ
自動車は飛べないから墜落自体ありえない

自動車で遠くにいくなら時間はかかるし
距離も長いから事故の確率も上がるし大変だが
飛べないから墜落事故は起きないのだ
0165デフォルトの名無しさん
垢版 |
2018/09/23(日) 21:50:15.95ID:N8r2Gw6d
そう主張することで、飛行機の何を否定しているのかわからんのと
どうように、オブジェクト指向の何を否定しているのかわからんがなw
0166デフォルトの名無しさん
垢版 |
2018/09/23(日) 21:51:15.19ID:0vXeudiz
おまえら破綻しすぎじゃね?w
どうやったらそんなに破綻を量産できんねんw
0167デフォルトの名無しさん
垢版 |
2018/09/23(日) 22:02:41.85ID:MlhnYRcx
>>164
オブジェクト指向の話で悪い例え話したら1番イカンやろ。抽象的なもんの取り扱いなんだから。しかも何言ってるかわからんけど多分それは違うしな

>>166
いやまさにそういう事よ。多人数が動く大規模で抽象的な流れは上手くいくはずがないわ。しかも間違い失敗のリカバリーはオブジェクト指向のメリットの規制隠蔽が裏目に出てより悪化する
0168デフォルトの名無しさん
垢版 |
2018/09/23(日) 22:26:37.81ID:N8r2Gw6d
>>167
> オブジェクト指向の話で悪い例え話したら1番イカンやろ。

は?なんで?
反論できない言い訳にもほどがあるわ
0169デフォルトの名無しさん
垢版 |
2018/09/23(日) 22:28:04.83ID:N8r2Gw6d
> しかも間違い失敗のリカバリーはオブジェクト指向のメリットの規制隠蔽が裏目に出てより悪化する

しない。
オブジェクト指向を使わないほうが破綻するし、
破綻した後のリカバリーはオブジェクト指向よりも大変

お前は単に両方とも破綻するが
オブジェクト指向的破綻をするのはオブジェクト指向だけと言ってるだけだろ

破綻する時点で問題なんだよ。オブジェクト指向の方が破綻しない
0170デフォルトの名無しさん
垢版 |
2018/09/23(日) 22:42:45.15ID:MlhnYRcx
>>169
>オブジェクト指向的破綻をするのはオブジェクト指向だけと
そういう事や。楽をするためにそれをするメリットが上回ってデメリットのが下回らなきゃいけないのはオブジェクト指向の完全必須項目なんだが
大規模複雑はこの完全必須項目がどんどん難易度が上がってくる。
途中の間違い失敗のリカバリのコストは確実にオブジェクト指向のが上

理想論一般論で言えば間違えなくちゃんと作ればいい、どの作り方でも大きいのは大変は大変、以上!て言えばそりゃそうだが
その問題を防ぐための記法が裏目に出て逆効果なら理想論一般論で片付けたらいかんでしょ
0171デフォルトの名無しさん
垢版 |
2018/09/23(日) 23:17:04.84ID:N8r2Gw6d
>>170
ほらな。

> >オブジェクト指向的破綻をするのはオブジェクト指向だけと
> そういう事や。

墜落事故を起すのは飛行機だけだと言ってるのと同じ
だからなの?状態なんだよwww
0172デフォルトの名無しさん
垢版 |
2018/09/23(日) 23:18:16.29ID:N8r2Gw6d
結局、小規模アプリでも大規模アプリでも
オブジェクト指向のほうが良いって結論なわけだよ。

そして、大規模で破綻するのはオブジェクト指向じゃなくても同じこと
0175デフォルトの名無しさん
垢版 |
2018/09/23(日) 23:28:46.55ID:cRG95Xcq
バカに限って抽象化とかいって
サルみたいにうれしがって継承するからな

破綻はそこから始まる

しばらくたつと
データ受け渡しするために
無秩序に相互参照しはじめる

こうなったら終わりの始まり
0176デフォルトの名無しさん
垢版 |
2018/09/23(日) 23:33:26.91ID:N8r2Gw6d
同じものを作る時、オブジェクト指向はオブジェク手と指向破綻をしやすいが
オブジェクト指向じゃないものを使うと、オブジェクト指向じゃない破綻をする
って言ってるだけ。

オブジェクト指向だと大規模なものを作れる。
オブジェクト指向じゃないと大規模なものは作れない
0177デフォルトの名無しさん
垢版 |
2018/09/24(月) 00:03:50.44ID:+ob6DU4m
オブジェクト指向じゃなくしたから
大規模なシステムを作れるようになった
って話はあまり聞かない
0179デフォルトの名無しさん
垢版 |
2018/09/24(月) 09:54:20.13ID:dKKNaNpJ
ただモジュール境界を明確にしただけなのをオブジェクト指向って言い張ってるだけだろうな。

「オブジェクト指向じゃないと大規模なものは作れない」
この結論ありきで論法を組み立てるとそうなる。
0180デフォルトの名無しさん
垢版 |
2018/09/24(月) 16:52:34.59ID:JEGqIfby
>>171
そのアカン例えを使うなと

事故が多発しないはずのシステムでそのシステム特有の事故が多発したって話やな
まぁ、その、悪い例えにあえて乗っかるなら自動車で事故りそうだから飛行機に乗ったら墜落事故起こしたって、だからなんだよって言ったらそりゃダメだよってなるような話で

いややっぱアカンやろこの例え、設計を抽象的な部分から見直せ
0181デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:34:58.60ID:jnbiRGGY
まぁオブジェクト指向は「銀の弾丸」じゃないですからね
オブジェクト指向の採用による成功事例は数多く存在する一方で、
オブジェクト指向を採用したにもかかわらず失敗した事例も
少数とはいえ存在するのも事実

たとえば、以下は「一貫性」という設計哲学が無視されてしまったため、
標準ライブラリ設計に失敗した言語の例

 http://mevius.2ch.net/test/read.cgi/tech/1491491123/44-45/
 http://mevius.2ch.net/test/read.cgi/tech/1530664695/527/

スレタイに沿って返すとすれば:
・あらゆる言語においてオブジェクト指向ってクソじゃね?
  => いいや、そんなことはない
・Pythonにおいてオブジェクト指向ってクソじゃね?
  => たしかに、Pythonではクソかもしれない
0182デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:36:05.95ID:csv6kfNU
>>180
とりあえずお前が馬鹿だっていうのはわかった

大規模なものはどちらにしろ問題が発生する。
オブジェクト指向的問題か
非オブジェクト指向的問題かの
どちらかだ。

オブジェクト指向を使わなかったら
今度は非オブジェクト指向問題が発生するだろ
0183デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:37:21.47ID:csv6kfNU
>>181
Pythonで大規模アプリ作って失敗したら
Python的問題が発生したということさ
C言語で失敗したらC言語的問題が発生したということさ
0184デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:42:13.65ID:csv6kfNU
仮にオブジェクト指向設計を採用せずに
構造化設計を採用したとしよう。
大規模プログラムで密結合になってると失敗する
そうすると構造化設計特有の問題が発生したということで
それはオブジェクト指向よりもリカバリーが大変
0186デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:43:48.46ID:JEGqIfby
>>182
んなもん当たり前だろ別のやり方すれば別の問題があるに決まってやろ
そんな何にでも通ずる一般論じゃないの

オブジェクト指向がそれ専用なのに逆効果だから色々言ってるの
これは何にでも通ずるフラットな一般論じゃないぞ?何故ならオブジェクト指向はそれ専用なのに逆効果だからな、いわばイレギュラーで根本的な問題
0187デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:44:29.97ID:csv6kfNU
そう。ただの言葉遊びしてるだけだからどうでもいいこと
結局は構造化設計を選んで失敗したから
構造化設計に問題があると言ってるだけなんだから
自分の非を認めたくないからそういことをしてる
あ、オブジェクト指向が使えないんだっけか?w
0189デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:46:46.24ID:csv6kfNU
構造化設計は大規模に向かないのである

構造化設計で大規模をやると
失敗する確率が大幅に上がる
構造化設計+大規模でなんども経験している

そしてオブジェクト指向で設計すると
失敗する確率は大幅に下がるわけだが
それでも失敗してしまったら文句を言おう

オブジェクト指向が問題だったんだー!
0191デフォルトの名無しさん
垢版 |
2018/09/24(月) 18:55:45.99ID:JEGqIfby
>>189
おっ?そうだなオブジェクト指向が問題が問題だったんだ。なんだかんだ同意見やったんやな
0192デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:07:39.30ID:jnbiRGGY
>>189
>そしてオブジェクト指向で設計すると
>失敗する確率は大幅に下がるわけだが

ここは同意しますけど、

>それでも失敗してしまったら文句を言おう
>
>オブジェクト指向が問題だったんだー!

勘弁してください
数ある言語の中でも失敗してるのはPythonだけなんですから(>>181)、
失敗をオブジェクト指向のせいにしようとしても
それに納得するのはPython信者だけですよ

>>183でもご自分で「Python的問題」と語っていますから、矛盾してます
0193デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:08:50.83ID:csv6kfNU
>>190
> そらー最初からやな。そのため”だけ”やしな

そのためって、オブジェクト指向は大規模のときに使うってこと?

ってことは、大規模で問題が起きたら、
それはオブジェクト指向が原因ではないってことだね

だって、単に大規模だからオブジェクト指向を使ったってだけで
大規模で失敗するのは構造化であっても同じだから

>>191
皮肉もわからんのかーwww
0194デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:13:55.57ID:csv6kfNU
まとめ

構造化・・・大規模に適していない
オブジェクト指向・・・大規模に適している

構造化で小規模・・・失敗しにくい(所詮小規模なので)
オブジェクト指向で小規模・・・失敗しにくい(小規模に使えないとは誰も言ってない)

構造化で大規模・・・適していないので失敗しやすい
オブジェクト指向で大規模・・・適しているので失敗しにくい


構造化で大規模で失敗・・・失敗して当然。構造化に問題があった
オブジェクト指向で大規模で失敗・・・適した道具を使っても失敗した
                  使ってるやつの能力に問題がある
                  責任転嫁としてオブジェクト指向使ったから失敗したんやーと叫ぶw
0195デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:14:23.90ID:Kxio7RVg
Cで書かれたOSはくさるほどある
C++で書かれたOSなんかあんの
0196デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:18:02.09ID:JEGqIfby
>>192
もう謎のテンション上げで冷静な会話無理やろ、
1レス目の冷静そうな語り口調急にが帰ってきたらそれはそれでキモイけど、、
0197デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:21:50.21ID:Kxio7RVg
超大規模なMS WindowsもCで書かれてる
0198デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:21:52.45ID:csv6kfNU
>>196
お前の会話が非論理的だからしょうがない。

オブジェクト指向に問題があったんじゃなくて
大規模で密結合にしたから失敗があっただけだろ?
構造化であっても密結合にしたら失敗するんだから

で、構造化使って密結合にして失敗したら構造化のせいにせずに
オブジェクト指向を使って密結合にして失敗したら
オブジェクト指向のせいにしてるんだろ?
0199デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:23:43.41ID:csv6kfNU
どちらにしろ
構造化よりもオブジェクト指向のほうが大規模に強いのは変わらん

オブジェクト指向が大規模のために作られたと言っても
小規模で使えないことにもならない
実際に小規模でも使える

オブジェクト指向で失敗するようなら構造化でも失敗する。
能力不足が原因だからな。

で、能力不足を認めたくないから、
オブジェクト指向のせいにしてるんだろ?
0201デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:24:42.73ID:Kxio7RVg
だいたいわかる

ウンコスクリプトしか使えないような低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
0202デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:26:39.65ID:csv6kfNU
馬鹿「オブジェクト指向で失敗したら、オブジェクト指向特有の・・・」

じゃあ、構造化で失敗したら構造化特有のやり方が原因なんやな?

馬鹿「ぐぬぬ」

↑イマココ
0203デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:27:16.94ID:Kxio7RVg
で、ウンコスクリプトで
山盛りのウンコをつくる

rubyとpython作ってるような
ウンコスクリプター
0204デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:30:25.06ID:Kxio7RVg
コイツラの場合
ウンコスクリプトフレームワーク()使っても
破たんさせるほどの特殊能力がある

だいたいこういうの使ってるヤツラは
そういうヤツラだ
0205デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:34:16.94ID:JEGqIfby
>>198
皮肉もわからんのかーwwwとか言うやつが急に非論理的だ、とか笑わせに来てんのか貴様は

なんだろうなお前の言い分は都合が悪いと全部一般論にして逃げてる感あるな、大規模なモノが破綻するのはオブジェクト指向に限らずみんな一緒とか。
それを言うならオブジェクト指向使わず手続き型で組んでも破綻しないように組めばいいじゃんってなるんだよな。
その先が見えないわけよな。もはや何の為にオブジェクト指向使ってるんという
0207デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:40:51.50ID:Kxio7RVg
ノータリン言語の開発現場には
ノータリンが集まる

コレは宿命
0208デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:42:38.68ID:JEGqIfby
>>207
上でな、オブジェクト指向は壊れると言ったら壊れないように作ればいいという身も蓋も事を言われたんや
言語はそういう人のために作らないといけないかもしれん
0209デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:45:46.24ID:BNNY8GPf
いつまで自演しとんねん
0210デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:47:43.48ID:csv6kfNU
>>208
当たり前だろ

どんなものでも壊れるというのは大前提
どれだけ壊れにくいか?という壊れにくさの話をしてるのに、

お前は「オブジェクト指向は銀の弾丸でなければならないが
銀の弾丸でないことが判明したらどうする?」と言ってるだけだろ?

誰もオブジェクト指向が銀の弾丸なんていってない
だが強力な武器なんだよ。
0211デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:48:10.66ID:dKKNaNpJ
とりあえずオブジェクト指向で作るってことがなんなのかから判別しようか。
例えばlinux kernelはオブジェクト指向でバリバリ作ってると思われてんのかね?
0212デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:49:06.45ID:Kxio7RVg
ハードが壊れるのと
低学歴知恵遅れのオツムが壊れてるのは
別問題
0213デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:50:21.60ID:BNNY8GPf
まだ自演を続けんのかよ
いい加減にしろ
0214デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:57:16.26ID:Kxio7RVg
システムが壊れてるワケじゃない
壊れてるのは低学歴知恵遅れのオツム

オツムが壊れてないヤツが作れば
壊れたシステムはできあがらない

オブジェクト指向はキチガイに刃物

ノータリンにオブジェクト指向を促すこと自体が常軌を逸してる
ノータリンがオブジェクト指向で開発しようとすること自体が銃刀法違反並の重罪
0215デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:01:34.39ID:H/ciA4Rj
オブジェクト指向って何ですか?
C言語ではオブジェクト指向に従ってプログラムを作ることはできないのですか?
0216デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:07:21.20ID:Kxio7RVg
X11やMS Windowsもオブジェクト指向で設計されてる
ただ、低学歴知恵遅れでは、C言語でそれを実現することはできない

そしてそれを簡単に実現できる言語を使うと
なにが便利であるか核心的な部分が理解できずに使って
別のろくでもない問題をおこすわけ
0217デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:10:52.64ID:Kxio7RVg
ハンドラやコンテキストつかって
オブジェクトを操作するのはまさしくオブジェクト指向の便利な部分だからな

UNIXのi/oなんかもハードウェアがうまく抽象化されてる
ファイルディスクリプタ使って簡単に読み書きができるからな
0219デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:17:40.60ID:csv6kfNU
>>215
> C言語ではオブジェクト指向に従ってプログラムを作ることはできないのですか?
大変だけどできるよ

作りやすいかどうか、失敗しやすいかどうかだから
0220デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:22:15.20ID:csv6kfNU
結局の所、小規模なものはオブジェクト指向使っても失敗しない
大規模なものは、オブジェクト指向を使うと失敗しにくくなる
って所が重要なんじゃないですかね?


失敗したときにそれがオブジェクト指向的な原因か
構造化的な原因か、なんてことよりよりも
0221デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:30:44.15ID:Kxio7RVg
低学歴知恵遅れにオブジェクト指向はまずムリ
日本では、ITドカタは低学歴底辺がなる職業だからな

だいたい程度がしれたヤツラが群がってくる
この板みれば分かるとおり
0222デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:31:28.52ID:e4NBE4Fp
う〜ん、ここ見てるとオブジェクト指向はクソと言いたくなるね。

何らかの問題を解決したい、もっと便利で問題の発生しない手法は無いだろうかというような要望があって、
それを実現するためにオブジェクト指向なるものが発明されたとすれば、
同じ考えでオブジェクト指向を採用するのも良いだろうけど、
最初からオブジェクト指向ありきはダメなんじゃないの?

なんかさ、なんでも右ならえで無理に採用してるような気がするんだよなあ。
オブジェクト指向に限った話じゃ無いけど、特に日本では。
0223デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:32:33.20ID:csv6kfNU
>>222
お前の書き込みは、オブジェクト指向がクソだということが目的になっていて、
その他の何かが、オブジェクト指向よりも優れているという話になってない
0224デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:35:08.38ID:csv6kfNU
>>221
優れた人が優れた道具を使う

それに対抗するために、もっと優れた道具ができたとしても
それだって優れた人が使ったほうがもっと効果が高いわけで

優れてない人が、優れてない道具を使って勝つには
人海戦術しかないんだよね
0225デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:38:06.78ID:Kxio7RVg
ぜんぜん分かってないわ
刃物は道具でもあるし
人を殺すこともできる
0226デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:38:44.95ID:Kxio7RVg
あやまった使い方をすれば
簡単にケガをする
0227デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:42:45.07ID:e4NBE4Fp
>>223
いや、オブジェクト指向をクソだなんて思ってないよ。
むしろ好きな方なんで。

でも、肯定派の人ってありきでしょ。
それは違うかなって。
0228デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:50:20.68ID:Kxio7RVg
教育コストはものすごいかかるが
手続き型言語でオブジェクト指向をみっちり体験してから
オブジェクト指向の教育に移行したほうがいい

この手順踏んだほうが間違いが少ない

そうでないと
ID:csv6kfNU ← コイツ
みたいに頭悪いのが大量に量産され続ける
0229デフォルトの名無しさん
垢版 |
2018/09/24(月) 21:03:48.14ID:u7Hms91/
>>228
バカにコストかけて教育するのもなんだかなー
バカとハサミは使いよう、というけれど、なかなか良い使いようが見つからんね。
0230デフォルトの名無しさん
垢版 |
2018/09/24(月) 21:19:43.39ID:AdxflhqI
オブジェクト指向のメリットって何?
この問いに今だかつて一人も答えてくれた事は無い
どっか他の文献指差して丸投げとか
逃げと食い下がりを駆使して結局答えないとか
0231デフォルトの名無しさん
垢版 |
2018/09/24(月) 21:47:42.62ID:oYzwCf5A
>>230
困ったことにどっかの文献ですら
ちゃんと理詰めで仕組みを解説してるものは皆無
完全なオカルトテクノロジー
0233デフォルトの名無しさん
垢版 |
2018/09/24(月) 23:07:18.05ID:Kxio7RVg
転ばぬ先の杖
STOP オブジェクト指向
0234デフォルトの名無しさん
垢版 |
2018/09/24(月) 23:31:05.04ID:JEGqIfby
>>230
いびつな答え方するんだがそりゃ間違いなくパーツや責任関係の切り分けからーの作りやすくなるってことやろな
俺は嘘だと思う
0235デフォルトの名無しさん
垢版 |
2018/09/25(火) 08:11:13.05ID:ffbXNZny
色んなサイトでオブジェクト指向の説明してるけど説明が下手すぎねえか?
設計図とか野菜や動物に例えるとか理解してんのかと思うわ
雛形作ってからそこに入力規格を統一したデータをぶち込むって例えでいいだろ
0237デフォルトの名無しさん
垢版 |
2018/09/25(火) 08:48:25.26ID:Eix7hoc3
オブジェクト指向とは雛形作ってそこに入力規格統一したデータをぶち込むってことだぞ
0240デフォルトの名無しさん
垢版 |
2018/09/25(火) 12:27:26.16ID:6l+mHu1d
ぶち込んだ経験ないやつには難しいやろな
0241デフォルトの名無しさん
垢版 |
2018/09/25(火) 12:30:49.14ID:Ti214GxU
オブジェクト指向とは関数仕様があってそこに仕様通りの引数渡すことなのね。
すごい、ようやく俺でもオブジェクト指向が理解できた!
0242デフォルトの名無しさん
垢版 |
2018/09/25(火) 15:04:59.78ID:GnoTTlW7
>>215
>オブジェクト指向って何ですか?
オブジェクトを中心に組むこと
クラスベースの言語ならクラス
Cは関数で組むけどC#はクラスで組む

>C言語では
できる
けどCは向いてない
C#とかJavaとか
最初からOOをサポートしてる言語の方がやりやすい
0247デフォルトの名無しさん
垢版 |
2018/09/25(火) 18:58:18.78ID:bhDxFTjN
そうでなければむしろ最強レベルの苦痛を伴う変更になるんだよね?
無意味じゃない?
0250デフォルトの名無しさん
垢版 |
2018/09/25(火) 19:10:47.09ID:bhDxFTjN
例えばさヘッダーと内容と記述者と更新日時がある条件を満たしたときに
ヘッダーにある文字列を入れて欲しいと

でもヘッダーは他の全てを知らないので関連するオブジェクト全てに手を入れなければならないと

こういうの想像できないの?
レベル低くね?
0252デフォルトの名無しさん
垢版 |
2018/09/25(火) 19:22:34.13ID:GnoTTlW7
>>250
>ヘッダーと内容と記述者と更新日時
たとえばブログのエントリのように
それらの情報に関連性があるのであれば
ひとつのオブジェクト(クラス)にする

そのオブジェクトは当然関連するデータを知っているので
変更もスムーズにできる
一方オブジェクト指向でない場合には
それらのデータがバラバラになっているから変更しにくい

この場合は疎結合というより高凝集の側面が出ている
オブジェクト指向で正しく組むと高凝集疎結合になる
0253デフォルトの名無しさん
垢版 |
2018/09/25(火) 19:28:22.29ID:bhDxFTjN
>>252
って変更を各オブジェクトに入れないとできないよね?
c言語だと普通に処理書くだけやで
0254デフォルトの名無しさん
垢版 |
2018/09/25(火) 19:40:26.69ID:du+nhKJd
オブジェクト指向は設計思想として好きだけど
オブジェクト思考的パラドックスに陥っている気がする
0255デフォルトの名無しさん
垢版 |
2018/09/25(火) 19:54:06.59ID:o8KZiItl
これだけ前もって言っといた方がええやろ
データとメソッドをオブジェクトで綺麗にまとめることを自慢する輩はオブジェクト指向ですらないと
0256デフォルトの名無しさん
垢版 |
2018/09/25(火) 20:13:12.32ID:BMMTvniR
データとメソッドをオブジェクトで綺麗にまとめられるのは事実
別に自慢はしてない

オブジェクト指向を勘違いしている人はオブジェクト指向を、
不可能なことを可能にする技術だと勘違いしておいて
不可能なことを可能にしてないと(自分の勘違いを)批判してる

オブジェクト指向は従来のやり方でも可能ではあるが
大変なことをより分かりやすく簡単に実現するための技術
0257デフォルトの名無しさん
垢版 |
2018/09/25(火) 20:53:51.26ID:GnoTTlW7
>>253
>c言語だと普通に処理書くだけ
大規模になると「普通に」って言っても
関連のある変数を探すのが大変になってくる
だからオブジェクト指向の方が変更しやすい
0258デフォルトの名無しさん
垢版 |
2018/09/25(火) 21:06:16.95ID:BMMTvniR
オブジェクト指向は大規模開発のために作られた
だが小規模開発で使用しても問題ない
0262デフォルトの名無しさん
垢版 |
2018/09/25(火) 22:46:19.22ID:FLKmzsJJ
>>256
> オブジェクト指向を勘違いしている人はオブジェクト指向を、
> 不可能なことを可能にする技術だと勘違いしておいて
> 不可能なことを可能にしてないと(自分の勘違いを)批判してる

こういう意見おなかいっぱい
「OOPのメリットはXXXです」
以外の文章はもういい
0263デフォルトの名無しさん
垢版 |
2018/09/25(火) 22:57:23.11ID:BRabQ1iT
流れを追っていくとOOPのメリットはリファクタリングにかかるコストが安いって読めるけど
これじゃあダメなのか?
0264デフォルトの名無しさん
垢版 |
2018/09/26(水) 00:31:24.02ID:bs5egenN
オブジェクト指向のデメリットが単純にコードの段取りや量が増えて鈍臭いんだから
メリットは必然的にその分作りやすくなるって事に消去法でなるやろ

まあ嘘である
0266デフォルトの名無しさん
垢版 |
2018/09/26(水) 04:39:27.51ID:8XNtqdsN
セッター、ゲッター、プロパティを使わない。
これはカプセル化を強いる抜本的なアプローチだ。
これはDependency Injectionアプローチの実装も必要になるし、
"言え、訊くな"という格言の遵守も必要となる。

おれの居るところ真逆のプロジェクトだ使いまくりでワロタ
0267デフォルトの名無しさん
垢版 |
2018/09/26(水) 06:02:50.00ID:Jt0rVGX1
セッター、ゲッター、プロパティを使うなってのはクラスは全て操作だけで実装しろってことなのかな?
0268デフォルトの名無しさん
垢版 |
2018/09/26(水) 08:59:38.32ID:cdctReAr
>267
イメージ的にはそうだと思う
ただ操作対象を設定する必要は有るから全く使わないという事では無い
ゲッターセッターの一番の問題点は
それを不用意に使ってしまうとグローバル変数をただ面倒な手順を増やして使うだけになってしまい易いから
不用意に使わないようにする
という訓練の為に
使うな
と言っているのだろう
あくまでオブジェクト指向プログラミングが全くと言って出来ない人向けなんだろう
というよりそう書いて有るけど
オブジェクト指向プログラミングの最大の問題点は
標準教範が存在していない事なんだよなぁ
そのギプスなんたらは教範の一部に成れる可能性が有るかもしれない
0270デフォルトの名無しさん
垢版 |
2018/09/26(水) 22:10:14.19ID:Ye0laooE
メタプログラミングが不要な用途だけなら、オブジェクト指向知らなくても組める。
まあいつまでももそれだと、大規模システムの仕事は無理だが。
0271デフォルトの名無しさん
垢版 |
2018/09/26(水) 22:27:48.39ID:xMAwDWlb
ゲッターセッターの悪いのは
インタフェースありきの設計の中に
実装上の変数がうっすら見えてきちゃうこと
そんなもんを前提に設計してはならない
実装に対してプログラミングするのではなく
インタフェースに対してプログラミングするのだ

同じ理由で、それを書き易くしたC#のプロパティみたいなもんは糞
池沼の要望に迎合したような糞
0272デフォルトの名無しさん
垢版 |
2018/09/26(水) 22:42:34.06ID:yzZF1GUc
>>271
メソッドとプロパティ (setter, getter) は本質的に同じものだよ

オブジェクトのメソッドの大半はオブジェクトの状態を取得または変化させる
(状態を参照しないならそのオブジェクトに持たせる必要はないわけで)

オブジェクトのメソッドのうち、一つの変数を変更するものがsetterで
一つの変数を取得するものがgetter・・・になってることが多いが別にそうする必要はない。

例えば内部変数が配列で要素の0番目を読み書きするsetter/getter
要素の1番目を読み書きするsetter/getterを作っても良い
もちろんsetter/getterではなくメソッドでやっても良い
どちらでも同じことができる。

言い換えると、システムを作るのに、メソッドだけでも実現できるし
プロパティ (setter/getter) だけでも実現できるということ

メソッドとプロパティ (setter/getter) の違いは
UMLのクラス図を書いたことがあればわかる。
UMLのクラス図には操作と属性の両方が存在するんだよ。
なぜか? それは人間の思考を反映させた結果だから
実装段階の思考ではなくて設計段階の思考ですでに操作と属性が別れてる。

メソッドとプロパティは本質的には同じものでコンピュータから
見れば同じものとして扱えるが、我々は人間なんだ。

人間がそれは操作、それは属性って分類して考えてるから、
それをコードに反映させられる記述能力の高さを求めた結果
メソッドとプロパティができたんだよ

しかたないね。人間だもの
0273デフォルトの名無しさん
垢版 |
2018/09/26(水) 23:05:14.04ID:xMAwDWlb
> メソッドとプロパティ (setter, getter) は本質的に同じものだよ
> (以下ポエム略)

??
なぜそれを俺にレスしたのか不明
0274デフォルトの名無しさん
垢版 |
2018/09/26(水) 23:25:48.93ID:+un+mAjX
むしろおまえ以外の誰にレスしろというのか不明w
0275デフォルトの名無しさん
垢版 |
2018/09/27(木) 00:13:38.88ID:oacq4Bqj
だが実際にはクラスを半グローバル変数の格納構造体みたいに使って
setter/getterでアクセスして外側から中の実装を多角的に覗くような記述をし
そこに更に継承を使って依存でスパゲティー状態になっちゃうから
ソフトウエアの表現方法としての有効性に疑問を持ち始めた人が現れてきたんじゃないかな
0277デフォルトの名無しさん
垢版 |
2018/09/27(木) 00:35:00.12ID:pq96CSzd
刺身にタンポポのせてるヤツが
ちゃんとキリキリ働いてるか
その働きぶりをたまに覗きたいことはある

こっちからなにをするということはない
0278デフォルトの名無しさん
垢版 |
2018/09/27(木) 00:42:24.43ID:oacq4Bqj
>>276
確かに悪い使い方が都市伝説みたいに普及しすぎて、ろくろくまともな開発したことの
無い輩まで頓珍漢なオレオレオブジェクト指向論を吹聴するにいたったブームには参ったが、、

使い方の問題のみならず、そういう表しにくい構造がソフトウエアそのものにあるじゃないかと思う。
非常に表しにくい場合が少なからずあり、小さいサンプルコードの断片で説かれるOOの美しいはずの
メリットは実践で適用の場が乏しいということ
0279デフォルトの名無しさん
垢版 |
2018/09/27(木) 00:54:06.21ID:oacq4Bqj
>>260
このギプスのサイトに書いてある方法は
すごく制約した方法であり、
いろいろ大変かも知れないけど
守れば副作用の少ないモジュラリティーと
深すぎない階層設計が可能になるかもしれないのはよく分かる。
でも、守るためには強い規律とメンバのスキルと
工数のゆとりが必要だと思った。
つまり、現実にはなかなか難しい話だろうなと。
0280デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:41:53.45ID:DSKWvsHE
いや、単純にオブジェクト指向なんてやったって地獄に落ちるだけ
クラスっていうゴミ箱に突っ込んで臭いものに蓋してる状態じゃいつまでたってもバグなんて取れないんだよ

単純にプログラムを

入力→処理→出力

という繰り返しの塊にしなければならない
メソッドを呼ぶたびに状態が変化
するようなもん誰も管理できない
0281デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:45:45.45ID:oacq4Bqj
オブジェクト指向の解釈が多彩なので、あれだけど
オブジェクトscopeは有効な場面は多々あるんだよな
closureとか部分適用とか
0282デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:46:43.86ID:pq96CSzd
オブジェクト指向でも
詳細化したらデータフロー図に落とせる設計でないと
お話にならない
0283デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:47:55.67ID:DSKWvsHE
状態を持ってしまうのがまずい
いや、持つだけなら好きにすればいい
内包してしまうのがまずいと言うのが正確か?
0284デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:50:10.34ID:pq96CSzd
以前(>>161)にも書いたとおり
コレ以外方法はない

この原則さえ守れば破綻は回避できる
大体の大きな問題は起きなくなる

 @公開インタフェースは可能な限り少なくする
 A原則として、よほど適切な理由がないかぎり、可能な限り継承よりコンポジション使う
 B下位階層(ここでの階層は>>101>>106の意味)のクラスが上位階層のクラスのインターフェースに絶対に直接アクセスしてはいけない
  ※ 当然、下位クラスが上位クラスのインターフェースを直接呼びだすようなリフレクションは禁止
 C下位階層のインスタンスが非同期で上位のインスタンスに処理を依頼したい状況が発生した場合(可能な限りこんな状況が起きる設計は当然避けるべき)、
  処理のやりとりはメッセージキューで行い、可能な限り少ない回数で簡潔なメッセージを用いて簡単に完結できるようにする、複雑なメッセージシーケンスも禁止
  (コレは並立するインスタンス間でも同じ)
 D同じ階層に並立するインスタンスをムダに乱立させるのは当然禁止

コンポジションとメッセージシーケンス、クラスの階層(ここでの階層は>>101>>106の意味)、インスタンスの生存期間さえ
ドキュメントで適切におさえることができる状態になっていれば
問題やエンハンスが発生しても持続可能対応できる
0285デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:52:11.89ID:DSKWvsHE
単純にメソッドの成功条件に内部で持たれているメンバの見えない奴が関わってたりすると最悪
プログラムのどこでそいつが変更されるのかわからん

こういう問題が起きるたびに途方も無い労力を支払うのが単純に無駄
オブジェクト指向を考えた奴はわざと技術者の仕事を作るためにこれを考えたのではないか?
というぐらい一切メリットがない
0286デフォルトの名無しさん
垢版 |
2018/09/27(木) 01:54:14.64ID:DSKWvsHE
>>284
だからな
お行儀のよいクラス作るほど
その実開発者は地獄を見るんだよ
オブジェクト指向がクソな原因は
簡単で内部に状態を保持することなんだよ
0288デフォルトの名無しさん
垢版 |
2018/09/27(木) 02:02:11.90ID:oacq4Bqj
単純な入れ子構造になっているか分かりにくい
ランダムに依存しうるネットワーク構造は管理しにくい
しかもノードインスタンスごとに状態を持っていたり
何の×ゲームだよ
0289デフォルトの名無しさん
垢版 |
2018/09/27(木) 02:41:53.03ID:y/NaeiDF
割と真面目にオブジェクト指向は将来的に絶対破滅するという想定で作るといい気がしてきた
上で出てる上手くいく方法とかは「延命措置」とみなして
そう考えたら何かすっきりする
0290デフォルトの名無しさん
垢版 |
2018/09/27(木) 02:47:01.34ID:Fk1HpByz
そう。1000年後には絶対破滅するという想定で、
今の仕事を全力でやればいい。
今必要なら、必要ってことさ、AHAHAHAHA〜
0293デフォルトの名無しさん
垢版 |
2018/09/27(木) 07:40:33.24ID:zZL/tnLy
>>283
公開されてるメソッドの呼ばれ方による状態繊維が簡易なレベルならば問題ない
といったところ。
通信ソケットの実装みたいなものはどうしても状態を持つのは仕方ないけど、
でもそれもできる限り小さく持つってのが最近の感覚じゃないかね。

内部に巨大で複雑なオブジェクトをガツガツ作る様なメソッドがある場合は
なんか問題ある気がする。
0294デフォルトの名無しさん
垢版 |
2018/09/27(木) 08:19:49.02ID:emgF57xx
状態を持つなって言ってるのは関数型の考えから?
常にオブジェクト指向言語の方がメジャーなんだが
0295デフォルトの名無しさん
垢版 |
2018/09/27(木) 08:20:57.92ID:BciEc+9A
昔はgetter/setterを使うべきと言ってたような気がする。
でもその時にそれに疑問を持っていた人達もいたと思うんだ。

結局、クソなのはこういう手法が良いですよという言を真に受けて無理に採用する所じゃね?
このなんとかキブスが自分にぴったりくるなら採用すれば良いし、おかしいと思うなら採用しなくて良い。
オブジェクト指向も一緒でぴったり来てねえのに採用するのは良くないと思う。
0296デフォルトの名無しさん
垢版 |
2018/09/27(木) 08:24:56.86ID:emgF57xx
グローバル変数をそのまま使うよりは
ゲッターセッターをかぶせた方がマシだけど
使わないにこしたことはないってこと
0297デフォルトの名無しさん
垢版 |
2018/09/27(木) 09:26:17.13ID:DSKWvsHE
>>294
状態を持つと単純にテストがしにくい

あるクラスにprivateでドキュメントにも記述のないメンバ変数が10個あって
その内包するクラスにもメンバが10個あって・・・なんてプログラムだと
そのクラスの持つ状態は10*10*・・・
みたいに増えていく
完璧にプログラムを制御しようとすると
その全てを把握しなければならない
実際にはそれは不可能なのでオブジェクト指向的に組んだプログラムはそもそもバグっている
0298デフォルトの名無しさん
垢版 |
2018/09/27(木) 09:32:35.44ID:wRik+4En
>>295
あんたは使うべきの意味を理解してないよ
使うべきっていうのは今も一緒。

まずクラスのpublicフィールドを直接読み書きしたらいけないというルールがある。
そしてもう一つ、クラスのインターフェースを頻繁に変更してはいけないというルールがある

この2つのルールにより、publicフィールドを直接読み書きしていて、あとから読み書きに
何かしらの制限を書けたくなったときにgetter/setterに置き換えたらインターフェースが変わってしまう。
例えば obj.foo だったものを obj.getFoo() に書き換えないといけない
だから常にgetter/setterを使いましょうと言われていた

だけど今はプロパティを備えた言語ができた。
プロパティを備えた言語であれば、クラスのpublicフィールドというインターフェースを変えることなく
getter/setterにできるためあえて禁止する理由がなくなった
(obj.foo = 1 とかいて obj.foo に代入してるように見えて実は関数呼び出しになってる)

今はインターフェース(名前)を変えることなく、フィールドからgetter/setterに変更できるので
言われてないだけ。でもこれはプロパティを備えた言語に限った話
0299デフォルトの名無しさん
垢版 |
2018/09/27(木) 09:32:48.24ID:DSKWvsHE
んで思うのが
どうもアメリカらしくないなと
あれだけメリットとデメリットと数値化にこだわる国がなんでこんな丼勘定やねんと

オブジェクト指向なんて出回った頃にはもうすでに向こうではプログラミングは
無意味な公共事業の一環になっていたのではないか?
そしてそれにはもはや意味がなくて
できるだけ時間がかかる方法だけが採用されたと
0300デフォルトの名無しさん
垢版 |
2018/09/27(木) 09:34:56.57ID:wRik+4En
>>297
オブジェクトが状態を持つとテストがしにくいからといって
オブジェクトに状態を持たせなかったとしても、
状態を持ってるアプリケーションから状態を消し去ることは不可能なわけで
どこかに状態が存在するので、結局その部分のテストはしにくくなるよ
単にテストしにくい場所が変わるだけの話
0302デフォルトの名無しさん
垢版 |
2018/09/27(木) 09:45:20.17ID:DSKWvsHE
>>300
まず、それが見えているかどうかが問題
引数から渡す形ならドキュメントに記述を強制できる
さらに同じ引数で実行したらなるべく同じ結果が返って来ることも保証できる
これで気をつけるのはファイルアクセスやDBアクセス、日時、通信などに限定できる
オブジェクト指向は全てのクラスが失敗作であると言える
0303デフォルトの名無しさん
垢版 |
2018/09/27(木) 09:59:43.55ID:wRik+4En
>>302
いや、どんな言語で作ろうが、
アドベンチャーのフラグ管理は大変だよ
関数型言語なんか、実装が不可能なレベル
0305デフォルトの名無しさん
垢版 |
2018/09/27(木) 11:05:48.54ID:fvjtmZUM
実は倍精度浮動小数点数のインスタンス変数があったら2^64個の状態があるって話だ
もしくは10x10x10と10+10+10がほぼ一緒の値という主張だよ
0306デフォルトの名無しさん
垢版 |
2018/09/27(木) 11:44:32.68ID:emgF57xx
>>297
そんなことない

本格的なオブジェクト指向では
>>260みたいに小さなオブジェクト数にして
状態数も減らして単体テストしやすくする

むしろ関数型で複雑な状態遷移を実装するのは難しい
現にゲーム制作ではぜんぜん関数型が流行ってないからな
0308デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:15:48.09ID:zzHSqWZa
>>306
何年か前にOOPのそのトレーニングやったけど
今にして思えばおかしなことをしてたなって思う

素直にGO使ったほうがいいよ
今は制約を気にせず非常に楽にコードが書ける
それでいてOOPのころの糞コードからかなり離れている
GOのおかげ
0310デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:19:15.86ID:99b9Jx0M
状態を持たないオブジェクトwww
もはやオブジェクトちゃうやんw何の受け売りやそれw
0311デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:24:21.66ID:nvNAA/EB
アクセスパターンを限定化する
これを理解出来ないなら
オブジェクト思考プログラミングはし無い方が良い
どういう訳か
凄まじい自信の有る人程解っていない
というのがこの界隈
0312デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:31:34.84ID:zzHSqWZa
OOPで良いとされているが一番の間違いは
単機能の小さなクラスを沢山作ること

これはクラス数の爆発を産んでるので一番の害悪

例えば特定のファイルを読むためのクラス
そしてそのインターフェイスとDI用のクラスとテストケース
本当にこれが無駄

内部の状態に依存せず単機能でいいなら関数でつくればいいと気が付いた
0313デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:37:21.63ID:emgF57xx
>>310
不変オブジェクトがあっても別にいい

>>312
>単機能の小さなクラスを沢山作ること
小さなクラスをたくさん作るからこそ変更しやすくなる

クラスの数を大きくして数を減らしてしまうと
作るときは一見楽に見えても後で変更コストが上がる
0314デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:43:37.80ID:tnNln14X
>>313
それはOOP自体が悪いからそう見えるだけ
クラス数の爆発のほうが本当の害悪

上のトレーニングもクラスをちいさくする良い理由の一つとして
エディタの一画面にはいるから…

クラスが一ファイル内にないといけないその言語の制約だろう
パッケージ内に在ればいい言語に乗り換えよう
0315デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:47:39.73ID:tnNln14X
クラスが小さいと困ることがある
インスタンス変数を2つに絞るのは愚か
確実にクラス設計が困難になる

変数をどこが持つべきかを設計しないといけない
そしてそれが間違っていた場合大規模な再設計とコーディングが必要になる

中程度のクラスにある程度必要とされる変数が入れておく方が開発工数は減る
0317デフォルトの名無しさん
垢版 |
2018/09/27(木) 12:53:47.09ID:99b9Jx0M
>>313
不変ゆうんは状態を持つから不変なんやぞw
受け売りでイキるのやめときw
0319デフォルトの名無しさん
垢版 |
2018/09/27(木) 13:18:51.56ID:M9UbUXxK
TCP接続をOOPで書くとして、オブジェクトの外側でTCPの例の状態遷移を気にする必要あるんかいな
0320デフォルトの名無しさん
垢版 |
2018/09/27(木) 14:18:04.82ID:mMx24hKT
不変オブジェクト自体が一つの状態であることは確かだと思うが、語弊がありそうだな。
可換原則的には互換性のある小さなクラスをたくさん作る、が正しいだろうけど、
実際にそれすると、とんでもないバカが現れて瞬時に全壊するのも見たことあるし。
やっぱり一概には言えないと思うわ。
0321デフォルトの名無しさん
垢版 |
2018/09/27(木) 14:21:34.40ID:emgF57xx
>>316
関数でもいい場合はあるが
クラスにするメリットもある

>>317
それは難癖でしかない
再代入しないことによって
状態変化のデメリットが生じないので問題ない
0322デフォルトの名無しさん
垢版 |
2018/09/27(木) 15:03:29.89ID:DSKWvsHE
>>319
気にする必要が無いように組んでもいいし組まなくてもいい
でもテストは全状態に対して行わなくてはならない
現状はおそらくそれをやってる奴が少ないのがまずい
ここではさもやるのが当然とばかりに主張はするがそのテスト方法は提案すら挙げられない雑魚
0323デフォルトの名無しさん
垢版 |
2018/09/27(木) 15:09:59.98ID:wRik+4En
はっきりさせておかないといけないのは
オブジェクト指向と関数型で条件が違う比較をしてるってこと

つまり
「オブジェクト指向で状態を扱う必要がある問題」
VS
「関数型言語で状態を扱わない問題」
という違った問題で比較している


アプリケーションから状態をなくすのは不可能なので
「関数型言語で状態を扱う問題」を解かなければいけないのだが
なぜか状態はすべてなくすことができるんだという間違った前提で
状態がない優しい問題を解いているだけになってる
0324デフォルトの名無しさん
垢版 |
2018/09/27(木) 15:43:16.13ID:emgF57xx
>>323
これはそうだな

状態遷移が複雑なシステムをどう組めばいいか
関数型主義者から具体案を聞いたことがないね
0325デフォルトの名無しさん
垢版 |
2018/09/27(木) 17:55:02.31ID:34EufdvK
おれは関数型主義じゃじゃないけど適切にルール組んでその通りにやればいいだけじゃないか?

関数型はオブジェクト内に状態が隠蔽されてないから
やりやすいだけ
0326デフォルトの名無しさん
垢版 |
2018/09/27(木) 17:57:15.64ID:34EufdvK
Cだと構造体がなければほぼ全部シグネチャーに書きださなければならなかったけど
関数型は関数で組み合わせてあるから楽なんだろうなとは思う
0327デフォルトの名無しさん
垢版 |
2018/09/27(木) 18:00:53.71ID:34EufdvK
オブジェクト指向でもやりようによっては状態の遷移がわかりやすくはかける
fluxとかじゃ状態はイミュータブル
actionを適用したらその都度新しい状態オブジェクトを作ってストアしてる
古い状態は書き換えられずに破棄される
0328デフォルトの名無しさん
垢版 |
2018/09/27(木) 19:04:14.07ID:DZkTxoQs
状態が複雑になる場合もなるべく明示した方が嬉しいよねってのが関数型のスタンス
Haskellは状態を持つ部分をモナド型クラスのインスタンス(=型)にするし、ML系は非数値状態を型に持たせて型検査の形で明示する

個人的には基本関数型で組んで、状態が必要不可欠な問題に対しては意味論的に隠蔽されているのが正しいならprivateでそれ以外はミュータビリティと型で制御が妥当かなと
その後でパフォーマンスが必要ならその部分をミュータブルなクラスベースOOPにする
0330デフォルトの名無しさん
垢版 |
2018/09/27(木) 22:52:16.03ID:ojLVUDGL
オブジェクト指向ってウェブサイトの構築以外でどうやって使うんだ?
phpとかrubyはわかるがjava、c#やらでどういうシステム作れるか教えて
0331デフォルトの名無しさん
垢版 |
2018/09/27(木) 22:55:44.14ID:pq96CSzd
poco使ってc++でwebサーバーの振る舞い自体を組み込みで書く
0332デフォルトの名無しさん
垢版 |
2018/09/27(木) 23:41:51.25ID:emgF57xx
>>330
>オブジェクト指向ってウェブサイトの構築以外でどうやって使う
一般的なアプリケーション作成全般
よほど高速な実行速度が要求されるもの以外
0334デフォルトの名無しさん
垢版 |
2018/09/28(金) 01:09:58.28ID:2dxGIytS
>>324
functionalは状態の管理手法じゃないのになに言ってんだ。
functionalは構造の再帰的分割による細分化やリスト処理の宣言的記述に有効であって
状態は必要なければなるたけ持たないほうが良いのはいろはのイ、セオリーだぞ
そして状態遷移は本当に必要ならオブジェクト指向を流用するのではなく
状態をきちんと管理するんだよ。
それをgetter/setterで要らぬところに状態持ち込んでishaだのhasaだの言ってるから
子供にまで後ろ指差されて笑われるんだよ。
言っとくが別にオレはfunctionalマンセーじゃないぜ。
0335デフォルトの名無しさん
垢版 |
2018/09/28(金) 02:01:07.68ID:HosvZzhg
オブジェクト指向はWebよりjavaとかc#のイメージのが強いな
Webのがメジャーな人もいるのか
0336デフォルトの名無しさん
垢版 |
2018/09/28(金) 02:06:06.17ID:EiOshXgh
>>334
何言ってんの……?

>状態は必要なければなるたけ持たないほうが良い
あのね、ビジネスソフトには状態が必要なの!!

いくら関数型が状態を排除するのが理想だからって
ビジネスを道具の方に合わせることはできない

そんなことも分からないんだから嫌になる
これじゃいつまでたっても関数型が普及しないよな

>状態をきちんと管理する
だからその具体案を聞いたことがないんだって

本当馬鹿じゃないかと思う
0339デフォルトの名無しさん
垢版 |
2018/09/28(金) 08:05:29.06ID:8utkG/Cm
システムの状態とオブジェクトの状態をごちゃまぜにしちゃう無能がおると聞いて
0340デフォルトの名無しさん
垢版 |
2018/09/28(金) 10:00:32.06ID:bPXaydqo
>>338
その「何言ってんの?」は

何を言ってるかわからないという意味じゃなくて
お前は何(馬鹿なこと)を言ってるの?って意味だろ

日本語の時点で
0341デフォルトの名無しさん
垢版 |
2018/09/28(金) 12:17:05.53ID:pLiz6ELv
オブジェクト内部に状態は持たないほうがいいと言うのは当たり前すぐる気がするけどね
0342デフォルトの名無しさん
垢版 |
2018/09/28(金) 12:54:45.76ID:bPXaydqo
>>341

そこは「オブジェクト外部に状態を持ったほうが良い」と言わなきゃだめ
状態をなくせるわけじゃないんだから
0343デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:12:28.51ID:GxtNhjDw
オブジェクト外部に状態持っても、結局そのオブジェクトを包含している上位のオブジェクトがあるので、行き着くところは「アプリケーションオブジェクトの外部に状態を持ったほうが良い」ってならない?
どこでラインを引くかはセンスってことでOK?
0344デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:19:48.03ID:1UhvtMTy
他のオブジェクトの持つ変数を必要とする事自体がおかしい。
必要な引数を渡したら、処理を任せて、必要な値をリターンさえしてもらえればよい。
0345デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:32:05.28ID:bPXaydqo
>>343
そのアプリケーションオブジェクトの外部ってのが
なんのことかわからない。

ファイルに保存のことなのかもしれないが、保存するまでは
総てのデータはアプリケーション内部にあるわけで
結局、仮想的なストレージ(ようするにメモリ)に
保存するしか無いでしょう?
0346デフォルトの名無しさん
垢版 |
2018/09/28(金) 15:21:40.87ID:GxtNhjDw
>>345
そうだよ、俺もそう思うのでアプリの外に状態はあり得ないだろうと。
なのでどこかで線引きをしないといけないんだけど、結局それはセンスという便利かつ曖昧なな言葉で片付けられちゃいそう。
0347デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:23:35.77ID:KV7CiVPs
>>343
ん?それでテストできるならやれば?
実際は制御不能でしょ?
だから駄目だって言ってんの
0348デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:37:56.35ID:++iDCvgk
>>347
んんん?
じゃ、具体的にアプリケーションオブジェクト以下に状態を一切持たなくてどうやって実装するのん?
BrowserでもOfficeでもいいから、一般的なアプリでアプリケーションオブジェクト外部に通信中にファイルオープン済みか否かやなんやらかんやら全ての状態を無理せず実装するエレガントな方法教えて。
一切の状態をアプリに持ってたら駄目だよ。
いくらなんでもこれは反論する自信あるわ。
0349デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:41:30.51ID:++iDCvgk
>>347
分かってると思うけど、今どの画面が表示されてるとか項目の何が選択されてるかも全て状態だからね。
さぁ、エレガントな説明してみて。
0350デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:57:00.64ID:/ke/2lv3
いつまでずれた馬鹿な話してんの?

例えば犬クラスがあってポチオブジェクトがあった
そいつに餌を毎日おなじ餌をあげてたけど(戻り値 完食)
ある日半分しか食べなかった(戻り値 半分)
後でわかったけどポチは病気だった
かわいそうなポチ

犬クラス内部に状態があって同じメソッドを使ってても動作変わってるのが厄介だと言ってるんだろ
それがわからないのかなあ?
0351デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:01:55.81ID:/ke/2lv3
ポチはたまたま病気だとわかったけど
わからなかったら何で半分しか食べないのかわからない

事前に誰かが餌をやったのかもしれない
失恋でショックだったのかもしれない
気分がたまたまそうじゃなかったとしたら解剖しても理由はわからない

未来のテクノロジーでその時の内部状態を再現した無数のポチを作って条件に分けて
えさやり動作チェックするなんて考えただけでも寒気がする
0352デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:02:47.77ID:1UhvtMTy
それはポリモーフィズムを理解してないだけでは。
0353デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:03:10.43ID:++iDCvgk
>>350
厄介だけど、どこかのレイヤで病気か否の状態は必要だろ?
それがアプリケーションレイヤよりさらに上なんてのはあり得ない。
0354デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:08:25.24ID:++iDCvgk
ポリモーフィズムは参照先インスタンスに依存するので、それは間接的とはいえ状態そのものやね。
0355デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:11:12.35ID:/ke/2lv3
>>353
だから対象オブジェクト内部に値を持たせないで関数のシグネチャーにして渡せと

関数に
病気かどうか
失恋かどうか
気分が悪いかどうか
前食べてからどのぐらい時間がたったか
と餌の量を値として渡せと
0357デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:18:47.60ID:/ke/2lv3
>>356
関数を使うものが渡す
その関数は勝手に知らない場所にある値を使わない
同じ値の組を与えたら必ず同じ値を返す
0358デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:19:57.74ID:UT33gEiF
>>348
え?誰がそんなこと言ったの?
内部に持ってアクセスできないのが駄目だって何度も言ってるじゃん
関数実行したら出力全部出せよ
同じ引数で実行したら絶対同じ結果を返せ
0359デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:22:08.98ID:++iDCvgk
>>357
関数を使う、突き詰めればOfficeのユーザーがどの設定画面のどのタブでどのチェックボックスが有効でどのボタンを押したかを一度に伝えるのん?
俺はそんなことはしてないなぁ。
少なくともどの画面が表示されてて何が選択されてるかはアプリの状態に依存してるわ。
0362デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:25:06.97ID:++iDCvgk
>>358
OKボタン押したら絶対に同じ結果になるのん??
仮に条件によりOKボタンが押せないなら、それはOKボタンを押せない条件がアプリにあるってことになる。
0363デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:32:21.07ID:++iDCvgk
>>362
普通は分かるけどへんに誤解があるかもなので訂正。
誤 OKボタンを押せない条件
正 OKボタンを押せない状態
0365デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:37:20.39ID:UT33gEiF
>>362
そもそもお前のアプリって
同じ画像保存してもクリックするたび画像変わるんだろ?
さっさとクビ吊れよ
0366デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:38:21.84ID:++iDCvgk
俺がはなっから言ってるのは、アプリ以下のどこかに状態は必要なはずで、それよりも外に状態を追い出すのは無理があるってことだけ。
0368デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:44:25.53ID:+9bdVI5n
システムの状態とオブジェクトの状態をごちゃまぜにしちゃう無能がハッスルしちゃっとると聞いてw
0370デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:47:14.39ID:++iDCvgk
システム、つまりアプリの状態は少なくともアプリケーションオブジェクト以下が制御してるので、全てのオブジェクトが状態を管理しないってのは無理があるって話。
最初からそう言ってる。
0371デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:50:57.15ID:lTwZu9zK
つか関数型餌やりだと餌やり関数から出力される犬は入力された犬のクローンじゃないのか?
0373デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:18:19.44ID:+9bdVI5n
>>371にどう答えるかでバカのレベルが計れるw
いまのとこ華麗にスルーした>>372がキングやねw
0374デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:20:36.12ID:++iDCvgk
>>372
具体的にどんな大多数のアプリがそう実装してるの?
悪魔の証明を避けるにはお前に実証責任があるからね。
0375デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:21:59.66ID:+9bdVI5n
>>374
今はおまえがしゃべっていい時間やないで
0377デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:25:39.72ID:+9bdVI5n
>>376
うむ、おまえは既に名誉バカの称号を持っとるからここに参戦すべきやない
すこしおとなしくしとけ
0379デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:28:27.44ID:UT33gEiF
>>374
c言語でグローバル変数使わなかったら他どんな組み方があるの?
引数か戻り値で渡すしかないでしょ?
グローバル変数使用禁止が作法のように語られてたんだから
昔の人は何をするべきかわかってたんだよ
0380デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:56:14.71ID:/X9jOxDh
OOPは糞かもしれんが
じゃあ何がいいのかと言われたら別に他にこれといってないのが現状
0381デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:12:44.75ID:k5h2WtG4
頭悪いヤツにかぎって
うれしがってなんでも継承して抽象化とかいってるからな

ホモを人間クラスから派生するぐらい愚かなことやってる
0382デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:16:43.74ID:l603LAAk
基本は当たり前すぎて、階層化であり局所化であり
順序回的な「無用な」状態保持は極力回避し組みあわせ回路的・関数的構造にし、、、、
関連はネットワーク構造よりもツリー構造を指向して見通しよくし、
関連性の強い物は近くにおき(遠くのファイルからあちこち継承してクロスファイルでmethod取り込むようなことはせず)、
といった、、、アー効けく茶後期ツのための基本セオリー。
その表現技法は言語のパラダイムによって変わるだろう。

問題はオブジェクト指向がそういった基本セオリーに反するような手法として普及してしまったことだよ。
0385デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:25:30.29ID:k5h2WtG4
オレぐらいのレベルでないと
オブジェクト指向は使いこなせない
0386デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:27:24.36ID:l603LAAk
たとえば関数型であれば、クロージャーや部分適用を使うことにより、
クラスをイロイロ作ったり状態instance変数でオブジェクトに特徴をもたせ分けるより
非常にシンプルに表現できるし、
また、解法を関数の段階的 細分化で構成することにより、
内側の回関数は小さくなるにつれ速やかに単純な構造になる上、
(再帰も含めた)関数呼び出しの引数リストと帰り値のスタック階層および局所変数が、
自然と個々の階層の参照する「近くにあるべき」状態を単純な木構増階層のかたちで保持できる。

ちなみに上にも書いたけど俺はfunctinalマンセーじゃないからな。
0387デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:29:55.72ID:l603LAAk
>>385
俺の周りでは、素人に毛がはえたか分からんような又派遣さんが、
専門学校でインチキ教わったのか知らないが、
そういう薀蓄をたれながら、くそコード量産して要らぬバグ入れて
残業大会やってるよ
0388デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:33:34.54ID:k5h2WtG4
あえていえば
できるだけ自律的であることが適切で
なおかつそのようにほぼ自律的に振舞うように実装されていれば
内部状態が保持されることは実装として適切

ただし、すべて外部的な要因で翻弄される続けるオブジェクトが内部状態を保持することは
適切な理由がないかぎり、できるだけ避けるべきといっていい
0389デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:35:43.41ID:l603LAAk
問題によってどうしても必要な内部状態というものはあるからな。
そこまでだれも否定はしてない
0390デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:36:39.96ID:k5h2WtG4
刺身の上にタンポポ乗せる作業なんか
ほっといってもいい

そのクラスだけでほぼ完結できる
0391デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:37:59.71ID:/X9jOxDh
> 外部的な要因で翻弄される続けるオブジェクトが内部状態を保持する

まぁアンタの言うように避けたようがよさげにも見えるが
ここでふと思い出されるのはコンテクストとかビルダの働き

java.awt.Graphicsみたいなコンテクストオブジェクトをグニグニいじったり
java.lang.StringBuilderのようなビルだオブジェクトをグニグニいじったり
そういうところこそにOOPの楽しみがあるように俺には少し思えるんだ
0392デフォルトの名無しさん
垢版 |
2018/09/28(金) 22:12:55.17ID:bBdkrZUa
ボタンやチェックボックスがGUIの共通の振る舞いを制御する親クラスがいるのはC++で書かれる前から実装継承するように設計されていた。

一方、普通預金、当座預金、定期預金の共通関数があったとして、預金というスーパークラスを書いているシステムはないぞ。メガバンクの情報系であってもな。
0393デフォルトの名無しさん
垢版 |
2018/09/28(金) 22:24:55.23ID:+9bdVI5n
お、キングを抜いた奴がでたでw
今は>>389がバカキングなw
0396デフォルトの名無しさん
垢版 |
2018/09/28(金) 23:49:37.69ID:/ke/2lv3
普通はそれってオブジェクト指向エクササイズっていうんだけど
同じ表現だから同じひとなんじゃないかな
0397デフォルトの名無しさん
垢版 |
2018/09/29(土) 01:23:56.63ID:NuLdKSCl
そいやオブジェクト指向てデザパタとかメジャーなのに肝心のこっちは影が薄いな
0399デフォルトの名無しさん
垢版 |
2018/09/29(土) 02:12:47.80ID:IuTgmxg/
バカでも作れる処理は
入力の構造体と出力の構造体を関数に渡す程度で済む処理
0400デフォルトの名無しさん
垢版 |
2018/09/29(土) 09:11:35.70ID:nymKFaQh
>>398
IDEと組み合わせるには相性がよかったのかもね
あと典型的なGUIのパーツであるとか
インスペクトしたときズラズラっと出るのが気持ち良いような物に対しては
0401デフォルトの名無しさん
垢版 |
2018/09/30(日) 01:13:02.43ID:2u8tHsEV
age
0403デフォルトの名無しさん
垢版 |
2018/10/02(火) 01:05:20.08ID:A7JQSPUH
考察が浅い
0405デフォルトの名無しさん
垢版 |
2018/10/02(火) 07:20:53.80ID:JB7ad13/
>>403
確かに浅いな
オブジェクト指向のメリットは全くわからなかった
解説してる内容もそもそもクラスを使う側が構造を知ってないと使えない例で書かれてて笑う
0406デフォルトの名無しさん
垢版 |
2018/10/02(火) 07:35:05.76ID:ju0/OZW1
キータって参考になる記事あんまりないんだよな。ある程度の知識もっているのが前提になってるし
プログラミング関連で検索すると常に上位でヒットするのが嫌だわ
0407デフォルトの名無しさん
垢版 |
2018/10/02(火) 09:44:25.77ID:3qG7W8x7
>>402
こういう嘘歴史書いて悦に入っちゃう自称識者のほうがゴリラみたいな底辺コンサルよりずっと始末が悪い
0410デフォルトの名無しさん
垢版 |
2018/10/02(火) 12:34:43.67ID:AvMzrL7k
ゴリラコンサルの所業

朝礼で歌を歌わせる、挨拶の練習
○○(会社の名前)イズムの継承と言ってブラック労働を肯定する
定期的に変なセミナーに通わされる
0412デフォルトの名無しさん
垢版 |
2018/10/02(火) 18:20:49.67ID:/RdnJML/
qiita.comは動機が不明
なぜ頼まれもしないのに不確かな二次情報を書き散らすのか
なぜ頼まれもしないのにノイズをせっせとネットに増やすのか
あれってお金でももらって記事を書いてるのか?

stackoverflow.comは単純
質問者がいて、答えてあげたい人が要る
質問にも回答にも評価がされるようになっており
有益な情報が共有できるようにつくられてる
質問者、回答者、閲覧者の動機がよくわかる
0416デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:50:57.77ID:eaArETqj
教えたがりのクズのくせに答えたあげたいとか言っちゃう気持ち悪さw
0417デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:56:41.61ID:YaWzkSZx
>>412
書いたことあるけど、昔はもうちょっと面白い場だった。
こんなの面白かったよ、とか試してみた、とか。
今は何かというとポエムやら言う奴が出てきたり、本気でレベル低い人も何番煎じかわからん記事書いたりして、収拾ついてない。
コミュニティとしては死んでいってると思う。
0418デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:59:28.60ID:Weccy6g3
>>412は便所の落書きのアホさ加減が光る書き込み
0419デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:06:51.71ID:eaArETqj
昔は良かったボクちゃんw
0420デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:24:30.19ID:JlZ/oy05
qiitaはメモ帳として結構便利
家で調べて纏めて仕事ですぐ使えるようにする
githubにテンプレートを置いとくと尚良
0422デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:30:00.28ID:clFFurIb
俺は結構便利だと思ってるけどな
新しいことのとっかかりにしたり
頭の中にない情報を得るのに使ってるわ

まあゴミ記事も多いけど
0424デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:38:05.56ID:eaArETqj
そもそもなんでqiita検索しとんねんwアホやろw
0425デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:43:51.32ID:YrRJAaFS
ほんの少しだけいい記事もある。

今オブジェクト指向に関するポエムが乱立してるのはアホみたいだがな。
0426デフォルトの名無しさん
垢版 |
2018/10/02(火) 21:14:37.02ID:R8M7QKDK
qiitaみたいなしょうもない個人の日記帳読んでるヤツいるの
0427デフォルトの名無しさん
垢版 |
2018/10/02(火) 21:27:51.22ID:WxkRXB6W
個人の日記帳として読んでる
0428デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:21:33.48ID:HWestuUb
5chみたいな便所落書き読んでる奴いるの?
0429デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:35:01.96ID:/RdnJML/
便所の落書きはむしろ健全なんだよ
書くほうも読むほうももうそれは分かってるから

>>417
> 何番煎じかわからん記事

ほんとそれ
検索結果を汚すのはもうやめて…
つべの歌ってみたレベルで悲しい
0430デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:35:39.44ID:BVvmn2A/
そんなことは自己紹介板に書きなよ
0431デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:37:06.75ID:BVvmn2A/
>>430>>428
0432デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:49:52.65ID:m0qWbxoK
何か上から目線だけどどこのサイトでもいいから
自分で正しいこと書けばいいんじゃないの?

それで次に言うのは
「ゴミポエムだらけでオレの記事が正しく評価されない」
0434デフォルトの名無しさん
垢版 |
2018/10/02(火) 23:00:45.18ID:1/02bXao
>>432
結果として自分のブログに戻ったよ、俺は。
まあゴミに埋もれる程度ならその程度の評価だと思うし。
0435デフォルトの名無しさん
垢版 |
2018/10/02(火) 23:02:07.94ID:/RdnJML/
> 自分で正しいこと書けばいいんじゃないの?

何で分かってくれないの…
自分で正しいと思ったことを「書かないで」と言ってる

歌ってみた?歌わんでいい
書いてみた?書かんでいい
0437デフォルトの名無しさん
垢版 |
2018/10/02(火) 23:26:49.40ID:R8M7QKDK
オレのレスは有益
0442デフォルトの名無しさん
垢版 |
2018/10/03(水) 00:59:18.00ID:75/JdiDV
オブジェクト指向とは何で
何が良くて
何が悪くて
そしてどうしたらよかったのかとか
纏められるといいんだけれどもねえ
0443デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:01:35.24ID:75/JdiDV
目的指向というよりも
手段指向というか方法論指向で始終しちゃって
明後日の方向に愚民を導いて
混乱をもたらしたのは
なんともむなしい
0444デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:03:16.82ID:75/JdiDV
日本の失われた20年とちょうど時期が重なる
日本のITの暗黒時代
0445デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:03:23.91ID:Uljc2mte
>>441
手強いよ
さらに誰に金もらってるのか
特定の言語や商品の悪評を流すことを目的としてるから
0447デフォルトの名無しさん
垢版 |
2018/10/03(水) 10:56:50.79ID:gykQQ827
邪魔する奴の中に
単純に自分を有利にしておきたいから他人が自分の居るレベルまでこれ無い様に邪魔をする
という奴も居るからな
相対的な位置で報酬は決まるから他人を蹴落とす
というのを息をするようにやる奴がかなり居る
全体が進展するより停滞させて自分だけ有利にしようとする下劣な奴が結構居る
教育を変える必要が有るのに今のままでいい
とか言ってる奴もそういう連中
0451デフォルトの名無しさん
垢版 |
2018/10/03(水) 19:23:56.48ID:ksSGRyva
まさか日本語版とかいうゴミ見てるんじゃないだろうな…まさかな…
0454デフォルトの名無しさん
垢版 |
2018/10/03(水) 20:03:14.53ID:OyXOgA+h
>>444
その時期に書かれたコードでOOPを正しく実践してるものなんて見たこと無い
OOPが悪いのではなくOOPじゃなかったから悪いということになるな
0456デフォルトの名無しさん
垢版 |
2018/10/03(水) 20:50:59.00ID:L7SsoV0I
海外でHelp me, Stackoverflow. You’re my only hope.って書かれたTシャツ着たやつ見るくらい
0457デフォルトの名無しさん
垢版 |
2018/10/03(水) 22:09:14.84ID:2Mgu08sP
>>454
今なら正しくOOPを実践してるコードばかりなの?
そもそも正しいOOPってどんなものなの?
第一デザパタは前の方がさかんに取りざたされていたじゃない。

振り返って今だからこそ分かるんじゃじゃないの?
世に流布していたOOPはくそコードを量産した元になったと。
0458デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:08:05.48ID:G0/tEBDY
我々はね、間違うのよ
だいたいのことを間違うの

OOPだから糞コードになったんじゃなくて
OOP関係なく、糞コードにしかならないの
その一点についてすら自覚が無いの
0459デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:16:15.49ID:p3pJJViF
main関数から始まるc++はオブジェクト指向か?
(オブジェクト指向をちっとも理解してないものの意見です)
0460デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:39:24.91ID:YTuGf5mm
>>459
C++はオブジェクト指向(をサポートした)言語だよ
Cと違って継承や多態の機能が標準であるでしょ?
今からふり返ると中途半端な部分もあるけど

ただそのC++を使って書いたコードが
オブジェクト指向らしく書けているかは別の話
OOPとOOA(D)の違い
0461デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:22:43.55ID:e2lTbi2R
>>458
OOPの弊害について議論して来たのに
「OOP関係なく、糞コードにしかならない」と言われると、
OOPは糞コードの元となる害なかった無関係だと暗にほのめかしているようで
論点をすり替えてずるくごまかされたような印象を受けるよ
0462デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:28:26.90ID:bhAz8In7
OOPが原因で糞コードになるんなら
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
0463デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:32:28.79ID:e2lTbi2R
本当はいいものとなる筈だったのに、
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、

最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
0465デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:53:04.18ID:e2lTbi2R
んなもん使い方しだいにきまっとろうが
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
0467デフォルトの名無しさん
垢版 |
2018/10/04(木) 21:04:04.79ID:lUzJxSj8
関数型の弊害の話をしたら必然的にオブジェクト指向の弊害の話になると思うの
0468デフォルトの名無しさん
垢版 |
2018/10/04(木) 21:07:13.85ID:vhCji18k
弊害ちゃう元からおまえの頭が悪いだけや
0469デフォルトの名無しさん
垢版 |
2018/10/05(金) 01:42:06.04ID:GLbBoG3S
これがオブジェクト指向を吹聴していた者たちの反論か…
科学的工学的有効性のかけらも無い
0475デフォルトの名無しさん
垢版 |
2018/10/05(金) 11:10:54.95ID:HilDODP3
クソとか言っている人間の方がよっぽど
>科学的工学的有効性のかけらも無い
と思うけど
0477デフォルトの名無しさん
垢版 |
2018/10/05(金) 14:35:10.66ID:kQel6lTj
べつにオブジェクト指向の概念は関数で実装しなくてもいいんだよ?
メッセージでもいいしな。
0478デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:01:51.18ID:LmyRE988
OcamlやF#のようにオブジェクト指向と関数型パラダイムを合わせて持つ言語もあるが、
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
0479デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:23:54.73ID:wNGV+/Yb
>自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
0480デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:49:03.56ID:LmyRE988
>>479
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?

これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)

この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ

これで伝わるかな…
0481デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:59:33.53ID:LmyRE988
>>480
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う

型クラスとかアクセサでカプセルかとか継承とか全いらない
0482デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:01:28.94ID:qfHN3zvO
関数型というかHaskellのええ所は>>260でいうパーツの切り分けが強制的になる所もあるよな
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
0483デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:02:29.25ID:LmyRE988
ただまぁ万能ではなく、
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
0484デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:31:10.16ID:LmyRE988
多態性についても文句あんだよねおれは。
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。

あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
0485デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:38:18.52ID:9tCZRFgp
書籍も全部一色だったし
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
0486デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:41:57.53ID:LmyRE988
本当に有効な機能だけ自律して使えば有効な面もあったかもしれないけど
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
0487デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:43:22.02ID:LmyRE988
今でもオブジェクト指向からDNNやAiにステージを移して
同じようなことが続いている
0488デフォルトの名無しさん
垢版 |
2018/10/06(土) 02:03:28.62ID:LmyRE988
でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。

翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか

同じOOPでも同列にみなしてはいけないんだろうな
0489デフォルトの名無しさん
垢版 |
2018/10/06(土) 02:13:25.41ID:LmyRE988
ちなみにpythonの言語仕様自体は
涙なくして語れないほどのクソだと俺は思っている

なんか文句あるか?
               ___
               /     \
             / ─    ─ \
            /  (●)  (●) \
              |     (__人__)     | <かかってこいよ
           ,.゙-‐- 、  `⌒´   ,/    おらー
        ┌、. /     ヽ ー‐  <.
         ヽ.X、- 、   ,ノi      ハ
      ⊂>'">┐ヽノ〃     / ヘ
       入 ´// ノ        } ,..,.._',.-ァ
      /   `ー''"´      ,'  c〈〈〈っ<
     /          __,,..ノ ,ノヽー'"ノ
      {          ´    /  ``¨´
    /´¨`'''‐、._        ,'\
     ∨´     `ヽ、     ノ   ゙ヽ
      ∨      ヽ _,,..-'"    `ヽ
     ∨       〈-=、.__       }
      ヽ、     }   ``7‐-.  /
          ヽ     リ    /′  ノ
          /′  , {     /   /
        {     !   ,ノ  ,/′
          !    /  /   `‐-、
        !   ,/   ゙ー''' ー---'
          ',  /
        {   }
           ゙Y `ヽ、
            ゙ー--‐'
0490デフォルトの名無しさん
垢版 |
2018/10/06(土) 07:19:55.96ID:hM5EPMW3
pythonにprivate変数はありません。
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内

(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
0491デフォルトの名無しさん
垢版 |
2018/10/06(土) 07:35:40.78ID:vpFDdLxA
>>181

まとめると:
  Python のオブジェクト指向はクソ
0492デフォルトの名無しさん
垢版 |
2018/10/06(土) 11:22:52.91ID:LmyRE988
>>490
一番クソなのは初期の段階でブロックとlexical scopeを配慮して言語設計しなかったこと
今でも引きずっている
0494デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:08:17.37ID:LmyRE988
>>493
飲んで2chにポエム書くことくらい大目に見なよ
0495デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:36:23.41ID:o3SQFYgr
>>492
blockは無いし頑なに追加しようとしないけど
lexical scope な言語ではあるだろ
何か勘違いしてるんじゃない?用語の意味わかってる?
0496デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:43:55.83ID:LmyRE988
>>495
・関数の大外のfile scopeの変数を外部から参照させることが出来ない
classにする必要が無くてもclass objectを作ってclass変数とし無ければならない
・関数の内側は平坦なlocal scopeのみ、また外側の変数は参照のみ、更新できない(かった<3)
・block(てきなもの)がnestしてもscopeがnestしない
したがって関数bodyがでかくなると見えなくて良い遠くの変数を隠せない

>>492
で配慮していないと一言で言おうとしたのは
具体的にはこういった欠点
0497デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:59:20.11ID:LmyRE988
>>495
モダンな言語なら必ず備えているコードのlexicalな階層構造と
変数のscopeの階層の明確な対応が出来ているとは
とても言いがたい
0498デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:02:40.61ID:LmyRE988
さて、三連休だ、旅行に行ってくるわ。
あばよ、ノシ
0499デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:04:15.02ID:o3SQFYgr
だから一言blockが無いで良いじゃん
lexical scopeは関係ない
それにpython 3だけで大抵の言語のシェアを上回ってるのに、
未だに2の批判するのも意味分からん
0500デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:05:12.84ID:o3SQFYgr
>>496
>>495
>・関数の大外のfile scopeの変数を外部から参照させることが出来ない

これ意味分からんかったわ
どういうこと?
0501デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:06:48.29ID:c8T9aSvT
>でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
>よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
>ソフトウエアの構造を表現している。
numpy、tensorflowがオブジェクト志向?
そんな気は全くしないんだが、定義が全く違うのかな?
0502デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:08:53.96ID:o3SQFYgr
それと pythonでnonlocal や global を使いたくなるケースは
根本的に設計間違ってるから、クソコード撒き散らす前に設計見直した方が良いよ
0503デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:18:09.40ID:o3SQFYgr
>>501
numpyやtfの中のコードの事だろ
使う側は手続き型で書ける
tfは計算グラフを構築してから実行するから宣言型かもな
0504デフォルトの名無しさん
垢版 |
2018/10/06(土) 14:21:52.83ID:sXtVjY80
>>501
そいつはここで気持ちよくポエりたいだけだから
レス返しても有益な情報は得られないよ
ポエ逃げしたいだけの人種だから
0506デフォルトの名無しさん
垢版 |
2018/10/06(土) 21:20:49.04ID:vpFDdLxA
>>503
まとめると:
・numpy や tf は C/C++ で書かれ内部はオブジェクト指向で設計された
・それらライブラリのAPIを Python は手続き的に利用している

つまりスレ的には、「Pythonのオブジェクト指向はクソ(>>181)」であると、
Python信者が認めたわけだ
0507デフォルトの名無しさん
垢版 |
2018/10/06(土) 21:28:26.10ID:c8T9aSvT
numpyの中身は知らんがtensorflowのどこがオブジェクト指向?
ホントにコード読んでんのかよ。。
なんか胡散臭い奴しかいねーな。。
0508デフォルトの名無しさん
垢版 |
2018/10/06(土) 21:38:32.17ID:9xvvgu9Y
>>506
数式を表現するのにオブジェクト指向なんていらん
行列演算したいだけなのにオブジェクト指向なんて強制されたらクソだわ

あ、数式使わないドカタの反論は不要なのでよろしく
ドカタには分からん世界があるんだよ
0509デフォルトの名無しさん
垢版 |
2018/10/06(土) 22:10:42.51ID:vpFDdLxA
>>508
Python信者からも賛同意見を頂けるとは嬉しい限り

・次世代言語12 Go Rust Swift Kotlin TypeScript
 http://mevius.2ch.net/test/read.cgi/tech/1530664695/963/
 >> 失礼な!!Python は FORTRAN/COBOL/BASIC に代表される
 >> 伝統的な手続き型言語の正当な後継スクリプト言語、
 >> 次世代の純粋手続き型言語です
 >>
 >> 関数型?オブジェクト指向?
 >> そんなのは飾りです、偉い人にはそれが分からんのですよ(必死
0510デフォルトの名無しさん
垢版 |
2018/10/06(土) 22:21:37.35ID:84qwAd3v
節子、それ便所の…
0511デフォルトの名無しさん
垢版 |
2018/10/06(土) 23:25:06.73ID:wNGV+/Yb
>>480さんへ
479です
自分は関数型に関しては完全に素人なのでなかなかに難しいです
単純に受けたイメージだとなんか凄くモノリシックに大きくなってしまいそう見えてしまう
関数型って何時もどういう風に制御するのか解らないなぁという感じで
基本的に難しい物なので自分には理解できないという感じなんだろうと思いつつ
今回は状態を通して何か掴めるかな?
と思いましたがそんなに甘くない感じですね
何にしても回答どうもです
関数型ってオブジェクト指向プログラミングシステムより更に難しいそうなのでオブジェクト指向より使える人が増えないような予感がします・・・
0512デフォルトの名無しさん
垢版 |
2018/10/07(日) 01:21:33.80ID:Nojuqsx1
>>502
そもそも nonlocal やら global などという
スコープ宣言に限定した予約語が存在するのは
Python が(歴史上、おそらくは)唯一の存在である、
という事実を忘れてやいませんか?

言い換えると、スコープに関して Python2 以前の
新規リリースの時点から「根本的に設計を間違えていた」のがPythonなわけ
で、根本的解決を採用せず、行き当たりばったりに
nonlocal やら golobal といった泥縄式対策を採用したのがPython3
0513デフォルトの名無しさん
垢版 |
2018/10/07(日) 01:25:43.47ID:iX7g/tHs
ゴローバルってなんかカッコええやん。
ゴローさん風味が出ててさ。
0514デフォルトの名無しさん
垢版 |
2018/10/07(日) 02:05:51.72ID:dWI643/y
nonlocalってセンスがウケるなw
いっそのことnonglobalも用意したらどうかwwww
0515デフォルトの名無しさん
垢版 |
2018/10/07(日) 14:29:17.30ID:+Rd5+blg
オブジェクト指向のスレでなんで延々と特定言語の言語実装の話してんの?
バカなの?
0516デフォルトの名無しさん
垢版 |
2018/10/07(日) 18:24:53.01ID:FMwg69WX
OOPの結果としては
クラスライブラリとかは文句なしに使いやすいと思うんだけどね
String, Map, List, Set, Threadなんかは十分使いやすいよね?
その点を否定するやつはさすがにおらんやろ?
0517デフォルトの名無しさん
垢版 |
2018/10/07(日) 18:26:20.74ID:qTxqyvp+
やっぱりクラスライブラリは使いやすいよね
文字列をポインタで操作してたCの時代に戻りたくない
0518デフォルトの名無しさん
垢版 |
2018/10/07(日) 18:37:23.80ID:FMwg69WX
そうなんよね
その点で見ればOOP大成功に見える

ただ、自前でクラスやクラスライブラリを書けつったときに
とたんにゴミの山になりかねないという
0520デフォルトの名無しさん
垢版 |
2018/10/07(日) 19:18:00.94ID:zvJnD+aL
>>516
使いやすいが、そこまで一般的なインターフェイスにするまで
いろんなソフトウェアの歴史があってこそなわけだ。
ユーザー定義でそのレベルのものを用意しようとすると途端に何も進まないか
クソインターフェイスをひたすら強要される現場となる。
0521デフォルトの名無しさん
垢版 |
2018/10/07(日) 19:37:46.92ID:FoRhSX54
クラス単体はオブジェクト指向だけど結局それを使うところでは手続き型にしてしまう。
0522デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:20:34.82ID:mIq+f5AO
ならC++のメソッドをすべてスタティックで書けばいい
そうすればメンバ変数も不要
スタティックのメソッドは当然メンバ変数にはアクセスできない

手続き型なら、入力の構造体と出力の構造体を関数を別で渡す程度で済むハズ
オブジェクトの状態を常に外側で管理する必要があることになる

MS-WindowsのAPIは
ウィンドウハンドラをひとつのオブジェクトとみなして
ウィンドウハンドラを経由して操作や設定を行ってる

ウィンドウハンドラも一つのオブジェクトで入力も出力もできるシロモノになってるからな
0523デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:25:31.13ID:mIq+f5AO
UNIXクローンのシステム関数にもwriteやreadがある
readやwriteはファイルディスクリプタを経由して
なにかしらに読んだり書いたりする関数だからな

つまりファイルディスクリプタをオブジェクトとみなして
読んだり書いたりしてるとみなしてると考えて差し支えない

コレはC++のようなオブジェクト指向言語で継承して実現できる内容と同じとみなせる
0524デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:36:06.11ID:B8+uQuvb
オッカムの剃刀の逆を地で行ってるなw
オブジェクト指向の何がダメか腑に落ちた気がするよ。ありがとう。
0526デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:48:32.68ID:9pTh9QRI
>>511
モノリシックに大きくなってしまうという印象は杞憂。
むしろ関数呼び出を一行ずつ言い切りみたいにつらねた宣言的書き方に近づく
リスト = 関数 リスト;
リスト = 関数 関数 リスト;
...
見たいな感じ。
状態は、本当に必要なもの以外は自然に登場してこなくなりその分複雑さを低減できる感じ。
どうしても状態管理が必要な処理は、
副作用の排除された純粋な言語の場合モナドみたいな物を持ち出さなければならないかもしれないが
副作用も許容している言語では、手続き的書き方をして状態を管理する形になると思われ、
どうしても必要な状態管理の煩雑さを関数型パラダイムで根本解決できるとはオレ的にはちょっと考えにくい。
難易度に関して言えば確かに学習コストは若干かかるけど、
いまはJavaやC++にもStreamやfoldなど関数型的なプログラミングのための機能が大急ぎで(かなりあせっている感じ)
取り入れられつつあるのであんまり肩肘張らないで、
ttps://qiita.com/stkdev/items/5c021d4e5d54d56b927c
https://ubiteku.oinker.me/2017/05/08/purpose-of-functional-programming/
といった導入的な情報などを参考にm日々の設計・開発の
局所的なコーディング範囲でもいいから使えるとことから使っていけば技術的な視野が広がるんじゃないかと思う。
ちなみに俺はそのサイトとは何の関係もないし、functionalマンセーではない
0527デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:51:20.95ID:9RTjDYv/
ミドルウェアは天才が書くから天才の好む言語で書く
クライアントコードはアホが書くからアホでも分かる手続き型で書く
開発者の能力に応じて分業可能にした功績はある
だいたい天才とアホが同じ言語使ってたのが頭おかしい発想だった
0529デフォルトの名無しさん
垢版 |
2018/10/07(日) 22:52:57.06ID:9pTh9QRI
そ、そうなのか…
なんか熱でもあるんじゃね?
0530デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:03:08.28ID:zvJnD+aL
いやレイヤーや粒度によって向き不向きな言語、パラダイムがあるってだけだろ。
天才とかアホとか関係ねーわ。
まあそういう判断しかできない奴は例外なくアホだろうけれど。
0531デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:07:07.43ID:9RTjDYv/
まあ例外なくアホとかいう恥ずかしい書き込みをするような奴は例外なく知的障害者だろうけど。例外なく、なw
0532521
垢版 |
2018/10/07(日) 23:12:36.26ID:4NXYL+If
staticに使い道なんてあったんだ・・・
0533デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:20:21.45ID:9pTh9QRI
>>516
それらlibraryレイヤははよく練り上げられてまぁ使いやすいと思うよ。
でもよく考えてみてよ、納品を決められ短期間に仕様の策定からQAまでこなさなければならない
アプリケーションソフトウエア開発とそういった長年同じような機能のライブラリが繰り返し作り
直されてきたものは同一に論じることは無理でしょ。
それにレイヤが全然違うじゃない。
下から見れば数百個程度の機械語>言語の文法レベル>アルゴリズムのライブラリレベル
>それらを組み合わせ具体的なあるぴにための処理を折りませたアプリレイヤ>…
レイヤによって全然特性が違うんだよ。適した表現手段は当然違うと俺は思う。
つまりアルゴリズムのライブラリレベルに適した表現手段が必ずしもその上位にある
複雑な応用レベルの表現には適しているとは言いがたいのではないかということ。(ここ伝わりにくいと思う)
これは今でも俺も日々とても悩まされている問題。でもまそれはしzでんげんしょうみたいなものでしょうがないいんだよ。
誰も悪くないし。
本当に問題は、オブジェクト指向の名の下に非科学的非合理的で変な表現手段が流布し
(一部の人間が意図的に拡散させ)ソフトウエア開発の技術的水神をを後退させ混乱させてしまったこと。
俺はこの一点を問題視しているんだよ。

また飲みながらのポエムで悪いな。
0534デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:22:20.26ID:9pTh9QRI
>>533 誤記多いなスマソ
しzでんげんしょう → 自然現象
技術的水神 → 技術的水準
0536デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:28:24.29ID:9pTh9QRI
>>535
そんなことよりポエムでもいいからなんか内容を書けよ
なんかむかついたのかw
0538デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:31:09.36ID:9pTh9QRI
OOPの幻想を追いながらゴミの山量産してて頂戴
0539デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:44:00.68ID:mIq+f5AO
https://ideone.com/PErfVu
コレがオブジェクト指向なコーディング
0540デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:52:58.21ID:GYr8Tket
だからねえ、凡人プログラマがいきがってOOを語るなっつーの

それなりに名が売れてる人以外、講釈垂れ禁止にしたいよね
0542デフォルトの名無しさん
垢版 |
2018/10/07(日) 23:58:46.68ID:9pTh9QRI
そしたら日本にいないぞ
>>540>>541 も 論外、対象外だし

おれはそもそもOOの講釈をたれたことは無いので自由だ。
0543デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:05:22.29ID:SHTmPUE+
と低学歴知恵遅れの底辺がいってもな
0544デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:08:53.96ID:YlFF3Gbm
日本人がプログラミングで実績残せないのはなぜだろうと思うけど
(まつもとゆきひろとか神レベルを除く)
講釈垂れは、1億円程度の案件でも沸いてくるんだわ
しかもたいていFランとか専門卒の地頭の悪さを自認できない語り部

俺のガンダムはさー、とか言い出す小学生と変わらんのよ
0545デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:09:05.00ID:5FzXpRZO
そういう非論理的揚げ足取り未満のレスが着き始めると
ああ、OOP信者はねた切れなのかあるいは
そもそも何か問題のある人たちだったとつくづく思う
0546デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:10:40.27ID:5FzXpRZO
そう言った人たちにみんなだまされ続けていたと
0547デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:13:06.68ID:5FzXpRZO
>>545>>543 宛ね
念のため
0548デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:13:33.24ID:YlFF3Gbm
細かいところの揚げ足取りで、議論になり得ないのも底辺の特徴ね

なので2ちゃん5ちゃんみたいな底辺8割の落書きでOOのメリットデメリットが議論できるわけがない
数年前はちょっと期待してたけど
0549デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:15:48.02ID:5FzXpRZO
そうだけどそれでも決して悪いことではないと思う。
別に理想の場をもとめて誰もきているわけじゃない
しかしその一方、これもひとつの社会の縮図で
そのなかで自分も生きていくことには変わりは無い
0550デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:18:20.98ID:5FzXpRZO
が、しかしだ。
オブジェクト指向ってのは実はクソだったと思う。
そして講釈をたれて変なオブジェクト指向を吹聴していた奴らはクソだった。
これは変わりない。
0551デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:23:48.49ID:YlFF3Gbm
新しいものを無条件に礼讃するのはヲタの特徴だからしかたがない

問題なのはそれを実業に持ち込むバカと語り部がいることなんだよ

この業界は敷居が低いからヲタの比率が高くなりがちで、困るのは自己顕示欲が大勢な新しモノ知ってるぞヲタ
0553デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:27:52.21ID:5FzXpRZO
日本のIT産業産業全体にいえることじゃん。
いま世界で絶賛ぼろ負け中だけど。
やITに限らない、はば広くぼろ負け中。絶賛衰退中。
OOP現象も同じだと思うんだよ。
純粋な技術的問題じゃないんだよね、社会的問題というか、人の問題というか。
CMMIもISO9000も
0554デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:31:01.24ID:5FzXpRZO
中身のアルレス
よろしくお願いしまーす
0555デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:36:06.65ID:YlFF3Gbm
俺もこの業界に長くいて新三大嫌悪感があるのが、多重請負、ISOとか監査もの、OOやDIの語り部

どれもこれも欧米被れというか、日本人が背伸びして、品質と生産性を落としてるだけだわ

そういえば技術じゃなくて社会的な問題かもね
0556デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:43:44.28ID:5FzXpRZO
腹黒い奴がどう他人を操るかの手法として利用されてきたか側面はあると思う

洩れの周りでの話だけれど、OOPのカプセル化、getter/setter、
継承による(後付の)コード再利用性による開発量削減・コスト低減を社内でうたい始めた奴は
実は自分ではコードは書けず無論設計は出来ず、マネージメントもできず、忖度と口先でしのいできて
くいっぱぐれるまえにJavaの流行を察知して社内OOP論者になり、布教に励み
それが下火になるとCMMI,IPISOの流行にのってQA論者に衣替えした
0557デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:47:41.87ID:5FzXpRZO
それにさんざだまされてうっかりJava信者になって
いまも問題点に気がつかず変なコード書いてる、あるいは部下や外注さんに強要して
迷惑がられている奴ら多数
これを暗黒時代と言わずしてなんというのだろうか
0559デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:52:04.16ID:5FzXpRZO
んなこたどうでもいい。
結論
オブジェクト指向はクソだった
都市伝説みたいな迷信だった。
沢山の人がだまされた
以上。
0561デフォルトの名無しさん
垢版 |
2018/10/08(月) 00:58:34.19ID:5FzXpRZO
つぎに
関数型はクソだった
って言うスレが建てば一過言あんだけれどもな…
0562デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:00:35.78ID:Z0JUGcFO
OOPに批判的な奴は最初から一定数いたよな
ちょろい奴を操る手法もまあ腹黒いが、批判を無力化する手法の方がもっと腹黒い
0563デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:02:55.95ID:YlFF3Gbm
俺の会社では語り部は淘汰されたけど、糞コードは負の遺産として急には捨てられなくて困ってる

ロジックをトレースしづらいだけの継承とか、呼び出し順が分かりにくいだけのテンプレートメソッドとか、背伸びしまくりの知ったかぶりOO
0564デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:10:27.58ID:5FzXpRZO
OOPって、それじゃあ全然ダメだったかというとそうでもなくて
頑張ればそれを使って(向いてないレイヤ・アプリでも)何とかソフトウエアを構成できたんだよ。
それはgotoを乱用してもがんばれば何とかソフトウエアを構成できたのと実は大差ないことだと
俺は思っているんだけれど。

それが厄介ごとの元。
上手くいかなかったときはOOPの理解が足りないからだとか、
低学歴には無理wとか批判されて、
そう、自分ではまともなコードををかけない奴に批判される
一体OOPは何のための手法なんだろうか
0566デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:11:52.30ID:5FzXpRZO
いや名誉のために言っておくと俺は低学歴ではないw
0567デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:12:22.52ID:SHTmPUE+
オブジェクト指向は低学歴にはムリ
それはあってる

オマエも含めてな
0568デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:13:21.14ID:5FzXpRZO
>>565
手続き型とオブジェクト指向てscopeのもちかたとその応用以外特に差はないよ
0569デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:14:58.10ID:SHTmPUE+
低学歴知恵遅れはレスみても分かる通り
知能にも著しい欠陥があるのがすぐに分かちゃうからな

オツムの程度をみても
低学歴知恵遅れにオブジェクト指向はまずムリ
0570デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:15:28.69ID:tiRNksmV
手続き型言語で取り返しのつかない設計ミスって結構あったんだよ
そういう部分でオブジェクト指向には意味があると思うんだけどな
とりあえずデザパタどおりにしとけば何とかなる的な
0571デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:16:28.07ID:5FzXpRZO
あんたあちこちで毎日こんなレスばっかかいてるね
いろんな人がいるなこの世には

543 名前:デフォルトの名無しさん[] 投稿日:2018/10/08(月) 00:05:22.29 ID:SHTmPUE+
と低学歴知恵遅れの底辺がいってもな

567 名前:デフォルトの名無しさん[] 投稿日:2018/10/08(月) 01:12:22.52 ID:SHTmPUE+
オブジェクト指向は低学歴にはムリ
それはあってる

オマエも含めてな

569 名前:デフォルトの名無しさん[] 投稿日:2018/10/08(月) 01:14:58.10 ID:SHTmPUE+
低学歴知恵遅れはレスみても分かる通り
知能にも著しい欠陥があるのがすぐに分かちゃうからな

オツムの程度をみても
低学歴知恵遅れにオブジェクト指向はまずムリ
0572デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:19:37.41ID:5FzXpRZO
>>571 は ID:SHTmPUE+ 宛
念のため


>>570
デザパタとか言うけどsingletonとか後論されつくしている通り
糞だぞ
0573デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:20:11.16ID:SHTmPUE+
この必死さ

自己評価だけは高い低学歴知恵遅れで底辺にありがち
低学歴知恵遅れで底辺であるからこそそうであるといえることが、
同様のサンプルをみるにつけ、最近段々と経験から分かるようになってきた

残念なことにすぐに分かっちゃう
0574デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:21:42.91ID:YlFF3Gbm
人間が持つ分類の概念が似ているもの、GUIとか、そのサブクラスで違和感なくロジックがdispatchできるものが適用範囲なんじゃね?

欧米人のように、複数のオブジェクトが協調しあうような高度、かつうまく行くようなクラス設計できるようなセンスの持ち主が日本のIT業界に割り当てられるとは思えんし、実際に出くわしたこともない

絵空事のパワポの達人にはよく出くわすけどな
0575デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:22:14.15ID:5FzXpRZO
いろんな人がいるな
法を犯さなければ野放しだから
0576デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:23:47.08ID:5FzXpRZO
>>574
応用レイヤのclass設計で言うと見事と思えるものは海外にはある?
0577デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:30:22.12ID:5FzXpRZO
この必死さ

自己評価だけは高い低学歴知恵遅れで底辺にありがち
低学歴知恵遅れで底辺であるからこそそうであるといえることが、
同様のサンプルをみるにつけ、最近段々と経験から分かるようになってきた

残念なことにすぐに分かっちゃう
0578デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:30:49.29ID:5FzXpRZO
低学歴知恵遅れはレスみても分かる通り
知能にも著しい欠陥があるのがすぐに分かちゃうからな

オツムの程度をみても
低学歴知恵遅れにオブジェクト指向はまずムリ
0579デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:31:05.39ID:5FzXpRZO
オブジェクト指向は低学歴にはムリ
それはあってる

オマエも含めてな
0580デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:32:16.55ID:5FzXpRZO
と低学歴知恵遅れの底辺がいってもな
0581デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:33:25.88ID:YlFF3Gbm
>>576
オープンじゃないけど時価配信でObserverパターンになってるのはよく見るな

GUIだとDelphiだね、古いけど基本は同じだろう
0582デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:33:53.33ID:5FzXpRZO
ハードが壊れるのと
低学歴知恵遅れのオツムが壊れてるのは
別問題
0583デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:34:34.01ID:5FzXpRZO
システムが壊れてるワケじゃない
壊れてるのは低学歴知恵遅れのオツム

オツムが壊れてないヤツが作れば
壊れたシステムはできあがらない

オブジェクト指向はキチガイに刃物

ノータリンにオブジェクト指向を促すこと自体が常軌を逸してる
ノータリンがオブジェクト指向で開発しようとすること自体が銃刀法違反並の重罪
0584デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:34:43.31ID:SHTmPUE+
低学歴知恵遅れがなんか壊れた
0585デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:35:07.92ID:5FzXpRZO
だいたいわかる

ウンコスクリプトしか使えないような低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
0586デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:36:03.72ID:5FzXpRZO
>>584
お前さんの今までのレスをコピペして遊んでいただけだよ
0587デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:36:36.34ID:5FzXpRZO
内容のあるレスを探したがが1つもなかったよ
0588デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:40:06.65ID:5FzXpRZO
オレぐらいのレベルでないと
オブジェクト指向は使いこなせない
0589デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:40:53.29ID:5FzXpRZO
もっとからかっちゃおうかなフフ
0590デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:43:12.51ID:SHTmPUE+
ID:B/yxkRYZ
ID:j/6nk0eH
ID:cRG95Xcq
ID:Kxio7RVg
ID:pq96CSzd
ID:k5h2WtG4
ID:IuTgmxg/
ID:R8M7QKDK
ID:mIq+f5AO
ID:SHTmPUE+

このスレのオレのレスはコレがすべてだ
オマエみたいな内容のない低学歴知恵遅れと違って
たくさん有益なレスをしてる

低学歴知恵遅れには理解できないし読めないのはわかる
知能に著しい欠陥があるからな
0591デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:44:25.97ID:SHTmPUE+
低学歴知恵遅れが自分を大きくみせようと
必死なのはわかる
0592デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:46:21.56ID:5FzXpRZO
>>590
乙。暇だね。
これはあくまで親心で申し上げるが、頭の病院いったほうがいいレベルですよ。
0593デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:47:52.93ID:SHTmPUE+
バカは自分がバカであることに気づけないからな
キチガイには健常者がキチガイにみえるのと同じ
0594デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:49:05.52ID:5FzXpRZO
いやなら別に病院に行かないでそのままひとり病んでてもいいけど
他人にはつくづく迷惑かけないようにね
0595デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:49:23.87ID:SHTmPUE+
バカは自分がバカであることに気づけない
つまりバカは一生治らない
まずバカはバカの自覚をもつことができない
0596デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:50:24.26ID:5FzXpRZO
つかこんなにレスしてたんだ
ぱっとみノイズレスだと思って読んでなかった
0597デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:50:32.93ID:SHTmPUE+
病んでるのは間違いなくオマエだからな
低学歴知恵遅れで底辺になると発症する病気にかかってる
0598デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:52:18.66ID:5FzXpRZO
ま火事とがいしは2chの華か
0599デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:58:28.42ID:SHTmPUE+
まあオマエはオツムの病院へいったほうがいいわ
オツムが壊れてる

間違いなく軽度の知的障害がある
0600デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:59:16.72ID:5FzXpRZO
お前さんは重度だぞw
0601デフォルトの名無しさん
垢版 |
2018/10/08(月) 02:00:38.48ID:5FzXpRZO
つーかいい子だからもうオナニーでもしてネナヨ
おじさんは忙しいんだから
0602デフォルトの名無しさん
垢版 |
2018/10/08(月) 02:04:10.21ID:5FzXpRZO
オナニー中らしいですww
0604デフォルトの名無しさん
垢版 |
2018/10/08(月) 08:00:16.00ID:s8MF6MAn
クラス単体のプログラムが出来るのは利点だと思う。
そのクラス同士のまとめが難しい
0605デフォルトの名無しさん
垢版 |
2018/10/08(月) 08:22:40.86ID://kQ6Yzy
ID:5FzXpRZO大発狂しちゃってるやん…
応酬見てると半角のほうがまだまともに見えてくる件w

>>574
みたいに人種に原因を求めるのは実は面白いと思う
本人たちが従ってる働き方に既に問題があって
そこに疑問を持たないしどうしようとも考えない
足並みそろえて稲植えてたら収穫できるって発想

たがいの独立性や多様性をベースとした協調
直交性のあるもんを組み合わせるという日常
ってのはやっぱあちらさんに向いてるんだろうね
0606デフォルトの名無しさん
垢版 |
2018/10/08(月) 09:15:06.72ID:r/3VlGF9
自由で独立した人間は因果関係に縛られないんだぜ
原因はこれだから結果は必ずこうなるとか思ってない
0608デフォルトの名無しさん
垢版 |
2018/10/08(月) 09:54:42.20ID:r/3VlGF9
思い込みではなく分類
因果関係に逆らえないのはモノや動物のように扱われる
それ以外が人間
0609デフォルトの名無しさん
垢版 |
2018/10/08(月) 10:16:09.72ID:rY7QFOOR
思い込みではなく分類というのは話が噛み合ってない
そういう分類があるという思い込みなんだから

思い込み or 根拠がある という話なんだから、
思い込みじゃないなら根拠を示すべき
0611デフォルトの名無しさん
垢版 |
2018/10/08(月) 10:34:48.33ID:r/3VlGF9
いや、こういうのでいいんだよ
分類に根拠がないという意見と、OOPに根拠がないという意見は似ている
0613デフォルトの名無しさん
垢版 |
2018/10/08(月) 11:23:00.34ID:rY7QFOOR
>>611
だから分類の話はしてない。

> 自由で独立した人間は因果関係に縛られないんだぜ
> 原因はこれだから結果は必ずこうなるとか思ってない

↑これが思い込みだって話をしている
0616デフォルトの名無しさん
垢版 |
2018/10/08(月) 13:57:02.86ID:HrAB4JNP
GUIみたいに誰もが抽象化のイメージがわきやすいクラスと、Webフレームワークのような、使う人が継承して使えばなんとなく便利なクラスでは、抽象化のやりかたそのものが学問になりそうだよな

一般人はおとなしく継承したクラスの中に、業務ロジックを構造化プログラミングしてなさいってこった
0618デフォルトの名無しさん
垢版 |
2018/10/08(月) 15:37:04.77ID:aKFx8hdA
>>617
GUIの座標とか描画とか、共通関数にするよりもスーパークラスに持たせた方が共通処理と分岐処理が別れて、分岐判断の引数とか減るだろ?

別にオブジェクト志向言語じゃなくても構造体でも出来るし、事実、WindowsだってCで書かれてるけどな
0620デフォルトの名無しさん
垢版 |
2018/10/08(月) 16:12:29.55ID:HqDSWn9/
>>618
WindowsはC++では?
0624デフォルトの名無しさん
垢版 |
2018/10/08(月) 17:20:09.48ID:kgyl4Ui4
>>623
いや、テメーで勝手に分岐が必要なブッサイクなクラス作っておいて
それはないなと
それにクラス構造で分岐しないでくんない?
読み辛い
はっきり言ってクソ
仕様書にどんな条件で分岐してるのか書きにくい
控えめに言って死ね
0626デフォルトの名無しさん
垢版 |
2018/10/08(月) 17:28:45.60ID:SHTmPUE+
windowsでは普通にイベント分岐処理でもswitch文使う
それを隠蔽化するために仮想関数にして実現するどうかは作るヤツのセンスで決まる
0627デフォルトの名無しさん
垢版 |
2018/10/08(月) 17:30:28.51ID:kgyl4Ui4
>>626
それすげーやめてほしい
こっちはテメーが作ったただでさえうんこみたいな設計書に
そう書いてあるから見に行ったのに
そのとおり作ってないとか設計書ゴミ箱に捨てんぞ糞が
0628デフォルトの名無しさん
垢版 |
2018/10/08(月) 17:43:41.49ID:YlFF3Gbm
いや、実際にWM_xxxxに対するcase文てんこ盛りだけど。Windowsの低レベルプログラムは。
0629デフォルトの名無しさん
垢版 |
2018/10/08(月) 17:45:55.46ID:IMi/szTI
>>628
> いや、実際にWM_xxxxに対するcase文てんこ盛りだけど。

オブジェクト指向で作らないからそうなる
0631デフォルトの名無しさん
垢版 |
2018/10/08(月) 17:54:08.00ID:YlFF3Gbm
MFCが出てくる前は、Cでゴリゴリ書いてたのよ
MFCが曲者っつー話はさておき、
Cでクライアントプログラムを書くわけだが、Windows自体はOOそのものの思想で作られていて、ウインドウクラスの登録から始まる
0632 ◆QZaw55cn4c
垢版 |
2018/10/08(月) 18:53:59.21ID:Vh0J6/Nb
>>626
>windowsでは普通にイベント分岐処理でもswitch文使う
pedzold では終始一貫して switch なのは、ちょっとどうかな、と当時でさえ思っていました

>それを隠蔽化するために仮想関数にして実現するどうかは作るヤツのセンスで決まる
今思うに、これは悪手なのではないかと
0633 ◆QZaw55cn4c
垢版 |
2018/10/08(月) 18:58:32.67ID:Vh0J6/Nb
>>631
>Windows自体はOOそのものの思想で作られていて、ウインドウクラスの登録から始まる
それ、今でもよくわからないですね
::RegisterClass() ってコンストラクタに該当するのですか?なぜ ::CreateWindow() とは別に定義したのでしょうか?私はこの二つはラッピングしちゃってます…
0634デフォルトの名無しさん
垢版 |
2018/10/08(月) 19:22:15.46ID:Tqf3ZL+v
WindowsをCで書くわけにはいまさら中々いかないだろう。
かといってgcのある言語やインタプリタのようにアプリ寄りの言語で書くのは不可能だろ。
そうやってnative codeを出せかつOSの記述も(苦労するが何とか)記述可能な言語は
消去法でC++しかなくなる。DとかRustじゃ無理。

また、Windowsと言う位だから、上位には何らかのOOP GUI IFを提供しなければならない。
別にC++のOOP機能が優れていたからWindowsがC++が記述されたわけではない。
ここ勘違いしないように。
0635デフォルトの名無しさん
垢版 |
2018/10/08(月) 19:25:35.43ID:lYyho1IC
WindowsがOOそのものの思想、と言うのはハンドルまみれなAPI群があるので素直に同意できないけど、ウィンドウ周りは多少は頑張った感あるよね。
>>633
ウィンドウクラスとウィンドウを別管理にすることで、同じウィンドウクラスを使い回す時にメモリが節約できるというメリットがあるかと。
0637デフォルトの名無しさん
垢版 |
2018/10/08(月) 20:24:37.00ID:Z6PD3tJ3
>>526さんへ

示された所じゃなくて
その下に有ったリンク先を読んで解った事が有った
https://qiita.com/hiruberuto/items/26a813ab2b188ca39019
読んでいて何が自分に難しいのか?

関数型の場合
処理対象全域を考えて関数で並ぶように作らないといけない
副作用やその他の物を一時に頭に入れて整理し無いといけない
(リンク先にはそうではないと書かれているが自分にはそう見える)

けどオブジェクト指向の場合
対象となる処理を分割して個々に作っていく
分割して個々に作っていった物を連携させて
最終的にはその集合体が出来上がれば機能する
という方が自分に向いている

頭が悪い人間と言うのは広く色んな要素が一編に出て来る物の状態を正確に把握して
それを組み立てる
というのが苦手なのよ

関数型プログラミングは間違いなく
使える人が限られる
そういう物になるだろあなぁ

でもc++なんかでも標準ライブラリーに既にそれっぽいのが有るから
使える程度には理解しないといけなくなるんだろうねぇ
その程度ならなんとかなるかなぁ(笑)

何にしても参考になりました
0638デフォルトの名無しさん
垢版 |
2018/10/08(月) 20:28:18.73ID:kgyl4Ui4
>>637
バカじゃん
テメー以外の奴が作ったときに
privateにされたらそれでしめーだろーが

そういう当たり前の想像力が欠落してるからテメーは何考えても
ダメダメのうんこちゃんなんだよ
0639デフォルトの名無しさん
垢版 |
2018/10/08(月) 20:31:49.61ID:kgyl4Ui4
メソッド呼ぶたびにクソクラスの内部のウンコがどうなってるのか
ケツアナほじって掻き出さなきゃいけねーんだよ
0641 ◆QZaw55cn4c
垢版 |
2018/10/08(月) 20:52:27.06ID:Vh0J6/Nb
>>635
>ウィンドウクラスとウィンドウを別管理にすることで、同じウィンドウクラスを使い回す時に
同じウィンドウクラスを使いまわすっていうのが、そういうことをやる機会があるかどうか、という点でいまいち、なんです
つまり現状のウインドウクラスにてウィンドウプロシージャを設定する、というのが疑問でして、ウィンドウプロシージャが ::CreateWindow() の引数だったら、使いまわす、ってことも検討したかもしれませんが
0642デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:30:56.46ID:811LgONL
>>637
foreach, map, reduce, filter などを使うことによって、
for ループやif分岐や一時変数を使う助長で古典的な書き方から脱却し
リストの要素間の多対応・変換を宣言的に記述し切っていく、
既存言語に拡張されつつある関数プログラミングパラダイムの
限定的でも美味しいとこ取り的な使い方からはじめても全然いいんジャマイカ
0643デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:35:43.59ID:811LgONL
あと、詳しく書くと長くなるので一言ずつ書くと
繰り返しではなく末尾再帰を使えるところでは活用する
クラスを設けて多様性をあらわすのではなく、クロージャーや部分適用で簡潔に表現する
遅延評価や関数変換を使って有効なところで使う
とか
0644デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:36:52.15ID:IMi/szTI
関数型とオブジェクト指向は実は相性がよくて、
オブジェクト指向でオブジェクトとしての構造を
そしてオブジェクト指向の中で使う関数は関数型と
組み合わせて使うのが最強なんだ
0645デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:39:02.72ID:811LgONL
>>644
だからそれはレイヤやグレインの観点から上手くいかないんじゃないかって
上で書いたのに。
上手くいく方法があったら披露してよ
0646デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:43:02.58ID:IMi/szTI
末尾再帰の話が出てきたから、知識の浅い人に説明しておくと

関数型は再帰で実装するから手続き型のループを使う方法よりも遅いという常識を
特定の条件を満たしている場合にループに変換することで、遅くならない
というもの。決してループよりも速くなるわけではない
0647デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:45:21.28ID:IMi/szTI
>>645
何ができたらうまくいくってことになるんだ?

俺にとっては開発が楽になることがうまくいくことだ
楽になってるのでうまくいっている
0648デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:45:58.21ID:811LgONL
>>644
あとcontinuationとかyieldとか使うと幸せになることがたまにあるぜよ
0650デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:47:17.86ID:811LgONL
>>647
何の言語で何をどう作ってんだか知らないが
上手く言っているなら方法論を披露プリーズ
0651デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:48:12.08ID:811LgONL
>>649
methodの中つまり関数の中でだろ
0652デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:50:45.37ID:811LgONL
明日出勤なので寝るぜ
あばよはげどもノシ
0653デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:51:32.33ID:IMi/szTI
>>650
方法論ってなにがほしいのか知らんが、
関数型言語で作ったライブラリは状態を持たないから
汎用的な関数ライブラリになる。
それを便利にオブジェクトで使用する
0654デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:53:09.64ID:kgyl4Ui4
オブジェクト指向のメリットは説明できたかい?

定期的に貼らないと関係ないこと主張する奴がわくからな
これが説明できないならクソ
0655デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:56:30.02ID:IMi/szTI
オブジェクト指向のメリットは状態を
簡潔にわかりやすく持たせることができる

アルゴリズムならともかくシステムから
状態をなくすのは不可能なので
それをどれだけ直感的に扱うか不可欠になる

それが関数型に対するオブジェクト指向のメリット
0656デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:00:12.76ID:811LgONL
>>655
直感ですか…
0657デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:01:29.15ID:r/3VlGF9
OOPのメリットを教えてくれる奴なんていくらでもいたよな
それでOOPが普及して
ふと気付いたらメリットが何だったのか思い出せない

ここでまたメリットを教えられても無限にループするだけだ
0658デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:05:17.61ID:IMi/szTI
>>656
そう。3歳の子供でも、リンゴとミカンの色や形
犬や猫の鳴き声の違いぐらいわかるだろう。
それぐれいオブジェクト指向は人間の思考と一致している
0659デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:05:31.32ID:811LgONL
型クラス、クラスscope、オブジェクトscope,
同じ名前の多態(振る舞いの違い)、
継承によるあっちこっちに無難格納したソースファイルの
似たmethon部分の短冊のような共有による依存性のジャングル

これらについて理論的、科学的に有効性を述べないとだめだよ
0660デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:11:45.44ID:811LgONL
そう、そしてそれらがある程度規模の大きく複雑な
アプリケーションレイヤのソフトウエアの構造表現として
どう有効なのか理論的、科学的に述べないと…
0661デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:19:30.00ID:r/3VlGF9
確実にメリットがあるなら人には教えないで独占する
それが理論的で合理的

確実ではないギャンブルなら人に教える
0662デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:28:08.41ID:811LgONL
>>661
つまりメリットは無いとw
0663デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:33:36.33ID:811LgONL
オブジェクト指向は低学歴にはムリ
それはあってる

オマエも含めてな
0666デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:37:03.95ID:811LgONL
低学歴知恵遅れが自分を大きくみせようと
必死なのはわかる
0667デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:38:24.97ID:811LgONL
だいたいわかる

ウンコスクリプトしか使えないような低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
0669デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:51:37.06ID:811LgONL
節子それfake
0670デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:13:05.52ID:r/3VlGF9
1bit思考の中で最悪なのは、需要と供給
買う方が100%自己責任と思ってるから売ってる側は罪悪感0
0671デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:18:57.76ID:811LgONL
その論点から起こしてだね、
オブジェクト指向の有効性を非論理的、寝技的に布教しようとするのは
いくらなんでももう、無理があるよ
0672デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:40:30.66ID:C02Vpegg
ここの議論でもそうだけどカプセル化とかインターフェイスに対するプログラミングとか
ここの要素について話すのは意味があるが
「オブジェクト指向」って言葉でまとめると途端にクソ議論になる。
その意味ではやっぱり失敗だろう。
0673デフォルトの名無しさん
垢版 |
2018/10/09(火) 02:31:35.79ID:GxJd+3a3
>>672
その辺はポジティブな意味合いが強いからな
ただメリットがあるからってデメリットがどうなるかは別問題として
0674デフォルトの名無しさん
垢版 |
2018/10/09(火) 06:16:50.45ID:1H6kld1Z
カプセル化とかは「学習コスト」だから100%ネガティブ
コストを消費する代わりに何かメリットがないとポジティブどころか中立にもならねえ
0675デフォルトの名無しさん
垢版 |
2018/10/09(火) 06:53:21.12ID:Fv2MSo0/
今になって思うのは、オブジェクト指向にまつわる説明で特徴的な何々は何々であるだから何々があるはずだ的な事は製作者側の考え方の根本だったんだろうな。
ここに共感してないから触ってても疑問がつきまとう。
それでもってこういう考え方をする奴は布教的な奴が多い。こういう奴らは本当本当に嫌いだわ。人のその後に対する考えなんてみじんも無い。
例えばウェブ上で人気の言語的なランキングで上位に入ってる言語と周りを見渡して実際触られる言語の食い違いがひどい。
他の奴の意見見てると大体同じ感覚で変な笑いがでる。
0676デフォルトの名無しさん
垢版 |
2018/10/09(火) 07:05:27.74ID:xcSr1k5g
振り返ると、信仰宗教みたいな流行だった
0677デフォルトの名無しさん
垢版 |
2018/10/09(火) 10:12:33.99ID:hleJLyKe
オブジェクト指向の宗教的側面と、Rubyの宗教的側面がかけ合わさって
ドン引きするレベルの狂信者が出現した

もはや言語は死につつあるのに狂信者は毎日板を荒らし回ってる
0678デフォルトの名無しさん
垢版 |
2018/10/09(火) 10:58:21.87ID:MhhKJFZu
>>674
学習コストはなんにでも適用できる
一般的すぎて無視できる

プログラムを作るにはカロリーを消費すると
言うようなもの、そらそうだで終わり
0679デフォルトの名無しさん
垢版 |
2018/10/09(火) 11:01:37.61ID:MhhKJFZu
カプセル化してしてデータを閉じ込めることこそ
オブジェクト指向の真髄、データに対する責務を
集約する事でプログラムを作りやすく堅牢で
メンテナンスしやすくできる
0680デフォルトの名無しさん
垢版 |
2018/10/09(火) 11:40:52.35ID:1H6kld1Z
>>678
コストがあるから見返りにメリットが必要だったんだが
コストを無視するならもうメリットがあってもなくてもいいぞ
0683デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:05:55.31ID:MhhKJFZu
オブジェクト指向テクニックを使うと外から壊されにくい
堅牢なデータ構造を作ることができてプログラムの
完全性を保証できる、オブジェクトを組み合わせて
より大きなプログラムを作れるっていうのが
オブジェクト指向のメリット
0684デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:11:49.02ID:1H6kld1Z
当たり前すぎるってあれだよな
反証不可能ってやつ
反証したい勢力と対立煽りするくらいがちょうどいいんだよな
0685デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:12:29.16ID:MhhKJFZu
データ隠蔽が有害っていうのは嘘だ
データは隠してなんぼ、オブジェクトを使う側に
データの存在を意識させないようにする事で堅牢な
プログラムを構築できる
0686デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:44:03.73ID:3cHmJpwL
大規模開発はオブジェクト志向が、
とか喧伝する低偏差値信者もおとなしくなり、
一歩下がって、そんなに良いものだったっけ?と振り帰られる雰囲気がでてきたのは良いこと

いつまでも熱狂信者の思惑通りにはいかないよ
時がたてば、本当にコストペイするものだけが生き残る
0687デフォルトの名無しさん
垢版 |
2018/10/09(火) 15:34:08.86ID:s6lFROtd
>>685
テストもできないのが不味い
結局使用する側が状態を意識しなくてもいい造りなら問題はおきない

でもinitメソッド連発で呼ばれると死ぬだろ現実
initメソッド呼んだんだからどんな状態であれ初期状態に移行しろよ
ってのが呼ぶ側の主張
0690デフォルトの名無しさん
垢版 |
2018/10/09(火) 17:11:39.56ID:UgeI4/Dm
>>687
> でもinitメソッド連発で呼ばれると死ぬだろ現実
> initメソッド呼んだんだからどんな状態であれ初期状態に移行しろよ

どんな場合でも初期状態に移行すればいいだけでは?
0694デフォルトの名無しさん
垢版 |
2018/10/09(火) 18:17:11.30ID:o83bbsRF
>>690
でも実際はハードに近い部分のinitだったりするとそうはいかないケースがあるよね?
って可能性が想定できないなら君は設計を語るレベルにないんじゃない?
0697デフォルトの名無しさん
垢版 |
2018/10/09(火) 18:50:57.71ID:UgeI4/Dm
>>696
じゃあそういうケース以外には当てはまらないってことでいいよね
例外中の例外なんてどうでもいいわ
0699デフォルトの名無しさん
垢版 |
2018/10/09(火) 18:52:15.46ID:jSAcVkU7
メソッド呼ぶほうが呼び出し順にナーバスな設計というのが糞
内部を隠蔽できてねーやんというだけのこと
0701デフォルトの名無しさん
垢版 |
2018/10/09(火) 19:31:40.73ID:o83bbsRF
んでそれを踏まえて
お前のクソクラスは息してんの?
って話
レアケースだから死ぬわってお前
言ってるように聞こえるけど
バカなん?
0702デフォルトの名無しさん
垢版 |
2018/10/09(火) 20:06:57.87ID:9OTFAl28
>>689

うるせぇエビフライぶつけんぞ

,.、,、,..,、、.,、,、、..,_  /i
;’`;、、:、. .`゙:.:゙`’’’:,’.´ -‐i
‘、;: …: ,:. :.、..; .;;.‐’゛ ̄  ̄
   ヽ(´・ω・)ノ
     |  /
     UU
0703デフォルトの名無しさん
垢版 |
2018/10/09(火) 20:08:18.35ID:UgeI4/Dm
>>700
オブジェクトが状態を内包するか
オブジェクトの外に状態を置くかの違いでしか無いですね
0704デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:39:06.76ID:o83bbsRF
>>703
だからその一点でクソだって言い続けてるじゃん
カプセル化がどうとかバカの妄想だろ
テメーの状態がわからねーのが一番のリスクなんだよ
何がカプセル化だよ
早く死ねよ
0705デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:45:21.47ID:Z2FoPQmM
localなデータを局所に隠蔽するべきなのはソフトウエア工学上、
当然のことでカプセル化の専売特許ではない。
ほぼすべての最近の言語はlocal scopeを持っている。
だがオブジェクト指向のカプセル化によるデータの内包とアクセサは
他の言語の持つモダンな階層的scopeに管理工学的にはるかに劣る。
ここ勘違いしないように。
0709デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:58:49.50ID:Z2FoPQmM
この程度でテクニカルターム…
0710デフォルトの名無しさん
垢版 |
2018/10/09(火) 22:30:33.22ID:UgeI4/Dm
>>704
ようするにテストはプライベート変数を見たいってだけですよね?
テスト以外では必要ないですよね
カプセル化バンザイですよね?
0711デフォルトの名無しさん
垢版 |
2018/10/09(火) 23:05:57.02ID:5o1aZXWL
どれくらいのアクセス度がいいかはそのクラスのそれぞれによるところはある。
STLのvectorなんて見方によってはかなりオープンだけれどあれはあれで適切な開け方。
0712デフォルトの名無しさん
垢版 |
2018/10/09(火) 23:18:00.29ID:uKgwXIAC
内部の状態が心配なら
ちゃんとクラスに内部の状態を(コンポジションなら当然再帰的に)ダンプする関数ぐらいつけてんだろうな
つけてないならお話にならない

外部で状態を管理して
外部で構造体を監視するのと
そう変わらない
0713デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:01:14.01ID:j7g+1zT7
>>710
テストだけではないな
その関数が同一の結果を返す条件を固定したい
っていうかできねープログラムなんてぶっちゃけクソもいいとこだろ
0714デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:06:10.55ID:+GhPUDy2
仕事関係なく趣味でソフト作ったやつの意見は尊重できる。仕事だけで横文字多様してる奴のはフィルター推奨だな。
0716デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:54:19.42ID:T78UR1cm
本当にそれは状態として動的に管理すべき対象なのか
十分吟味してないだろ
0717デフォルトの名無しさん
垢版 |
2018/10/10(水) 01:07:23.22ID:YM9RoEIA
>>716
ん?
じゃあ、クソインスタンスがどんな状態でメソッドを呼んでも絶対同じ結果返すんだな?
その時点でメンバ変数いらねーけど
0718デフォルトの名無しさん
垢版 |
2018/10/10(水) 01:35:56.64ID:T78UR1cm
>>717
日本語読めるようになってからレスした方が良いよ
0720デフォルトの名無しさん
垢版 |
2018/10/10(水) 02:19:17.93ID:vuJDL2IF
Haskellでいう副作用なら標準入出力、ファイルio、時間、ランダムなどが副作用なるな
モナド並にリッチなシステムをオブジェクト指向で組んで副作用を過敏排除するなら楽しそうやんけ
0721デフォルトの名無しさん
垢版 |
2018/10/10(水) 06:36:14.84ID:az2ldVPt
>>713
> その関数が同一の結果を返す条件を固定したい

引数Aにaを入れる、引数Bにbを入れる、引数Cにcを入れる
引数A、B、Cで関数funcを呼び出す

メソッドAでaを入れる、メソッドBでbを入れる、メソッドCでcを入れる
メソッドfuncを呼び出す


関数の引数に値を入れる代わりにオブジェクトに入れるだけの違いでしか無い
0722デフォルトの名無しさん
垢版 |
2018/10/10(水) 07:54:35.27ID:75F81x8u
>>719
現在時刻しか返ってこねーだろ?
テメーのは指定してもいないのにサマータイム返すクソだろ
0723デフォルトの名無しさん
垢版 |
2018/10/10(水) 07:55:48.71ID:75F81x8u
>>721
でも入力値は使用する側が意図的に入れるものだけど
メンバ変数は何になっているかわからない

この差がデカイ
0724デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:08:36.10ID:WWPIMa8b
>>713
>その関数が同一の結果を返す条件を固定したい
同じ条件で違う結果が返ってくる関数ってハードウェア乱数発生器とかしか思い浮かばないんだけど、具体的にこんな関数ってのある?
0725デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:42:05.46ID:00uAZtDo
>>714
結局それも色々賢そうな事書いてるであろう仕事で書いてる人のコードが見てて凄いと思わないんだよ。
簡単な事を冗長的にフレームワークのようにしたコードが多くてただの社内での点数稼ぎなんだろうと伝わってくる。そして少し環境を変えてシステムを構築し直す時に問題が出て来るのって大抵そういうコードだったりする。
0726デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:49:14.91ID:az2ldVPt
>>723
> でも入力値は使用する側が意図的に入れるものだけど
> メンバ変数は何になっているかわからない

変数に文字列入れたって、それがどういうフォーマットで入っているかなんてわからんだろ

文字コードは何なのか、内部エンコーディングなのか
文字列の最初に文字列長情報がついているのか
文字の終わりは\0なのか

変数に数値入れたって、それがどういうフォーマットで
入っているかなんてわからんだろ

32bitで保存されているのか、64bitなのか

変数に入れようがメソッド呼び出そうが
ある一定の手順の操作を行えば、それで状態は確定するんだよ
0727デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:50:44.41ID:az2ldVPt
>>725
> 結局それも色々賢そうな事書いてるであろう仕事で書いてる人のコードが見てて凄いと思わないんだよ。

あぁ、プロの将棋を素人が見ても、凄さを理解できないのと同じだな
んで、何やってるか理解できないから、直すこともできない
0728デフォルトの名無しさん
垢版 |
2018/10/10(水) 09:25:59.20ID:lh7vR7+I
凄さを理解されなくても半分諦めてるプロって
ラノベ主人公でよくあるやつじゃん
0729デフォルトの名無しさん
垢版 |
2018/10/10(水) 10:18:56.28ID:00uAZtDo
素人とプラグラマーに根本的な差を感じてる奴はちょっと怪しいな。
0730デフォルトの名無しさん
垢版 |
2018/10/10(水) 10:58:13.09ID:00uAZtDo
素人だからこそ言い切れる。プログラミングって9割はツールを使いこなせるでしか無いよ。
将棋に関してもたぶん君は将棋について詳しくない人だと思うな。
0732デフォルトの名無しさん
垢版 |
2018/10/10(水) 11:48:06.40ID:00uAZtDo
ま、分かったじゃあそう思っとけ。このご時世どんなに賢ぶってもそんなに凄いプログラマーが日本に溢れてないのが透けて見えてるんだけどな。
0733デフォルトの名無しさん
垢版 |
2018/10/10(水) 12:27:49.69ID:AVL6Qil2
俺もオブジェクト指向を中途半端にかじった中途半端な優等生が、
これ見よがしに作った自社製フレームワーク(全然便利ではない)しか
見たことないわ

作ったのは一流大卒の大手ベンダーの開発推進チームなんだが、
日本人ってその程度だと思うよ

Stringクラスって便利ー!ぐらいのほうが幸せになれるぞ
0734デフォルトの名無しさん
垢版 |
2018/10/10(水) 12:30:14.49ID:AVL6Qil2
中途半端な優等生の成果物がその程度なんだから、
三流大卒のおまいらの成果物なんて推して知るべくだよな
0735デフォルトの名無しさん
垢版 |
2018/10/10(水) 12:35:08.25ID:Vh7YHzSV
べつに透かさんでも直接見えるやろw変なやつw
0739デフォルトの名無しさん
垢版 |
2018/10/10(水) 14:27:07.52ID:DTkCRDr0
学力ランキングを批判するだけなら良いぞ
だが、学力の対案は性格っていうのがダメだ
おかしな対案を出すより何も出さない方がマシ
0741デフォルトの名無しさん
垢版 |
2018/10/10(水) 17:55:56.61ID:DTc0bT+8
>>733
大手企業のフレームワークは派遣さんがアホなことをしないようにあえて機能を制限してる
生産性が多少犠牲になっても非常識な派遣さんがやらかしてしまうリスクを減らすことが重要と考えたんだね
そういう意味ではオブジェクト指向の基本であるカプセル化は非常に役に立っていると言える
0742デフォルトの名無しさん
垢版 |
2018/10/10(水) 18:01:10.70ID:az2ldVPt
>>741
なら派遣を使うことがリスクなのでそれをやめればいいと思います。

本当のリスクは・・・無理なコスト削減なのでは?
コスト削減のために、無駄なコストをかける。

うーん、馬鹿なのでしょうね
0743デフォルトの名無しさん
垢版 |
2018/10/10(水) 18:25:41.34ID:crjMMeGj
既存のフレームワークにケチつけたい人は
それ以上のものを作れる人なの?
それとも、作れないし作ったことも無いけどケチつけたい人なの?

煽りじゃなくて純粋な疑問
ぜひ、小学生のような瞳をしてそっと教えて欲しい
0747デフォルトの名無しさん
垢版 |
2018/10/10(水) 20:28:30.09ID:DTc0bT+8
>>742
派遣さんを切ったら中抜きで稼いでる人達が困る
派遣さんは使う、でもバカな真似はやらせたくない
このバランスが大事
0748デフォルトの名無しさん
垢版 |
2018/10/10(水) 20:31:47.32ID:1d6HAJSZ
最近は中抜きはまだまともな行為だと思えてきた。
バカがクソみたいな意見押し通してくるよりマシだ。
そういう意味でベイシックインカム賛成。
0753デフォルトの名無しさん
垢版 |
2018/10/11(木) 17:52:18.63ID:lqVwZR/7
んじゃクロージャ出たから

オブジェクト指向で末端の人、要は上の誰かが作った仕組みやクラス使って自分はそこからオブジェクト弄るだけの人は可能な限りクロージャ使いまくった方がと思うんだよな
よく委譲処理でこのふたつどちらか選ぶ事あると思うんだが末端なら即クロージャ
0754デフォルトの名無しさん
垢版 |
2018/10/11(木) 19:53:44.01ID:hrM+9Jlq
>>714
仕事は範囲が限られているからね
その仕事でやらなければならない範囲だけ出来れば
後は何が出来ようが出来まいが関係なくなるからね
一言で言えば視野が狭い
横文字を多用する人は狭い世界で通じてそれでokになっちゃってる
多種ではないし世界が兎に角狭い
実際ゲームなんかでは敵クラスを作って敵が増えるたびにオブジェクトを生成する
ってやると感覚的に凄く簡単
0755デフォルトの名無しさん
垢版 |
2018/10/11(木) 20:31:48.13ID:m9vsKwrk
>>752
どんな話題が面白いの?
このスレ的にはオブジェクト指向のメリットが説明できなければ
終わりなんだけど
0756デフォルトの名無しさん
垢版 |
2018/10/11(木) 20:34:12.11ID:U1kKB/4M
逆でしょ?説明されれば終わりなのがいやだから
答えが出てるのに、同じことをくり返し聞く
0757デフォルトの名無しさん
垢版 |
2018/10/11(木) 20:38:52.62ID:m9vsKwrk
>>756
え?メリット出てる?
見たことないよ
毎回、バカが長文書くだけで
品質向上なのか工数削減なのか、それが起こるロジックが全くの謎
0758デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:05:36.68ID:o+Pj5MkJ
犬がワン、猫がニャン
→なにそれ美味しいの?

大規模じゃないとメリット説明しにくいよ
→説明できないって、大規模なプログラムを経験して体で覚えろと?

要するに、簡単には説明できないよ
→だったら学習コストとの天秤では?

俺の中ではこんな感じ
0759デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:06:47.80ID:U1kKB/4M
品質向上だし工数削減にもなる

馬鹿はそこでなぜか品質向上と工数削減のために
追加作業が増えるとダメだと話を聞かない
0761デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:48:27.62ID:29n02hV2
いわゆる土方候補生か
0762デフォルトの名無しさん
垢版 |
2018/10/11(木) 22:35:19.32ID:FTrPBrPb
>>753
関数ポインタと汎用のvoidポインタ渡すインターフェイスより明らかに良いとは思うけど、
ガベコレない言語では上手くいかんだろ。
その場合は継承させるしかないっていうc++の選択は間違いじゃない。
0764デフォルトの名無しさん
垢版 |
2018/10/12(金) 00:47:17.48ID:U1NbXGxJ
オレぐらいのレベルでないと
オブジェクト指向は使いこなせない
0765デフォルトの名無しさん
垢版 |
2018/10/12(金) 00:47:48.97ID:U1NbXGxJ
だいたいわかる

低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
0767デフォルトの名無しさん
垢版 |
2018/10/12(金) 07:03:34.63ID:ogDn0rIL
>>762
全く解消されてないだろ。。
キャプチャーしてる変数の寿命を考慮してなきゃならんし、こんなん使わねーわ。
0768デフォルトの名無しさん
垢版 |
2018/10/12(金) 08:23:50.28ID:8+F5vpV5
型の問題と寿命の問題を分離しない
OSとGUIを分離しない
フルスタックな環境を作る密結合指向って感じ
0770デフォルトの名無しさん
垢版 |
2018/10/12(金) 11:04:22.00ID:8+F5vpV5
>>769
その設計にオブジェクト指向が関与していると疑われている
その問題の解決にオブジェクト指向は全く寄与しない、と宣言すれば疑いは晴れる
0772デフォルトの名無しさん
垢版 |
2018/10/12(金) 17:19:28.65ID:5jm0P0/q
オブジェクト指向信者もDI信者も同じ臭いがするね

【Java】DIコンテナって本当に便利か?
http://mevius.5ch.net/test/read.cgi/tech/1219242206/

次は何を担ぐのやら


外国で流行って育っていくのだから、それなりのメリットはあるんだろうけど、なぜか仕事では恩恵にあずかったことはない
0773デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:33:03.38ID:4mK9L0RW
設計のセンスの無い奴はどんな流行が来たって糞な設計しか出来ないんだよなぁ
センスがある奴はなんとなくどんな流行のスタイルでもこなして来るからなぁ
0774デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:41:34.47ID:CecLyO81
どーでもいーけどコーディングの事設計てゆーのいーかげん恥ずかしくね?w
0775デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:45:43.93ID:4mK9L0RW
は?
設計はコーディングじゃねーよw
四角い箱描いて矢印や電線で繋げて遊ぶ奴だぞ。
0776デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:45:57.27ID:SyXP90mj
ある一定以下に対して理解できるような教範が出てこない
だから一部の人しか使えないようになってる
結局は出来る人の間で持て囃されるだけになってしまう
この何か新しいやり方を創造するのと一般に使えるようにする
というのは本来両輪なんだけど
普通以下の人達が使えるようになる教範を作る
というのはかなり難しい上に
それをやる人には余りメリットがないから
なかなか出てこない
だから
オブジェクト指向プログラミングにしても
関数型プログラミングにしてもその他の技術にしても
広く(普通程度以下)使われるのは難しいし
このスレのタイトルみたいな感想を持つしかなくなる
後は自分が出来るけど他の人が出来ないままのほうが出来る人には得だから妨害する
みたいなのが居るくらいだろうかねぇ
0778デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:12:49.59ID:CecLyO81
ガチでわかっとらん奴やったw
0780デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:21:05.43ID:xVyRtSc0
少なくともこのスレにいるような低学歴知恵遅れのドカタには
オブジェクト指向言語を適切に使いこなせない
0781デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:27:17.84ID:d1sPni1g
少なくともこのスレにいるような低学歴知恵遅れのドカタには
オブジェクト指向言語を適切に使いこなせない
0783デフォルトの名無しさん
垢版 |
2018/10/12(金) 23:12:30.21ID:xVyRtSc0
日銀短観のDIは便利
池沼あげのDIはtraitsなみにウンコくさい
0784デフォルトの名無しさん
垢版 |
2018/10/13(土) 10:26:58.14ID:YNebL+WU
今時DIも使いこなせない人材とか組織にとってのリスクでしか無いよ
あっちこっち結合しまくったクソコードを社内リポジトリにばらまくとか悪夢そのものじゃん
0785デフォルトの名無しさん
垢版 |
2018/10/13(土) 10:58:13.65ID:H4Y+M12v
DI使っても結合しまくったくそコードはくそのままだ
業務分析の時点でコケて役割分担がぐちゃぐちゃなんだからDI導入したって解決しない
0786デフォルトの名無しさん
垢版 |
2018/10/13(土) 21:25:17.45ID:YNebL+WU
>>785
DIを使わないから業務分析の時点でコケて役割分担がぐちゃぐちゃになるのでは?
設計者にDIを学習させてDIを使う前提で設計させればそのあたりの分担がキレイになるように意識して設計するようになるよ
0788デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:15:51.44ID:L3Dj2/gz
cのたくさんの構造体にいっぱい変数や関数ポインタもたせて
それ入力にして処理するのと同じ
0789デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:29:25.59ID:HA3RUpZg
DIはたしかにきれいな設計になるが、めんどくて工数がかかる。
作業者にはYAGNIのほうが優先度高いから勝手に採用できない

だからそういうのはトップエンジニアが最初に管理方針としてきめとくもんだ
末端のプログラマーに責任押し付けるのは酷
0790デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:38:19.49ID:HA3RUpZg
今のDIはめんどすぎる
既存コードをいじらないで中身をすげかえる
もっと楽な方法はないものか
0791デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:42:51.86ID:An0DfPZD
DIは言語自体に組み込まれるべきもの
高級言語はどんどん高級になるべきだが
ガベコレ搭載あたりで停滞してしまったからね

本来はDIやデザインパターンやユニットテストや
フレームワークまで高級言語の仕様に含めなきゃいけない
0792デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:44:08.09ID:L3Dj2/gz
インターフェースを決め打ちにしたテンプレート作る間抜けな作りと
大してかわらないからな
0793デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:48:54.83ID:c+yfSqJ1
使用者との合意の無いインターフェースほどクソなモンは無い
独りよがりで考えたものは全部クソなので誰にも見られないうちに捨てて欲しい
0794デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:54:18.52ID:An0DfPZD
逆に言えば使用者との合意のあるインターフェースは問題ない
ということになってしまう。
0796デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:21:29.03ID:An0DfPZD
>>795
あ、そうだって認めたねw

つまり、お前はインターフェースに問題があるとしようとしていたようだが、
俺はインターフェースには問題ないという話への誘導に成功したわけだ
0797デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:38:37.37ID:L3Dj2/gz
クソが余計なことをして
余計にクソなコードを生産するサイクルが途絶えることはない
0798デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:45:30.90ID:An0DfPZD
SEが余計なことをして
クソコードを量産することになるのは
よくある話だな
0801デフォルトの名無しさん
垢版 |
2018/10/15(月) 20:24:46.22ID:vo4hBZ/w
なあ、おまえのクラス内に公開変数作って、そいつをインクルードして関数呼び出し時にポインター参照で指定するなんてインターフェス、誰が言い出したの?
しかも各関数は自前のその公開変数を直接参照して動いてるし。
こんな中途半端なやり方するなら、最初から隠蔽しちゃってくださいよ。
0803デフォルトの名無しさん
垢版 |
2018/10/15(月) 21:16:54.08ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
0806デフォルトの名無しさん
垢版 |
2018/10/16(火) 07:57:35.98ID:Z3LiiLXa
オブジェクト指向を厚く語るヤツは
お勉強いまいちのヤツが多くて信用できないけど、
さらっとオブジェクト指向で書いたようなライブラリを公開してるヤツが
高学歴というわけでもない不思議な業界だよね
0809デフォルトの名無しさん
垢版 |
2018/10/16(火) 10:44:44.96ID:KsONw+2K
結局関数プログラミングが良い
って書いてある様に見えるけど
オブジェクト指向に対して何がどう良いのかは書いてないように見える
オブジェクト指向の問題点の指摘自体は有ってるように思えるけど
そもそもそういう使い方をするものじゃない
って気がするなぁ
現実世界とどうたらこうたら
こういう書き方をする人は自分からみてほぼ間違えている様に見える
騙された
って書いて有るけど
オブジェクト指向ってそんなに劇的に何かが壮大に変わるわけじゃないんだけど
その辺を誤解しているかオブジェクト指向を宣伝している奴がそもそも捕らえ違いをしている
そう自分には感じる事が多いなぁ
0810デフォルトの名無しさん
垢版 |
2018/10/16(火) 10:49:18.08ID:hiAtkD1Q
現実世界とマッピングさせようとしたらそりゃ上手くいかんし
バナナモンキージャングルになるわな
あほくさ
0811デフォルトの名無しさん
垢版 |
2018/10/16(火) 11:00:52.85ID:sVO7hlJ7
アクセス修飾子について分かりやすい説明しているサイトない?
privateからゲッター → セッターの理由がわかんないんだよな。
publicとの違いがなんなのか
0813デフォルトの名無しさん
垢版 |
2018/10/16(火) 11:07:25.98ID:HqnwAz6t
ゲターもせターもパブリクーにするなら
アクセサーとフィールドの違いはない
0816デフォルトの名無しさん
垢版 |
2018/10/16(火) 13:06:07.08ID:GbK/byr7
>>811
わかんないなら使わなくていいよ
用もないのにゲッターセッターを用意しろってのは間違って広まった悪いスタイルだ

多態したいとか、書かれてるようにログを取りたいとか、アクセサがあるとインスペクタで値が見えて便利とか
なんか用事がある時だけでいい
0818デフォルトの名無しさん
垢版 |
2018/10/16(火) 14:20:20.47ID:cFNbEHw0
言語仕様で何とでもなるものにいちいちゲッターセッター付けるの無駄じゃね?
0819デフォルトの名無しさん
垢版 |
2018/10/16(火) 14:59:03.86ID:8J+M5yKD
それがプロパティなわけだが
ゲッターセッターと機能が重複しててほぼシンタックスシュガーで邪魔
0821デフォルトの名無しさん
垢版 |
2018/10/16(火) 16:52:45.97ID:nQomBRvE
セットなんちゃらって書く場面を考えると
なにかの状態遷移を伴うケースが大抵である
だとしたら、それを具体的に示す関数を書くべきなのでは
初期化が不便だというのもなんか違う

設定するメンバの組み合わせは決めておくべきではないか
それに併せて初期化関数を用意するだけ
0823デフォルトの名無しさん
垢版 |
2018/10/16(火) 17:10:16.39ID:JHQMnpCL
>>821
> セットなんちゃらって書く場面を考えると

セットなんちゃらって書くと思うからいけない。
本当に書きたいことは、属性の変更
0824デフォルトの名無しさん
垢版 |
2018/10/16(火) 18:13:44.49ID:AosmVSTK
いつもクラスの例にでてくるPersonクラスはNameとAgeを持ってるけどあれ適当だよな
Ageは不変じゃないからいつの時点のAgeなのかもわからん

本来は誕生日を持っておいてAgeが必要なときにいつの時点の年齢が欲しいかを引数で与えて計算すべきなんだよな
0825デフォルトの名無しさん
垢版 |
2018/10/16(火) 18:57:36.52ID:PnSVhV/K
言われたらそうだなw盲点だった
0826デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:03:13.54ID:JHQMnpCL
そこででてくるのがプロパティだよ
ageは属性かメソッドかといったら属性だろ?

一見属性にアクセスしているようで、内部では
いろんな処理を行って値を返す。
それがプロパティ
0827デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:04:22.70ID:JHQMnpCL
>>825
盲点でも何でも無いよw

例えば、Configクラスであっても、いつの時点のConfigかわからんだろ?
一年前の設定がほしいかもしれない。
0829デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:22:26.29ID:AzP++FB2
状態状態ってよく悪者にされるけどOOPの肝はのへんににあると思う
#include <iostream>
struct logger {
std::ostream *out;
logger() : out(0) {}
void p(const char *s) {
if (out) *out << s << std::endl;
}
};
void f(logger &l) {
l.p("foo");
l.p("bar");
}
int main() {
logger g;
f(g);
g.out = &std::cout;
f(g);
g.out = &std::cerr;
f(g);
return 0;
}
ログの有効無効なんかをこうやって切り替えるのって
そんなに悪いこと?
0830デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:24:41.24ID:GbK/byr7
Delphiなら配列の構文で引数付きプロパティを扱えたりするが
そんなことするぐらいならpersonからはbirthdayだけ見せて
今何歳かなんて呼び出し側で勝手に計算しやがれって思うわw
0832デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:27:08.86ID:JHQMnpCL
Nameも不変じゃないし身長体重性別だって不変じゃない
商品の値段も不変じゃない
不変のものなってまず無いだろう。

つまりは、オブジェクトの状態の過去のスナップショットを
オブジェクト自身に持たせるのが正しい設計かという話
0833デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:30:01.71ID:GbK/byr7
>>831
だから>>824は時刻を引数で与えるよう提案しているわけだ。最初からそういう話
personクラスが中で勝手に現在時刻を取得してたりしたら複数インスタンスのageの基準がずれたりして
使い辛くてかなわんだろう
0834デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:33:44.42ID:JHQMnpCL
>>833
その理屈だと結婚などでNameが変わることもあるから
Nameにも日時を与えるようにしないといけなくなる
0836デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:35:57.94ID:JHQMnpCL
本質は>>832に書いたとおり

> つまりは、オブジェクトの状態の過去のスナップショットを
> オブジェクト自身に持たせるのが正しい設計かという話
0837デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:37:46.55ID:AosmVSTK
誕生日だけが提供されていたらコードのあちこちで年齢を出すメソッドが別々に書かれるかもしれない
同じ処理が複数で書かれてそれも同じ処理とも限らない

ロジックが散らばるのはよくないからクラスが持つべきではないかと思う
0838デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:38:15.60ID:eMqRZshQ
大小比較のアルゴリズム自体を引数で渡したり、
オブジェクト指向っぽくてエレガントに見えはするけど、
一般プログラマには可読性低いなー
と思ったり。

一昔前のオブジェクト指向設計が売りの会社たちは、
オナニー会社として、まるで奮わなかったもんな

やっぱ適正レベルってもんが大事だよね
0839デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:40:14.57ID:GbK/byr7
>>837
そこは、年齢に限らず単に時刻の差を計算する処理として
dateクラスのメソッドかグローバル関数であるべきでは
0840デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:41:53.17ID:eMqRZshQ
C++はベターCとして、文字列いじるときとか楽できればいいんじゃね?

でもmallocとかメモリ管理が面倒だから、C#やJavaに流れるよね
要員確保できるもの
0841デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:43:35.70ID:AosmVSTK
>>839
間違っても年齢を出す処理はdateクラスに持たせるべきではない

誕生日から年齢を出すのは実は結構めんどくさい
日本での年齢は日本の法律にのっとって決まってる
0842デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:43:50.71ID:eMqRZshQ
だいたいそういうのは業務共通クラスとしてstaticメソッドてんこ盛りで置いておくよね
0843デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:46:28.35ID:JHQMnpCL
つーか簡単だろ?

日付クラス。もしくは日付補助クラスに
2つの日付の差を年で返すメソッドを追加する

Personクラスには、誕生日とageプロパティをもたせ
ageプロパティは、誕生日と今日の日付の差を
さっきの年で返すメソッドを呼び出すだけにする


テストは日付クラスのメソッドはそのまま年計算のメソッドのテストを書けばいいし
Personクラスのテストは、単体テストの観点から日付クラスが
外部モジュールになるので年計算のテストは不要(すでにやってる)
年計算のメソッドを期待したとおりの引数で呼び出していることの確認と
返り値をそのまま戻しているかを確認すればいい


特定の年月日の年齢が知りたいなら、誕生日プロパティと特定の日付から
日付クラスの年計算メソッドを呼び出して差を計算するか、
適切な場所があるならそこにメソッドをおけばいい
0845デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:47:46.46ID:JHQMnpCL
dateクラスに持たせるべきではないというのなら
年齢計算クラスに持たせればいいだけだな
0846デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:47:59.81ID:GbK/byr7
>>841
すまん、ならdateクラスは撤回する
国にも依るとなると尚更personにも持たせたくないな
単にグローバル関数にするか、いっそそれ用のクラスツリーをでっち上げて後々多態できるようにするか、かなあ
0848デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:49:01.40ID:JHQMnpCL
国によって年齢計算のアルゴリズムを変えたいというのなら
ストラテジーパターンの出番だなw
0849デフォルトの名無しさん
垢版 |
2018/10/16(火) 19:54:14.32ID:nQomBRvE
みんな賢いねぇ
0850デフォルトの名無しさん
垢版 |
2018/10/16(火) 20:36:04.05ID:83dvK2wh
俺やったらageプロパティやageオブジェクト作るんじゃなくて
ageクラス作ってpersonのデリゲートメソッドにageクラスオブジェクト返すものを作る。これで年齢とはそもそもなんぞや定義はの面倒な過程の話にも対応出来る
だが書く途中でゲッターですませやとキレだすと思う
0851デフォルトの名無しさん
垢版 |
2018/10/16(火) 20:39:51.39ID:+sj1AQoJ
普通に考えたら person と基準日を表すオブジェクトから年齢を返す関数を作るってことになると思うんだが。
0852デフォルトの名無しさん
垢版 |
2018/10/16(火) 20:42:25.71ID:H029zngb
>>850
定義もわからんもの作んなカスwwww
0854デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:05:40.03ID:t+SGPyRj
もうメンバー変数とメンバー関数が混在するクラスは作るな
関数しかないinterfaceで十分
関数が一つしかないならlambdaでいい
0856デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:42:29.73ID:H029zngb
正直必要かどうかはわからない
ただおまえが欲しい
だめか?それだけじゃ?
0857デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:45:36.90ID:VMcjBADQ
その低学歴知恵遅れが作ったメソッドは
うるう年考慮してなさそうで変なバグが入ってそうだわ

2000年10月20日生まれなら
普通にintで
(20181016-20001020)/1000
でしまいだからな
0858デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:48:30.57ID:VMcjBADQ
そもそも常識的に
特殊なケースを除いて日付の引き算で
経過年数がかえってくるという発想はないからな

経過日数はあったとしてもな
0859デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:52:46.85ID:VMcjBADQ
(20181016-20001020)/10000
こうだな
危ない。。。
0860デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:54:43.61ID:VMcjBADQ
このとおり、
やっぱりな低学歴知恵遅れが
オブジェクト指向にふれるのは危険

オレぐらいのレベルがないとムリ
0861デフォルトの名無しさん
垢版 |
2018/10/16(火) 23:02:22.64ID:+0KL0EUx
俺の周りじゃあ
バカほど大喜びで使っているよ
0862デフォルトの名無しさん
垢版 |
2018/10/17(水) 08:20:36.48ID:K4tsdk4L
>>832
勝手に変わるか、と言う意味では、生年月日は不変だけど、年齢は変わるんでは?

>>833
なるほど。そもそもそれはプロパティとは言ってなかったんだな。
それはおっしゃるとおり、関数にすべきだと思う。
0863デフォルトの名無しさん
垢版 |
2018/10/17(水) 08:22:14.61ID:K4tsdk4L
>>857
年齢はその前日の満了を持って加算される、のルールで抜けるパターンがあるんじゃね?
半角さんは間抜けなの?
0865デフォルトの名無しさん
垢版 |
2018/10/17(水) 09:56:27.08ID:18gBK5Xa
大抵の場合、正しく理解せずに中途半端な実装してる案件にぶち当たって嫌な思いした奴がここに集うんだろ?
0866デフォルトの名無しさん
垢版 |
2018/10/17(水) 10:09:33.91ID:nljGc94P
実装レベルの議論してるやつと設計レベルの議論してるやつ
さらにもーちょい上から俯瞰して物を言ってるやつ
全部ごちゃ混ぜになってて面白いね
0867デフォルトの名無しさん
垢版 |
2018/10/17(水) 12:01:54.30ID:vk6wOayh
自分はプログラムの観点からだけで話してる
上にあった英語の奴もプログラムが主だったなぁ
設計は知らない
話題をスレで分けた方が良いのかねぇ?
0868デフォルトの名無しさん
垢版 |
2018/10/17(水) 12:20:31.30ID:BZlH8+Xm
設計レベルの話とかでとらんけどw
0869デフォルトの名無しさん
垢版 |
2018/10/17(水) 14:05:39.44ID:K4tsdk4L
やっぱ平年の3/1に、うるう年の2/29に生まれた人の年齢が狂うな。
しかしこういう知ったかぶりが、ひどいバグを生んで改修大変になる。
と言うか、これを保存時にやられるとデータ修正ものなので、場合によっては偉いさんが頭下げに行って、出世の道が遠のくパターン。
0870デフォルトの名無しさん
垢版 |
2018/10/17(水) 14:07:46.09ID:18gBK5Xa
設計って、機能ごとに必要な処理をリストアップしたら、そのまんまオブジェクト指向なんじゃね?
0871デフォルトの名無しさん
垢版 |
2018/10/17(水) 15:04:16.60ID:fcCyZegY
「誕生日の前日が終了する瞬間(すなわち誕生日をむかえる午前0時00分の直前)
に1歳を加えることになる」の部分の解釈には
前日に1日加えると解釈される場合と
当日に1日加えると解釈される場合の2種類がある
0873デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:00:02.67ID:K4tsdk4L
>>871
一番問題になる学教法にならうべきじゃないんかな。
前日に歳を取る、ただし前日の24:00を使用する。表記や概念的には、って感じで。
だから、4/1生まれは4/2生まれと学年が違う。4/1生まれは、3月中に歳をとってるから。
0874デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:02:31.73ID:aR4OF1u3
誕生から1年経過することに1つ年を取るというのが定義であって
誕生日なんて全く関係ありませんよ。人間のクズども。
0875デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:08:03.45ID:DrCNXevb
学校教育法17条 「保護者は、子の満六歳に達した日の翌日以後における最初の学年の初めから・・・」
0876デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:09:22.06ID:t+3zMNmx
年齢の扱いをどうするかは法律で強制されているわけじゃないので
システムによって異なってもOK

だからどういう実装でも公平な実装であれば問題ないといえる。
例えば20歳おめでとうキャンペーンで、20歳になっていなくても
その月に20歳の誕生日を迎える人を対象にしても良いわけだ

だから何が正解かを議論することに意味はない

仕事の話をするなら
年齢の計算はどうしましょうか?と客に仕様を聞くべきか
年齢の計算はこのようにしますがよろしいですか?と客に仕様の確認するべきか?
そういったことを考えたほうが良い
0878デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:11:46.81ID:4yuTjZOF
式の間違い云々よりも、皆ageはただの例示であることは前提とした上でOOPでどう表現するかの話をしてたのに
いきなり実装に踏み込んでくる思考が謎い
0879デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:15:47.15ID:DrCNXevb
Personインスタンスのageのゲッターで計算しとく。
Personインスタンスが無い時にも年齢の計算が必要になったら、クラスメソッドにしてPersonのゲッター内部から使う
0880デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:18:57.58ID:t+3zMNmx
プロパティが優れているのは
ageのように、

年齢?そんなものオブジェクトのフィールドにしておけばいいだろ?
え?生年月日から計算するようにしたい?
なら、そのフィールドをプロパティにして計算して返すだけだな

とクラスのインターフェースを変えることなく
実装を関数に変更できるところにある
0884デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:59:07.49ID:cz0N+1z5
>>882
マジかよ保険会社最低だな
バレンタイン広めた菓子会社と同じくらい最低
0885デフォルトの名無しさん
垢版 |
2018/10/17(水) 17:15:22.09ID:K4tsdk4L
>>876
まあ、わかってて公平な実装と、それで良いと思ってるけど漏れがある実装は、仕様と不具合と大きく異なるけどね。

>>878
ほんといつも、半角さんがでしゃばった上に間違うからこんな事になる。

でもAgeはオブジェクトのプロパティとしては俺はおかしいと思うよ。
環境によって刻々と変わったり、恣意的に変えられる値は、オブジェクトとオブジェクトの演算で出るべきだと思う。
環境オブジェクトなり、指定時刻オブジェクトなりの、時刻を表すオブジェクトと、Personを組み合わせて、初めてAgeが出るんだし。
Personを含む生年月日があるオブジェクト.ageAt(時刻オブジェクト point)で年齢オブジェクトが出るなら理解できる。
0886デフォルトの名無しさん
垢版 |
2018/10/17(水) 18:34:11.00ID:K4tsdk4L
言い換えると、オブジェクトのプロパティはそのオブジェクトだけで表現可能なものに縛ったほうが良いと思う。
0888デフォルトの名無しさん
垢版 |
2018/10/17(水) 18:58:38.46ID:DrCNXevb
特定の日時の年齢が必要になったら
getAgeからgetAgeAt呼べばいいだけやん
言語によっていろいろやり方あるけどね
getAgeAt(Date.Today)しか書かれてないプログラムとかマヌケじゃん

既存クラスにメソッド追加できる言語なら
最終的にはDateにyears_between何ちゃら書く事になりそうだが
0889デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:05:52.01ID:MwWLHD/k
それで言ったらPersonオブジェクトがどういう扱いなのかによってもAgeがプロパティか関数か違いそうだな。
データベース的な一回表示するだけだったら関数でも良いけど、ゲームやSNSのアバター的なのだったら、ステータス表示するたびに計算してたら無駄が多い。
誕生日イベントでもない限り1日くらいは1歳違う程度は許容されるなら、オブジェクト作成時(ログイン時)に計算して結果をAgeに入れるだけとか、誕生日イベント発生時に計算して入れるだけとかした方がよくないか?
モバイルゲームとかなら尚更。
0890デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:07:22.09ID:pcmrmHBT
お前らQiitaでも喧嘩してんのかよwwwww
0891デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:21:58.46ID:QBZICbug
くだらねー議論してないで業務エキスパートに年齢の扱いを聞いてこい
それが答えだ
0892デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:41:36.97ID:lTftiJN1
バッチが日付またぐけど開始した日で計算したいとなると「当日」をそういう扱いにするようにプログラム書くんだろうがインターフェースを変更する必要は無さそうだな
0894デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:48:24.97ID:MwWLHD/k
そらそうよ。
一体何に細かく指示してると思ってんの。
それに比べれば全然短いわ。
0896デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:48:03.60ID:SmhZ3W9+
保守性がどーでもいいならスマートUI + 振る舞いレスオブジェクト + トランザクションスクリプト + スパゲティクエリで短期的な生産性を上げることができる
保守性と生産性を同時に上げる方法は残念ながらオブジェクト指向しか知らない
0897デフォルトの名無しさん
垢版 |
2018/10/17(水) 21:11:18.05ID:MCL000/y
>>893
いわゆる職業病だな
0900デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:12:39.18ID:Ny9Q/0jK
低学歴知恵遅れは日付クラスにそんな頭悪いコードを入れると書いてるからな
>>843 ← このとおり
0901デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:16:19.44ID:Ny9Q/0jK
普通に考えてな
日付クラスにそんな頭悪いコードなんかいれない

低学歴知恵遅れはいろんなもんに利用する日付クラスに
年齢求めるコードをいれると書いてる

低学歴知恵遅れがクラスを設計()すると
こういうバカな作りになるという典型的な例といっていい

この板にいるような低学歴知恵遅れにはやっぱりな
オブジェクト指向なんかムリ
0903デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:21:21.35ID:Ny9Q/0jK
ただの起算日の違いの問題だからな
計算方法はかわらない

そもそも日付クラス()なんかやるようなもんじゃない
0904デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:26:45.89ID:Ny9Q/0jK
ともかくあきれるぐらい頭が悪い
0905デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:29:57.57ID:t+3zMNmx
>>901
日付クラスに入れるのは、年の差を計算するロジックやで?
日付同士の差を求める演算。結果の年だけを取得する

誰が年齢の差のはなししてるんだよw
0906デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:30:36.34ID:MwWLHD/k
確かになー。。。
と言うか、大抵のフレームワークに日付クラスがあるのに、わざわざ改造して年齢計算メソッド付けるって発想が浮かばない。
普通はPersonに付けるだろうし、スマホゲームとかならクライアントに計算させてバッテリー減り過ぎも困るから、場合によっては鯖側に管理クラス作ってそっちに付ける。
0907デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:30:39.23ID:Ny9Q/0jK
ホント頭悪いわ
0909デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:35:22.24ID:t+3zMNmx
>>906
日付クラスに入れるのは日付の計算(もちろんすでに入ってるのならそれを使う)
年齢はPersonクラス、仕様が一致してるなら日付クラスのメソッドを呼ぶだけでいい

日付の計算と年齢の計算は(仮にロジックが一致していたとしても)別物
そういうことを考えるのが抽象化
0910デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:54:19.67ID:MwWLHD/k
>>909
入ってるのは今の所見たことないけど、メソッドにする程か?
日付クラス同士の足し算引き算出来るはずで、年数計算って結局ただの引き算やぞ。

別に駄目とは言わんが、Ageメソッド内で「今日の日付−生年月日」するのと、「日付クラス.年数計算(今日の日付,生年月日)」するのと手間は同じ。
むしろ長くなる。
0912デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:05:08.82ID:t+3zMNmx
>>910
Personクラスの属性にしていれば、
内部の実装が変わってもインターフェースを
変えなくてすむんだよ。

それにオブジェクト指向の特徴だが人間のメンタルモデルに近いから
理解しやすい。例えば「あなたの年齢は?」みたいに聞くだろう?
年齢を知りたいときに、あなたの生年月日は?って聞いてからわざわざ計算しないだろ?

"あなた"が知っていることは、"あなた"に問い合わせればよい。
というのが人間にとって一番理解しやすいんだよ
0913デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:05:26.01ID:Ny9Q/0jK
日付クラスの - オペレーターで
経過日数ではなく経過年数を返す作りになるのか。。。

さすが低学歴知恵遅れがいうことは斬新だわ
0914デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:07:02.95ID:Ny9Q/0jK
やっぱり低学歴知恵遅れって感じ
もうすぐに分かってしまう

まともな教育を受けてればでてここないような発想が
ポンポンでてくる

低学歴知恵遅れのレスってすぐにわかる
いちいち低学歴知恵遅れですと自白するからな。。。
0916デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:09:52.03ID:Ny9Q/0jK
バカはバカであることに気づけない
ホントになよくわかるわ
0917デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:17:38.65ID:pcmrmHBT
関数型論者だったら「人」はDNAだけで表し、生まれた日、場所、その他その瞬間の宇宙の諸環境をすべて引数で与えて最後に経過時間も与えるのかな?
なんだ、関数型論者って決定論者だったんだな。
0918デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:30:29.90ID:4yuTjZOF
>>910が日付の計算が日付クラスのメンバーになっているのを見たことがないと言っているので
それに対して俺は>>911で知らないうちに演算子オーバーロードの恩恵を受けているのではと言っているだけ

「今日の日付−生年月日」は日数で「日付クラス.年数計算」の「年数」とは一致しないが
そんな事は気にせずに単にdateの計算をどこに置くかの話をしているだけ
繰り返すが日付自体がただの例示だから、単位だの閏年だの細部を詰めることに意味はないと皆わかってる

そこから一人実装を始めたり短絡的にoperator -で年数を返すと変な結びつけ方をしたりして
自分が作り上げた架空の敵相手に憤ってしまうのがもうね
0920デフォルトの名無しさん
垢版 |
2018/10/17(水) 23:48:24.78ID:MwWLHD/k
>>913
あれ?日付クラス(Date)の中にYaer、Man、Dayって年クラス、月クラス、日クラスって無かったっけ?
すまんね。
だいぶ離れてて、うろ覚え。

>>912
うん?
だからPersonクラスがAgeプロパティだかメソッド持つんだろ?
日付クラスだか時間クラスだかが年数計算メソッド持つ必要は無い。
時間はただ時間、日付はただ日付。
年齢もただ年齢ってのもある意味じゃ正しい。
システム上不都合なら管理クラスに計算させて、結果を受け取るだけでも良い。

オブジェクト指向は、必ずしも現実と同じ区分けでなくて良い。
責任分担をキッチリするための道具でしかない。
保守性に問題なければ、システムの特性に合わせてどちらが管理するのか決めれば良い。
(むしろ現実と離れることが多いから、あんまり現実だとこうだから〜とか、こだわり過ぎない方がいい)
0923デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:08:50.77ID:8YBQxCvu
るびぃ〜すとwwwww
0924デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:19:48.94ID:qf9NxgCD
>>918
年齢計算や年数計算は大事な場所じゃ無かったし、言う通り日付クラスに年数計算メソッド付けるべき?が話題の中心だったと思う。


年齢計算や年数計算は
_______日付クラスA = 今日の日付 − 生年月日(または任意の年月日)
return 日付クラスA.Yaer

とかだった気がする。
うろ覚えだが。
0925デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:25:14.97ID:855u7n6N
難しい物なんだから
話が長くなるのは当たり前
既に知っている事を話す以外だと
相手に解る様に話すのに分量が掛かる
当然だろう
0926デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:35:20.72ID:/ofNkRJS
>>924
日付(年の差)計算と年齢計算をごっちゃにしてはいけない
日付クラスにつけるのは年の差計算処理
年齢の計算のことは考えてはいけない

Personクラスにつけるのは年齢プロパティ
中で日付クラスを使うかどうかは実装による

年齢計算の方法が複数あるというのなら、ストラテジーパターンを導入し
アルゴリズムを切り替えられるようにしておけばいいだろう
>>843で書いたことの繰り返しだがな
0927デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:36:08.12ID:THsg9J3q
いや低学歴知恵遅れは
頭ワルイという病気

不治のヤマイ
0930デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:56:35.59ID:qf9NxgCD
>>921
これ言うと元も子もないが、実際にはアカウント作る際に生年月日と年齢を別々に書かされる通り、計算なんて何処もしちゃいない。
気が付いたらユーザーが書き直してねって。

お勉強でもなけりゃ年齢計算はしない。
年計算用途の方が実践で使われてるかもね。
0931デフォルトの名無しさん
垢版 |
2018/10/18(木) 01:06:50.02ID:qf9NxgCD
>>926
うーん?
誕生日を生年月日にしただけで、同じ意見に見えるが。。。
閏年に誕生日が〜とかも含めるって事?
だから、実際のサイトじゃ年齢も入力させる形なのかね?
0932デフォルトの名無しさん
垢版 |
2018/10/18(木) 06:47:29.90ID:8rVApEa4
class Age {
public DateTime BirthDay { get; }
private DateTime Today { get; }
public int Years { get {
int b = BirthDay.Year * 10000 + BirthDay.Month * 100 + BirthDay.Day;
int t = Today.Year * 10000 + Today.Month * 100 + Today.Day;
return (t - b) / 10000; }}
public Age(DateTime b, DateTime t) { ...

class Person {
public DateTime BirthDay { get; set; }
private DateTime Today { get; set; }
public Age Age => new Age(BirthDay, Today);
public Person(DateTime b, DateTime t) { ...
0934デフォルトの名無しさん
垢版 |
2018/10/18(木) 08:15:28.19ID:0Dh4HQ87
半角さんは設計スキルないんだからもう書き込むなよ。
実際間違った実装を想定して設計の話ししただろ?
0935デフォルトの名無しさん
垢版 |
2018/10/18(木) 08:19:16.70ID:0Dh4HQ87
>>930
電子カルテだとまあまず患者マスタに年齢は持たないよ。
いつ時点に、何歳か、って方が大事だから。
どのタイミングで年齢計算するかとなると、入院中に歳を取るパターンがあるので結局毎日計算するハメになる。

それこそ業務によると思うが。
ただ普通のウェブサイトでも、生年月日聞くところで年齢を聞かれる事はあんまり無いんじゃないかな。
0936デフォルトの名無しさん
垢版 |
2018/10/18(木) 08:45:54.88ID:qf9NxgCD
>>935
なるほど、カルテだったら閏年で何歳ってより、生物として生まれて何年目、的な意味合いの方が重要だし、有りかも。

年齢まで求める場所減ってるか知らないけど、情報的な価値は低いかもね。
統計的に扱うだろうから、生年月日で何年生まれか分かれば十分だし。
0937デフォルトの名無しさん
垢版 |
2018/10/18(木) 11:41:18.85ID:ia232fMX
手術した日から何年経ったか表示してと言われて裏で誕生日クラスが使われる
0938デフォルトの名無しさん
垢版 |
2018/10/18(木) 12:26:47.14ID:PmW8gRMT
>>891
>くだらねー議論してないで業務エキスパートに年齢の扱いを聞いてこい
>それが答えだ

これで解決する議論をぐだぐだとまあ…
何がしたいんだ?
年齢にまつわる宇宙の真理をクラス化したいのか?
0939デフォルトの名無しさん
垢版 |
2018/10/18(木) 12:45:03.88ID:0Dh4HQ87
>>936
何歳って概念も結構大事で、6歳未満にはできない、とか、6歳未満だからいくら、とか結構決まり事があるんよ。
それ守らないと保険組合からお金がもらえない。
暦の上の、いわゆる法律上の年齢も無視できないんよ。
それは、医師の指示を実施した日で計算するとか、日付の取り方も色々ある。

医学的に必要になってくるとすると、何ヶ月早産児の何ヶ月児が、正規産だと何ヶ月児だよ、とか。
こっちは、だいたい週計算する。
0940デフォルトの名無しさん
垢版 |
2018/10/18(木) 12:45:24.34ID:b1Fs59oz
日付クラスを継承して誕生日クラスとか作り出す奴がいるから無駄に複雑になる。
0941デフォルトの名無しさん
垢版 |
2018/10/18(木) 13:23:27.88ID:b1Fs59oz
無駄にクラス化しようとする奴も同罪。だからオブジェクト指向がクソと言われる。
0942デフォルトの名無しさん
垢版 |
2018/10/18(木) 14:01:33.21ID:bqWuTIEf
だから業務共通クラスの1メソッドにしとくんだろ、普通

バッチが日跨ぎしても基準日は変えないとか、業務やシステムの要素と切り離しできるなら話も変わるけど
0943デフォルトの名無しさん
垢版 |
2018/10/18(木) 14:13:24.19ID:A+ZA0oir
クラスもいいけど、共通処理は単なる関数ライブラリの方がありがたいよな。
0944デフォルトの名無しさん
垢版 |
2018/10/18(木) 14:59:01.57ID:6luTq9qj
>>940
継承は間違い
日付型のフィールドを持つだけの誕生日値オブジェクトクラスを作るのが正解だな
0946デフォルトの名無しさん
垢版 |
2018/10/18(木) 16:59:23.38ID:A+ZA0oir
2つの日付けを引数にしてその日数を返す関数あれば、それだけでよくね?
変にクラス内に閉じ込めてもメリット無いと思うんだけど?
少なくともpersonクラスには誕生日を返すくちがあればそれでいいと思うよ。
それをどう加工するかは、表示クラスだったり年金計算クラスだったりでやればいいんだよ。
0947デフォルトの名無しさん
垢版 |
2018/10/18(木) 17:52:04.62ID:/ofNkRJS
>>946
コンピュータの立場で考えるのではなく
人間の立場になって考えるようにしましょう

Personクラスはどういう属性を持っているか?
それを考えるのが設計。実装のことは一旦忘れましょう
0948デフォルトの名無しさん
垢版 |
2018/10/18(木) 17:55:05.67ID:80M+etW5
関数型や手続きだとこんな議論にならん辺りやっぱオブジェクト指向はアカンな
0949デフォルトの名無しさん
垢版 |
2018/10/18(木) 18:03:23.12ID:b1Fs59oz
誕生日から年齢導くだけの処理に、幾つのファイルとどの位のコストが必要なのかねぇ。
保守性とはホント真逆だわ。
0950デフォルトの名無しさん
垢版 |
2018/10/18(木) 18:12:21.82ID:vIc/Em84
>>949
年齢を整数のまま扱うといつか誰かが
Xピクセル=10歳+50kg
みたいな奇妙な演算をやらかす
それは困るからクラス化して保守性をあげよう
0951デフォルトの名無しさん
垢版 |
2018/10/18(木) 18:17:11.53ID:b1Fs59oz
それよりも複雑化によるデメリットの方が計り知れない。
そもそもコード量を減らすためにクラス化とかあるのに逆に増えるってどんな呪いだよ。
0952デフォルトの名無しさん
垢版 |
2018/10/18(木) 18:20:48.86ID:vIc/Em84
>>951
重複コードがほぼ一掃されるので全体のコード量は減る
利用者側は年齢にまつわる詳細なルールを知らなくても使えるようになるから複雑性も解消される
0955デフォルトの名無しさん
垢版 |
2018/10/18(木) 18:34:20.75ID:7CPcoAfm
設計がおかしいとおかしなクラスが乱造される

一クラス一機能をつら抜いてFileRemoverとかFileRenamerクラス作ってる人は死んだほうがいい
MultiFileRemoverとか本当に必要なら作れよと思う
0957デフォルトの名無しさん
垢版 |
2018/10/18(木) 18:42:34.52ID:80M+etW5
オブジェクト指向は書く量と段取りを増やすデメリットをもって
パーツや責任関係の切り分けを行う作業と理解しております
0959デフォルトの名無しさん
垢版 |
2018/10/18(木) 19:06:46.96ID:vIc/Em84
日付型とかあるじゃん
あれ中身はただの整数値だけどだからってじゃあ整数値のままでいいじゃんとはならない
なぜなら整数値を日付とみなして注意深く扱うよりも
さっさと日付型を作ってしまったほうが間違いが減って問い合わせや演算が楽になり理解しやすくなるから
同じことをドメインでもやりましょうというだけの話なんだけど何をそんなに恐れてるのだろう
0960デフォルトの名無しさん
垢版 |
2018/10/18(木) 19:25:21.20ID:7CPcoAfm
架空言語にて

private Name name=new Name()

public Person(string name){
Name tmpName=new Name(name);
if(tmpName != null){
this.name=tmpName;
}
}
0961デフォルトの名無しさん
垢版 |
2018/10/18(木) 19:26:39.70ID:qf9NxgCD
>>947
そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。
ある程度はどっちに比重置くか考えて作った方がいい。
そういう所こそ設計の腕の見せ所。
0962デフォルトの名無しさん
垢版 |
2018/10/18(木) 19:30:01.60ID:/ofNkRJS
> そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。

全く無関係の話をされても困るんだが?
0963デフォルトの名無しさん
垢版 |
2018/10/18(木) 19:39:03.88ID:qf9NxgCD
理想と現実は違うって事。
人間のこと考えたいけど、仕様変更繰り返すうちにグダグダになる。
出来る事は破綻しない様に事前に想定される事に対処して、その後も破綻しない様に管理することだけ。
0965デフォルトの名無しさん
垢版 |
2018/10/18(木) 19:54:07.63ID:qf9NxgCD
>>964
そう。
そのはずだ。
入門書でAnimalクラスを継承してDogクラスとCatクラスが〜とか例えた弊害か、人間の事をとかなる。
人間の事を考えるなら顧客の事だ。
0967デフォルトの名無しさん
垢版 |
2018/10/18(木) 20:37:26.00ID:4AdjqlvR
>>938
エキスパートと思われる人にヒアリングしたら
そいつが「年齢にまつわる宇宙の真理」とか求め出すというクソ案件はたくさんある。
0968デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:17:00.48ID:A+ZA0oir
>>947
だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。
やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。
それじゃ無いと、様々な業務に適用させる度に微妙に違う属性を返さなきゃならんくなるだろ?
0969デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:24:05.33ID:/ofNkRJS
> だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。

Personクラスはそもそも業務に特化したクラスだろう?

現実世界の人間を完全シミュレートする。それがオブジェクト指向だって
考えてるのはお前だけやで
0971デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:26:42.98ID:/ofNkRJS
パーツの使い回しはオブジェクト指向じゃなくてもできるんで
それは全然違いますー
0972デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:28:20.39ID:/ofNkRJS
いやはや驚きだ。これが馬鹿というものか

まさか、どんな業務にでも通用する
Personクラスを想定していたとは

世界にたった一つPersonクラスがあれば
ゲームから業務まで何でも使えるものを想定していたとはな

愚かとしか言いようがない
0973デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:32:01.02ID:A+ZA0oir
少なくとも会社や自分の作るアプリで使い回す為にオブジェクト指向で作るんだからな。
おまえみたいに毎回特定業務に特化してフルスクラッチから作るとかバカしかやらんぞ。
0974デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:33:57.36ID:/ofNkRJS
>>973

え?お前こういったじゃん

> やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。

お前は、使い回すために業務クラス作ってんのか?
どんな業務でも汎用的に使えるもの = 業務クラスだったのか?
0975デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:35:16.82ID:/ofNkRJS
使い回さ(せ)ないもの = 業務クラス
Personクラスは使い回せない = 業務クラス

俺はこう言ってるだけなんだが、
こいつは何を言ってるんだろうか?
0976デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:37:02.39ID:A+ZA0oir
アホに構ってしまった。
personなんて一般的な名前で個別に特化したクラスを作るあほは社会の迷惑だからしんでくれ。
0977デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:38:08.80ID:/ofNkRJS
>>976
キミはネームスペースというものを知ったほうが良いぞ
多くの言語ではクラスはネームスペースの中に入れるから
一般的な名前が使えるんだよ
0979デフォルトの名無しさん
垢版 |
2018/10/18(木) 21:59:23.07ID:d31P7rqb
マクロ使ってスコープ無視してるんじゃね
0981デフォルトの名無しさん
垢版 |
2018/10/18(木) 22:20:46.14ID:d31P7rqb
名前空間内に入っていてその業務に特化したpersonという標準クラスはok派。
それを継承して使いまわしてもいいじゃない。
0982デフォルトの名無しさん
垢版 |
2018/10/18(木) 22:53:19.65ID:2FmMLZik
名前空間のせいで型名が長い
その反動で関数名は短すぎるから型を省略したら情報が少なすぎて読めない

型を宣言する言語としない言語の対立が最も激しくなる仕組み
0984デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:17:56.72ID:sfuI0a7S
オブジェクト指向で作った時点で失敗

メンバ変数の状態の数だけパターンが増えていく
これを仕様で固定せず
オブジェクトの状態数×オブジェクトの状態数
の工数爆発を汎用性による品質の向上とか思ってるキチガイばっかで救いようがない

無限の汎用性とは無限のバグ数を持っていることを悟るべき
0986デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:19:44.24ID:THsg9J3q
人類クラスからホモクラスを導出するぐらい頭ワルイことを平気でするからな
0987デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:22:42.95ID:Buojxy+7
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない
0988デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:25:00.93ID:qf9NxgCD
>>973-974
あー。。。
オブジェクト指向は素晴らしいかもしれん。
だがな。
納期に追われた焦った脳で扱うには手が余る。
精々次の一回使い回せたら使えたってのが現実。
(と言うか、そんなんだから継承は悪とか言われるわけで)

上で誰かがライブラリ的な方が嬉しいとか書いてたろ?
あれが真実。(誓って書いたのは俺じゃあない)
流石にまんま関数をライブラリにしなくて、関数とクラスをまとめたライブラリにするが。(むしろ気持ち悪いかこれは)

だから言ったろ?
現実と理想は違うって。

理想を追い求めて納期間に合わなくて、クビになったら元も子もないやろ?
いつかは。。。とか思いつつ、その連続よ。
0990デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:28:09.99ID:qf9NxgCD
そう思うんなら、まだ現実を知らない。
0991デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:28:24.82ID:THsg9J3q
一番頭ワルイやつが大量にレスしてるわ。。。
まさに典型的な頭の悪さ
0993デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:33:25.51ID:/ofNkRJS
>>988
Personのような業務クラスは使いまわしできるわけがないのは常識で
どうせ作る力ないんだから作るな。使え。
オープンソースなんかの汎用クラスを使え
見事にオブジェクト指向で世界中使い回し出来てるんだから。
0994デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:35:05.22ID:THsg9J3q
業務でどこの馬の作ったか分からんような
ちゃんと試験されたかどうかすらわからんようなコードを使うとかな
コイツは間違いなくニート
0995デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:43:20.55ID:/ofNkRJS
ちゃんと試験すればいいだけじゃね?

どうせ自分で作っても試験するんだから
他人が作ったものを試験するほうが
作るコストが節約できる

第一そもそも作る能力がないレベルなんだから
他人のが使えませんと言っても
自分で作ることもできませんっていうのが落ちだろう
0996デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:45:03.61ID:THsg9J3q
クソニートの世界では手続きとういもんがないのは分かる
0999デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:46:57.71ID:THsg9J3q
オマエはこのスレで頭わるいことばっかり書きこむまえに
ハロワへいく必要がある
1000デフォルトの名無しさん
垢版 |
2018/10/18(木) 23:47:17.33ID:vIc/Em84
>>984
状態をクラスにカプセル化することによって独立性を保てる境界ができる
すると状態の組み合わせ数が激減するんだよ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 55日 10時間 15分 8秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況