オブジェクト指向以外のメリットを書くスレ
■ このスレッドは過去ログ倉庫に格納されています
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く 926 デフォルトの名無しさん sage 2018/11/21(水) 18:37:29.28 ID:UM5ff+tU
>>925
たとえば、CycはFredという名前の男がドナルドダックのモノマネをするという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には羽がないことは知っているが、
アヒルのように歩き、アヒルのように鳴くものはアヒルに違いないと考えた。
したがって、CycはFredがドナルドダックのモノマネしている間、
Fredはそれでも人間なのかと尋ねた。
925 デフォルトの名無しさん 2018/11/21(水) 18:36:07.42 ID:8Yc2p7H1
>>919
>そもそもアランケイの言う「実行中」は「起動中」であって
>「使用中」じゃないんだろう。マルチユーザーで誰かが使用している最中に
チンポがシコシコしている間、俺はそれでも俺なのかと尋ねた。
829 デフォルトの名無しさん 2018/11/11(日) 09:52:59.70 ID:y84pWKv0
(第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル 神クラスは悪しきものとされているけれども
一方ではWorth is Betterという考え方もあり
結局神クラスは良いものだよね >>8
さすがにそれはねーわ
神クラスのメリットって神クラスを記述するときは頭を空っぽにして記述できることだろ
もう一つは開発担当を途中で降りることで、次の開発者に嫌がらせができる
メリットと言えばこんなところか >>9
オブジェクトが別れてないので処理速度での優位性もある
Linuxはモノリシックカーネルで天下をとったように
プログラムは神クラスでこそ真価を発揮する面もある >>8
おーすいずべたーってこれ?
神クラスの話とどう関係あるの?神クラスとは正反対ってこと?
"悪い方がよい"原則はこれと少しだけ異なる:
簡潔性
デザインは実装と使用法の両面において単純でなければ ならない。このとき、実装が単純な方が、使用法が単純なことより重要 である。
単純さがデザインにおいて最も重視されるべき事柄である。
正当性
デザインはすべての点において正しいものでなければならない。 ただし、どちらかといえば、正しいことよりは単純なことの方が重要である。
一貫性
デザインは一貫性を大きく欠いたものであってはならない。 単純さを保つために、一貫性は犠牲にされることがある。
しかし、 あまり起こらない状況に対応しようとして実装を複雑にしたり一貫性を欠いた ものにするよりは、それを捨てる方がよい。
完全性
デザインは実際に起こる重要な状況にはすべて対応できなければ ならない。普通に起こると思われる場合はすべて扱えるべきである。
ただし、 他の条件のためならば完全さはいつでも犠牲にしてよい。さらに、 実装の単純さが失われる場合には
完全さを犠牲にしてもそれを守るべきで ある。単純さが保たれるならば、完全なものにするために一貫性を犠牲に してもよい。
何より意味がないのは、使用法の一貫性を守ることである。 >>12
「悪い方が良い」原則と僕の体験談
https://note.com/ruiu/n/n9948f0cc3ed3
読むならこれがおすすめ、汎用性が無い方が良いこともあるってこと >>13
汎用性がないことは悪いことじゃないでしょ > プラットフォーム依存の各種機能がファイルフォーマットだけではなく
> 具体的なリンカの挙動にも影響を与えているので、中間表現はすべての
> 機能を表現できる必要があり、結果的に中間表現はすべての
> ファイルフォーマットのすべての機能を持つことになってしまった。
> 共通部分をくくりだすのではなく、逆に全部入りの恐ろしい中間レイヤができてしまったのだ。
神クラスはダメって話だね 「悪いほうが良い」じゃなくて、
「こういう設計のほうが良い」
って話だな 過度な機能、過度な抽象化、過度なエラーチェックは止めたという話だな >>17
そうつまり神クラスが良いこともあるってことですよね 抽象化をやめるってことはクラスを減らすってことなので一つのクラスが多くの機能をもつってことですよ >>20
神クラスっていうのは一つのクラスに全部入りみたいなものを作ることだよ >>24
そうですよ、神クラスを使うことで抽象度が下がって中間レイヤーが減って処理速度が上がりますよね 複数人で仕事するとコミュニケーションコストが上がって処理速度は下がりますよね
一人で仕事するのが最速です、神クラスと同じですね 一時期もてはやされたフルスタックエンジニアは神クラスです 神クラスという言い方はネガティブな印象が強いのでフルスタッククラスというべきかもしれませんね >>29
おいコミュ障、いいえだけじゃ話にならねえよアホンダラ 上の方に事例ができてるじゃん
> ファイルフォーマットのすべての機能を持つことになってしまった。
> 共通部分をくくりだすのではなく、逆に全部入りの恐ろしい中間レイヤができてしまったのだ。
神クラスはダメって話だね >>31
中間レイヤクラスを分けてたわけだがそれを統合したわけだろ、そうすることでクラス数を減らしたわけだから
神クラスに近づいたってことだ この教訓からわかることはレイヤを分けるな、中間のクラスを作るなってこと 「逆に全部入りの恐ろしい中間レイヤができてしまったのだ。」
と後悔してるんだから、全部入りなんてやめたってことだろw レイヤを分けるな、中間のクラスを作るなとも言ってないな
恐ろしいのは「全部入り」 中間レイヤは神クラスでもなんでもないぞ、中間レイヤという責務だけをやろうとしてるわけだからな 責務でクラスをわけようとする小賢しさが中間レイヤという歪なクラスを作り出したわけ
これは神と対極だよ、意識高い系のアホが生み出した地獄クラスとでも呼ぼうかね >>37
神クラスは全部入りの恐ろしいものってだけ
中間レイヤと全く関係ない話 >>39
中間レイヤには中間レイヤしかないから全部入ってないわけ、よって神クラスではないわけ
神クラスを誤解したお前のようなアホが中間レイヤを作ります 神クラスはだめなんだ、クラスをわけるんだ、中間レイヤができました ←お前ら 神クラスは良いものだ、クラスを分けない、中間レイヤがなくて高速に動作します ←僕 >>40
中間レイヤを否定してません。
神クラスを否定してるんですよ。 >>43
ほう、>>13を読んで中間レイヤがまずいと思わなかったのかね、ふふ、アホめ 中間レイヤを排除し神クラス化することで処理性能を飛躍的に改善できた事例を目の当たりにしながら
神クラスを否定するとはなんというアホ >>44
> ファイルフォーマットのすべての機能を持つことになってしまった。
> 共通部分をくくりだすのではなく、逆に全部入りの恐ろしい中間レイヤができてしまったのだ。
「逆に全部入りの恐ろしい」という神クラスがまずいと思いました >>46
それは神クラスではありません、中間レイヤでしかないので
中間レイヤの責務しかない中間レイヤクラスですよ
神を恐れるがあまり地獄を作り出してしまった愚かな人間の愚行の結果なわけです
神クラスというのは中間レイヤもひっくるめて何もかもを内包したGodクラスなわけです
中間レイヤとしての機能しかないのは神ではありません 中間レイヤわける必要ないじゃん一緒にしちゃおうよという対応を行った結果性能の良いすばらしいプログラムになったわけですね >>10
でた。速度厨。いつの時代の話だよ。しかも間違ってるし。
アセンブラのコード見直してから出直してこい。 >>49
いまの時代の話だよ、間違ってない
アセンブラの話じゃない、以上 神クラスって特定のクラスにあらゆる機能を過剰に集中させたクラスのことだぜ
んで、そんなのにメリットを見出す時点で非オブジェクト指向は終わってる。 >>47
中間レイヤかつ神クラスです。
どこに神クラスじゃないと書いてあるんですか? >>52
神クラスはオブジェクト指向において、悪い設計例として挙げられてるもの
アンチパターンだよ
全部の機能入りの恐ろしいクラスのこと
すべての機能が入って何でもできるから、神クラスと言われてる >>53
>>54
> 中間レイヤ
> すべての機能が入って何でもできる
中間レイヤにはすべての機能は入っていないので神クラスではないってこと
中間レイヤは中間レイヤの機能しかないので中間レイヤと呼ばれます >>54
オブジェクト指向でやってはいけないコード(クソコード)の有名な例だからオブジェクト指向で自ら神クラスを採用するのはおかしいよな→つまり、オブジェクト指向アンチの推奨する設計だろ?
という前提で語ってた。
神クラスの意味は知ってるけど、このスレで神クラスを推進する奴はオブジェクト指向アンチだろって解釈は自信がない。>>8はどういう意図で述べたんだろうな。 みんながそう言ってるからそうなんだというバカが多くて僕は悲しい
自分の頭で考えればよいのに >>55
> 中間レイヤにはすべての機能は入っていないので神クラスではないってこと
ああ「すべての機能」を否定したいのかw
ごめんな、たしかに神クラスの定義は「すべて」の機能じゃないわ
多数の機能とするべきだったね。
http://wiki.c2.com/?GodClass
ってことで、>>13の話は多数の機能がぶち込まれたクラス
> ファイルフォーマットのすべての機能を持つことになってしまった。
> 共通部分をくくりだすのではなく、逆に全部入りの恐ろしい中間レイヤができてしまったのだ。
なので神クラスの定義であってるんだわ。
中間レイヤの話はしてない 中間は物と物との間にある物って意味
物 ? 中間 ? 物
中間はただのブローカーであって神ではない
神はすべてを司るわけだから(物、物)の機能を持つわけ >>56
> >>8はどういう意図で述べたんだろうな。
たぶん、タイトルしか読んでないんだろ?
悪いものは良い。つまり悪いものを採用したから良いんだ!←つまりそれも良いものだから、もっと悪いものを採用すべきでは?
って話をしてるw
最終的に最悪のものを選べという意味だと勘違いしちゃったんだろうw >>59
中間の話はしてないよ
端にあろうがなんだろうが関係ない
> ファイルフォーマットのすべての機能を持つことになってしまった。
> 共通部分をくくりだすのではなく、逆に全部入りの恐ろしい中間レイヤができてしまったのだ。
どこにあっても全部入りは恐ろしいのだ スレタイのメリットについて考えるか。
オブジェクト指向採用と比較したオブジェクト指向を使わないメリット
・学習が必要ない
・勢いに任せで自由にコードを記述できる
・様々な状態や機能を多く記憶することで脳のトレーニングになる(気がする)
こんなところか。他に何かある?
>>57
それ、オブジェクト指向採用者に言ってるの?
だとしたら、「なんで皆が推奨しているのかを考えられない馬鹿が居て俺は悲しい」と言っておくよ。 >>58
> 中間レイヤができてしまったのだ
> 中間レイヤの話はしてない
え?
中間レイヤが問題なのであってすべての機能を持たせれば良い
>>13はまさにその好例、中間レイヤの存在をなくし中間の機能を
元のクラスに統合することによって性能改善を行った、つまり神クラスを作ったわけだ あと、神クラスって選定する設計思想じゃなくてアンチパターンだからな?
アンチパターンの意味わかってる? >>61
> 中間の話はしてないよ
> 中間レイヤができてしまったのだ
え? >>13は中間レイヤの話だよ
全部入りは全部で一つだからどこという話ではない >>64
アンチパターンだからダメなんだというロジックですよねそれ
どこの馬の骨ともわからないウスラトンカチがアンチパターンだと
言ったからきっとこれはダメなものなんだと思いこんでるだけの思考停止ですよね
アンチパターンの意味を理解してないのはあなたの方ですね アンチパターンというのは思考を短絡させるためにあるわけではありません
ただの分類の一つでしか無いわけです
少なくとも>>13の例はアンチパターンと呼ばれている神クラスが結果的に
状況を好転させすばらしい成果を上げたことの報告です >>62
みんなってIT土方のアホどもがロクな経験もつまずに本読んでわかった気になってるだけ
水は低きに流れるからね、本に書いてることだからきっとみんなそうなんだ
みんながいるから自分もそれに賛同しておこう批判されたらみんなのせいにして逃げればいいや
という卑怯で愚劣な考えが透けて見える、僕はそれを悪と呼ぶ >>66
> >>64
> アンチパターンだからダメなんだというロジックですよねそれ
そうですが何か?
初心者がよくやるミスに名前をつけたのがソフトウェアのアンチパターンですが? 結局君たちの根底にあるのはアンチパターンとされているという
曖昧模糊としたぼやけた印象でしかないわけ、自分はこういう経験を経て
アンチパターンに分類するに至ったという事実に基づく確固たる判断を誰も行っていないということ
むしろ>>13にあるように神クラスは良いものだという報告がある
僕は>>13の方に説得力を感じる、君たちは所詮木偶の坊だ >>69
君は初心者なのかね? 巷間に流布されているアンチパターンを鵜呑みにする君は初心者だね
僕はこの道数十年のベテランだ、神クラスの有用性をわかるようになったら
君も中級者入りかな、まあせいぜい頑張ることだよ ベテランの立場から老婆心で言っておくと中間レイヤーはオブジェクト指向を汚す
KISS原則を守ってこそオブジェクト指向は輝く キラキラと美しい星空のような僕が見ているオブジェクト指向を君たちにも見せてあげたい
みんながこれアンチパターンで言ってるんだーなんて意識高い系のアルファブロガーみたいな
精神でプログラミングやってたら一生見れないよ 一日中2chに、張り付いているニートが何を必死になってるんだか。
お前よりは働いてるよ。
そんなに妄想自慢したけりゃ隔離スレいけ。昼休み終了。あばよ。 >>63
> 中間レイヤが問題なのであって
(その例の場合において)
中間レイヤ"に"問題があるのであって
中間レイヤ"が"問題なのではない
日本語大丈夫かなぁw 問題は中間レイヤの存在そのものだからなー
だから中間レイヤをなくしたんだよ
ブローカーは少ないほど効率が良い、これは社会も同じです
問屋から消費者が商品を直接買うしくみがシンプルで最も効率が良いです
転売ヤーが一般的に受け入れられないのも根は同じです 分ける必要のないものを分けた結果中間レイヤーという地獄のようなクラスができあがったわけです
グルーコードをできるだけ薄くするのが良いプログラムを書くコツです >>80
違います、神クラスだったら中間レイヤーというクラスは存在しなかったわけです
神クラスを避けようとしたからこそ中間レイヤーという地獄デザインに行き着いたわけです
最初からレイヤーをわけずに一つのクラスでやってれば問題は起きなかったわけですよ神と和解せよ 神クラスというバズワードに振り回されて物事の本質をわかってない
悪いのはリソースの中間搾取を行うオブジェクトであることを認識したがよい
IT業界の多重派遣と同じです > ファイルフォーマットのすべての機能を持つことになってしまった。
> 共通部分をくくりだすのではなく、逆に全部入りの恐ろしい中間レイヤができてしまったのだ。
しっかり、恐ろしい中間レイヤとは、全部入りだと書かれてある >>83
中間レイヤの機能が全部という意味だ、あくまで中間レイヤの機能だけ、これは神クラスではありません、中間レイヤです
このように中間レイヤというのはその存在そのものが腐敗の原因です
中間レイヤが必要ないようにあらゆる機能を包含した神クラスがあれば良いわけです 単に中間レイヤが悪いのであれば「中間レイヤができてしまった」と書いているだろう
「全部入りの恐ろしい」中間レイヤなのだ 中間レイヤの存在そのものが悪いので中間レイヤをなくすって結論に至ったわけですよ
中間レイヤはつねに悪いわけです、全部入りの恐ろしいクラスになったのも必然だったわけですね 中間レイヤに偶然などありません、必然的に悪くなるわけです
だって中間搾取するだけのクラスなんだもん転売ヤーを想像してください
生産者と消費者との間に入って利益を貪るだけのレイヤーにメリットなんて何も無いですよ
作った時点で設計として大失敗ですよ 一句できました
きりたんぽ
KISSの原則
神クラス (u_・y)神クラスプログラミングってダメな例とはされてるけど
(u_・y)可読性なんていう個人ごとの問題じゃない
(u_・y)ゲーム系なんかで神オブジェクト作れば分かるが
(u_・y)圧倒的に短縮されたコードを得るかわりに速度問題が発生する
(u_・y)神オブジェクトの生成破棄のオーバーヘッドな
(u_・y)これは今現在のCPUの処理性能が有限だから起きる事で
(u_・y)どんな処理を丸投げしても一瞬で処理するような革命がCPU起きた時には
(u_・y)神クラスプログラミングは注目されるはず
(u_・y)概念的には○、現実的には✗というのが神オブジェクト
(u_・y)トランプって54枚のカードでいろんなゲームを作るだろ
(u_・y)神オブジェクトってのは、実際あのように有限数のオブジェクト数を最初に定義し
(u_・y)その中で何かを表現するってのが、今のところでは現実的な神クラスによるコーディング ちょっとこのスレ
タイトルからしてキチガイすぎね? (u_・y)まぁ一度は神オブジェクト作って、ファミコンにあるような原始的なゲーム作ってみろって
(u_・y)普通の入門書では、クラス定義を何個も何個もやってるが
(u_・y)それを、唯一のオブジェクト生成クラスってものから派生させるとな
(u_・y)ソースコードがバカみたいに減る
(u_・y)推敲していくと神オブジェクトクラスと、タスク管理クラスという2つに分離するが
(u_・y)もう1歩だけ前へ進むと、神オブジェクトクラスに、タスク管理クラスを呑ませる事もできて、完全にクラス定義が一つに収束する
(u_・y)芸術作品なんよ (u_・y)良いか?
(u_・y)class Player, class Enemy, class Effect, class Task
(u_・y)これが度のゲームにでも大抵ある基本的なクラス宣言だ、
(u_・y)これを、class Uy にまとめろ。
(u_・y)タスクもだ。これはタスクシステムのタスクだ。
(u_・y)必要な変数は、シンボル、proc格納変数この2つ
(u_・y)シンボルはタスクおよびオブジェクトの識別に使う
(u_・y)procはタスクのメソッドを格納、playerとかなら、player用の定義したメソッドを格納
(u_・y)する
(u_・y)メソッドの中に
procA {
x = 3 # 変数宣言、ローカルだが実質の1度しか実行されないコンストラクタなので状態保存が可能
procB {
x #=> 3
# タスクでループされる部分
}
return procB
}
(u_・y)let ovar lambdaな
(u_・y)タスクシステムの中にprocAを入れて実行し、戻り値を入れれば次からはprocBが実行される
(u_・y)コンストラクタとメインルーチンはlambda2つのネストで成立する そもそも一般的なプログラミング手法は、大きな問題をいくつかの小さな問題に分割し、それぞれの解決策を作成する形で設計するもの
...という認識から既に神オブジェクト信者とズレが生じている件について オブジェクト指向を頑張っても意味がない
動くプログラムが作りたいのであってオブジェクトなんてどうでもいいからだ そもそもオブジェクト指向以外のメリットというのが破綻してて
お米が炊けるのが早いとかでも間違っていない そもそもオブジェクト指向以外って何?って感じだしな (u_・y)>>95
(u_・y)サーバーとクライアントっていうプログラムなら普通のOO
(u_・y)P2Pなら神クラス
(u_・y)だろ? (u_・y)>>97
(u_・y)米ってのは冷水で米の内部までじっくりと水分を浸透させて
(u_・y)そこから炊くんだが?
(u_・y)っ銀シャリ屋 ゲコ亭 (u_・y)>>98
(u_・y)ITの世界ではオブジェクト指向が推されても
(u_・y)「民主主義」というものは、全くオブジェクト指向になってない
(u_・y)どちらかといえばこれは、一人一人に人権を付与して自由に発言出来る神オブジェクト (u_・y)世界.exeにおいて世界足らしめているものは効率や物量ではなく継続性
(u_・y)いうなれば継続性のない物質や個体、などといったものは滅びるわけだから
(u_・y)絶対に壊れないものは何か?と探す事が世界の仕組みへの探求となるだろう
(u_・y)その絶対に壊れないものが、無限を生み出し、すべてを作り続ける
(u_・y) って事はだな、唯一の神のようなコアが無限を作り出しているというよりも
(u_・y)エッチする→出産→子供
(u_・y)この営みによる継続性が無限を作り出していると言う方が
(u_・y)やや現実的ではなかろうか ■ このスレッドは過去ログ倉庫に格納されています