カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/08/24(金) 13:32:09.36ID:ifygL6bT434デフォルトの名無しさん
2018/10/02(火) 23:00:45.18ID:1/02bXao435デフォルトの名無しさん
2018/10/02(火) 23:02:07.94ID:/RdnJML/ > 自分で正しいこと書けばいいんじゃないの?
何で分かってくれないの…
自分で正しいと思ったことを「書かないで」と言ってる
歌ってみた?歌わんでいい
書いてみた?書かんでいい
何で分かってくれないの…
自分で正しいと思ったことを「書かないで」と言ってる
歌ってみた?歌わんでいい
書いてみた?書かんでいい
436デフォルトの名無しさん
2018/10/02(火) 23:07:36.42ID:YrRJAaFS >>435
有益な情報はどこで仕入れてるの
有益な情報はどこで仕入れてるの
437デフォルトの名無しさん
2018/10/02(火) 23:26:49.40ID:R8M7QKDK オレのレスは有益
438デフォルトの名無しさん
2018/10/02(火) 23:29:31.38ID:LVKvBfXE 全てを分かってるやつが嘘っぱちを自信満々で流すのが厄介
439デフォルトの名無しさん
2018/10/02(火) 23:34:15.18ID:YrRJAaFS そこはわかってない奴じゃないのか?
440デフォルトの名無しさん
2018/10/02(火) 23:59:13.66ID:LVKvBfXE >>439
ワザと嘘を流す奴がいる
ワザと嘘を流す奴がいる
441デフォルトの名無しさん
2018/10/03(水) 00:49:14.98ID:p3pJJViF そんな奴は他の奴に指摘されて恥をかくのさ。
442デフォルトの名無しさん
2018/10/03(水) 00:59:18.00ID:75/JdiDV オブジェクト指向とは何で
何が良くて
何が悪くて
そしてどうしたらよかったのかとか
纏められるといいんだけれどもねえ
何が良くて
何が悪くて
そしてどうしたらよかったのかとか
纏められるといいんだけれどもねえ
443デフォルトの名無しさん
2018/10/03(水) 01:01:35.24ID:75/JdiDV 目的指向というよりも
手段指向というか方法論指向で始終しちゃって
明後日の方向に愚民を導いて
混乱をもたらしたのは
なんともむなしい
手段指向というか方法論指向で始終しちゃって
明後日の方向に愚民を導いて
混乱をもたらしたのは
なんともむなしい
444デフォルトの名無しさん
2018/10/03(水) 01:03:16.82ID:75/JdiDV 日本の失われた20年とちょうど時期が重なる
日本のITの暗黒時代
日本のITの暗黒時代
445デフォルトの名無しさん
2018/10/03(水) 01:03:23.91ID:Uljc2mte446デフォルトの名無しさん
2018/10/03(水) 04:50:56.65ID:gboWSeYU 260はいい記事やったけど402はイマイチやったな。てか全部読んでないけど
447デフォルトの名無しさん
2018/10/03(水) 10:56:50.79ID:gykQQ827 邪魔する奴の中に
単純に自分を有利にしておきたいから他人が自分の居るレベルまでこれ無い様に邪魔をする
という奴も居るからな
相対的な位置で報酬は決まるから他人を蹴落とす
というのを息をするようにやる奴がかなり居る
全体が進展するより停滞させて自分だけ有利にしようとする下劣な奴が結構居る
教育を変える必要が有るのに今のままでいい
とか言ってる奴もそういう連中
単純に自分を有利にしておきたいから他人が自分の居るレベルまでこれ無い様に邪魔をする
という奴も居るからな
相対的な位置で報酬は決まるから他人を蹴落とす
というのを息をするようにやる奴がかなり居る
全体が進展するより停滞させて自分だけ有利にしようとする下劣な奴が結構居る
教育を変える必要が有るのに今のままでいい
とか言ってる奴もそういう連中
448デフォルトの名無しさん
2018/10/03(水) 17:15:26.13ID:bSsx2t9M449デフォルトの名無しさん
2018/10/03(水) 17:55:44.54ID:H+WLzHql >>448
teratailなんて比較対象にすらならない
teratailなんて比較対象にすらならない
450デフォルトの名無しさん
2018/10/03(水) 19:12:16.15ID:p3pJJViF stackoverflow人少なすぎない?
451デフォルトの名無しさん
2018/10/03(水) 19:23:56.48ID:ksSGRyva まさか日本語版とかいうゴミ見てるんじゃないだろうな…まさかな…
452デフォルトの名無しさん
2018/10/03(水) 19:32:35.85ID:p3pJJViF 紹介されたから見に行ったら日本語版だったの
453デフォルトの名無しさん
2018/10/03(水) 19:42:27.24ID:bSsx2t9M 英語版なんて読めないよ・・・
コードはなんとなくわかるが質問文が
コードはなんとなくわかるが質問文が
454デフォルトの名無しさん
2018/10/03(水) 20:03:14.53ID:OyXOgA+h455デフォルトの名無しさん
2018/10/03(水) 20:24:40.36ID:p3pJJViF 英語版いいな。情報量が圧倒的に多い。センキュー
456デフォルトの名無しさん
2018/10/03(水) 20:50:59.00ID:L7SsoV0I 海外でHelp me, Stackoverflow. You’re my only hope.って書かれたTシャツ着たやつ見るくらい
457デフォルトの名無しさん
2018/10/03(水) 22:09:14.84ID:2Mgu08sP >>454
今なら正しくOOPを実践してるコードばかりなの?
そもそも正しいOOPってどんなものなの?
第一デザパタは前の方がさかんに取りざたされていたじゃない。
振り返って今だからこそ分かるんじゃじゃないの?
世に流布していたOOPはくそコードを量産した元になったと。
今なら正しくOOPを実践してるコードばかりなの?
そもそも正しいOOPってどんなものなの?
第一デザパタは前の方がさかんに取りざたされていたじゃない。
振り返って今だからこそ分かるんじゃじゃないの?
世に流布していたOOPはくそコードを量産した元になったと。
458デフォルトの名無しさん
2018/10/03(水) 23:08:05.48ID:G0/tEBDY 我々はね、間違うのよ
だいたいのことを間違うの
OOPだから糞コードになったんじゃなくて
OOP関係なく、糞コードにしかならないの
その一点についてすら自覚が無いの
だいたいのことを間違うの
OOPだから糞コードになったんじゃなくて
OOP関係なく、糞コードにしかならないの
その一点についてすら自覚が無いの
459デフォルトの名無しさん
2018/10/03(水) 23:16:15.49ID:p3pJJViF main関数から始まるc++はオブジェクト指向か?
(オブジェクト指向をちっとも理解してないものの意見です)
(オブジェクト指向をちっとも理解してないものの意見です)
460デフォルトの名無しさん
2018/10/03(水) 23:39:24.91ID:YTuGf5mm >>459
C++はオブジェクト指向(をサポートした)言語だよ
Cと違って継承や多態の機能が標準であるでしょ?
今からふり返ると中途半端な部分もあるけど
ただそのC++を使って書いたコードが
オブジェクト指向らしく書けているかは別の話
OOPとOOA(D)の違い
C++はオブジェクト指向(をサポートした)言語だよ
Cと違って継承や多態の機能が標準であるでしょ?
今からふり返ると中途半端な部分もあるけど
ただそのC++を使って書いたコードが
オブジェクト指向らしく書けているかは別の話
OOPとOOA(D)の違い
461デフォルトの名無しさん
2018/10/04(木) 00:22:43.55ID:e2lTbi2R >>458
OOPの弊害について議論して来たのに
「OOP関係なく、糞コードにしかならない」と言われると、
OOPは糞コードの元となる害なかった無関係だと暗にほのめかしているようで
論点をすり替えてずるくごまかされたような印象を受けるよ
OOPの弊害について議論して来たのに
「OOP関係なく、糞コードにしかならない」と言われると、
OOPは糞コードの元となる害なかった無関係だと暗にほのめかしているようで
論点をすり替えてずるくごまかされたような印象を受けるよ
462デフォルトの名無しさん
2018/10/04(木) 00:28:26.90ID:bhAz8In7 OOPが原因で糞コードになるんなら
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
463デフォルトの名無しさん
2018/10/04(木) 00:32:28.79ID:e2lTbi2R 本当はいいものとなる筈だったのに、
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、
最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、
最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
464デフォルトの名無しさん
2018/10/04(木) 00:44:45.46ID:s35zoLCp 継承の時にc++のprotectedは有害か?
465デフォルトの名無しさん
2018/10/04(木) 00:53:04.18ID:e2lTbi2R んなもん使い方しだいにきまっとろうが
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
466デフォルトの名無しさん
2018/10/04(木) 19:08:28.34ID:bhAz8In7 典型的なフワフワ野郎やなこいつ
467デフォルトの名無しさん
2018/10/04(木) 21:04:04.79ID:lUzJxSj8 関数型の弊害の話をしたら必然的にオブジェクト指向の弊害の話になると思うの
468デフォルトの名無しさん
2018/10/04(木) 21:07:13.85ID:vhCji18k 弊害ちゃう元からおまえの頭が悪いだけや
469デフォルトの名無しさん
2018/10/05(金) 01:42:06.04ID:GLbBoG3S これがオブジェクト指向を吹聴していた者たちの反論か…
科学的工学的有効性のかけらも無い
科学的工学的有効性のかけらも無い
470デフォルトの名無しさん
2018/10/05(金) 06:56:18.75ID:u1B1EyaQ471デフォルトの名無しさん
2018/10/05(金) 08:22:51.05ID:jK12bSnX >>464
c++自体有害
c++自体有害
472デフォルトの名無しさん
2018/10/05(金) 10:34:10.65ID:kQel6lTj >>467
オブジェクト指向と関数型に何の関係があるんだ?
オブジェクト指向と関数型に何の関係があるんだ?
473デフォルトの名無しさん
2018/10/05(金) 10:55:46.34ID:4oQp/Mop474デフォルトの名無しさん
2018/10/05(金) 10:58:14.90ID:kQel6lTj >>473
その理屈だと、むしろ無関係なもの探す方が難しいなw
その理屈だと、むしろ無関係なもの探す方が難しいなw
475デフォルトの名無しさん
2018/10/05(金) 11:10:54.95ID:HilDODP3 クソとか言っている人間の方がよっぽど
>科学的工学的有効性のかけらも無い
と思うけど
>科学的工学的有効性のかけらも無い
と思うけど
476デフォルトの名無しさん
2018/10/05(金) 12:04:19.49ID:4oQp/Mop >>474
なに言うてんねん、必死やな
なに言うてんねん、必死やな
477デフォルトの名無しさん
2018/10/05(金) 14:35:10.66ID:kQel6lTj べつにオブジェクト指向の概念は関数で実装しなくてもいいんだよ?
メッセージでもいいしな。
メッセージでもいいしな。
478デフォルトの名無しさん
2018/10/06(土) 00:01:51.18ID:LmyRE988 OcamlやF#のようにオブジェクト指向と関数型パラダイムを合わせて持つ言語もあるが、
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
479デフォルトの名無しさん
2018/10/06(土) 00:23:54.73ID:wNGV+/Yb >自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
480デフォルトの名無しさん
2018/10/06(土) 00:49:03.56ID:LmyRE988 >>479
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?
これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)
この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ
これで伝わるかな…
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?
これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)
この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ
これで伝わるかな…
481デフォルトの名無しさん
2018/10/06(土) 00:59:33.53ID:LmyRE988 >>480
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う
型クラスとかアクセサでカプセルかとか継承とか全いらない
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う
型クラスとかアクセサでカプセルかとか継承とか全いらない
482デフォルトの名無しさん
2018/10/06(土) 01:01:28.94ID:qfHN3zvO 関数型というかHaskellのええ所は>>260でいうパーツの切り分けが強制的になる所もあるよな
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
483デフォルトの名無しさん
2018/10/06(土) 01:02:29.25ID:LmyRE988 ただまぁ万能ではなく、
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
484デフォルトの名無しさん
2018/10/06(土) 01:31:10.16ID:LmyRE988 多態性についても文句あんだよねおれは。
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。
あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。
あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
485デフォルトの名無しさん
2018/10/06(土) 01:38:18.52ID:9tCZRFgp 書籍も全部一色だったし
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
486デフォルトの名無しさん
2018/10/06(土) 01:41:57.53ID:LmyRE988 本当に有効な機能だけ自律して使えば有効な面もあったかもしれないけど
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
487デフォルトの名無しさん
2018/10/06(土) 01:43:22.02ID:LmyRE988 今でもオブジェクト指向からDNNやAiにステージを移して
同じようなことが続いている
同じようなことが続いている
488デフォルトの名無しさん
2018/10/06(土) 02:03:28.62ID:LmyRE988 でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。
翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか
同じOOPでも同列にみなしてはいけないんだろうな
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。
翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか
同じOOPでも同列にみなしてはいけないんだろうな
489デフォルトの名無しさん
2018/10/06(土) 02:13:25.41ID:LmyRE988 ちなみにpythonの言語仕様自体は
涙なくして語れないほどのクソだと俺は思っている
なんか文句あるか?
___
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) | <かかってこいよ
,.゙-‐- 、 `⌒´ ,/ おらー
┌、. / ヽ ー‐ <.
ヽ.X、- 、 ,ノi ハ
⊂>'">┐ヽノ〃 / ヘ
入 ´// ノ } ,..,.._',.-ァ
/ `ー''"´ ,' c〈〈〈っ<
/ __,,..ノ ,ノヽー'"ノ
{ ´ / ``¨´
/´¨`'''‐、._ ,'\
∨´ `ヽ、 ノ ゙ヽ
∨ ヽ _,,..-'" `ヽ
∨ 〈-=、.__ }
ヽ、 } ``7‐-. /
ヽ リ /′ ノ
/′ , { / /
{ ! ,ノ ,/′
! / / `‐-、
! ,/ ゙ー''' ー---'
', /
{ }
゙Y `ヽ、
゙ー--‐'
涙なくして語れないほどのクソだと俺は思っている
なんか文句あるか?
___
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) | <かかってこいよ
,.゙-‐- 、 `⌒´ ,/ おらー
┌、. / ヽ ー‐ <.
ヽ.X、- 、 ,ノi ハ
⊂>'">┐ヽノ〃 / ヘ
入 ´// ノ } ,..,.._',.-ァ
/ `ー''"´ ,' c〈〈〈っ<
/ __,,..ノ ,ノヽー'"ノ
{ ´ / ``¨´
/´¨`'''‐、._ ,'\
∨´ `ヽ、 ノ ゙ヽ
∨ ヽ _,,..-'" `ヽ
∨ 〈-=、.__ }
ヽ、 } ``7‐-. /
ヽ リ /′ ノ
/′ , { / /
{ ! ,ノ ,/′
! / / `‐-、
! ,/ ゙ー''' ー---'
', /
{ }
゙Y `ヽ、
゙ー--‐'
490デフォルトの名無しさん
2018/10/06(土) 07:19:55.96ID:hM5EPMW3 pythonにprivate変数はありません。
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内
(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内
(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
491デフォルトの名無しさん
2018/10/06(土) 07:35:40.78ID:vpFDdLxA >>181
まとめると:
Python のオブジェクト指向はクソ
まとめると:
Python のオブジェクト指向はクソ
492デフォルトの名無しさん
2018/10/06(土) 11:22:52.91ID:LmyRE988493デフォルトの名無しさん
2018/10/06(土) 12:56:22.72ID:sXtVjY80 ID:LmyRE988
↑なんでこいつすぐポエってしまうん?
↑なんでこいつすぐポエってしまうん?
494デフォルトの名無しさん
2018/10/06(土) 13:08:17.37ID:LmyRE988 >>493
飲んで2chにポエム書くことくらい大目に見なよ
飲んで2chにポエム書くことくらい大目に見なよ
495デフォルトの名無しさん
2018/10/06(土) 13:36:23.41ID:o3SQFYgr496デフォルトの名無しさん
2018/10/06(土) 13:43:55.83ID:LmyRE988497デフォルトの名無しさん
2018/10/06(土) 13:59:20.11ID:LmyRE988498デフォルトの名無しさん
2018/10/06(土) 14:02:40.61ID:LmyRE988 さて、三連休だ、旅行に行ってくるわ。
あばよ、ノシ
あばよ、ノシ
499デフォルトの名無しさん
2018/10/06(土) 14:04:15.02ID:o3SQFYgr だから一言blockが無いで良いじゃん
lexical scopeは関係ない
それにpython 3だけで大抵の言語のシェアを上回ってるのに、
未だに2の批判するのも意味分からん
lexical scopeは関係ない
それにpython 3だけで大抵の言語のシェアを上回ってるのに、
未だに2の批判するのも意味分からん
500デフォルトの名無しさん
2018/10/06(土) 14:05:12.84ID:o3SQFYgr501デフォルトの名無しさん
2018/10/06(土) 14:06:48.29ID:c8T9aSvT >でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
>よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
>ソフトウエアの構造を表現している。
numpy、tensorflowがオブジェクト志向?
そんな気は全くしないんだが、定義が全く違うのかな?
>よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
>ソフトウエアの構造を表現している。
numpy、tensorflowがオブジェクト志向?
そんな気は全くしないんだが、定義が全く違うのかな?
502デフォルトの名無しさん
2018/10/06(土) 14:08:53.96ID:o3SQFYgr それと pythonでnonlocal や global を使いたくなるケースは
根本的に設計間違ってるから、クソコード撒き散らす前に設計見直した方が良いよ
根本的に設計間違ってるから、クソコード撒き散らす前に設計見直した方が良いよ
503デフォルトの名無しさん
2018/10/06(土) 14:18:09.40ID:o3SQFYgr504デフォルトの名無しさん
2018/10/06(土) 14:21:52.83ID:sXtVjY80505デフォルトの名無しさん
2018/10/06(土) 14:28:45.50ID:9tCZRFgp スレッド内にカプセル化されとる
506デフォルトの名無しさん
2018/10/06(土) 21:20:49.04ID:vpFDdLxA507デフォルトの名無しさん
2018/10/06(土) 21:28:26.10ID:c8T9aSvT numpyの中身は知らんがtensorflowのどこがオブジェクト指向?
ホントにコード読んでんのかよ。。
なんか胡散臭い奴しかいねーな。。
ホントにコード読んでんのかよ。。
なんか胡散臭い奴しかいねーな。。
508デフォルトの名無しさん
2018/10/06(土) 21:38:32.17ID:9xvvgu9Y >>506
数式を表現するのにオブジェクト指向なんていらん
行列演算したいだけなのにオブジェクト指向なんて強制されたらクソだわ
あ、数式使わないドカタの反論は不要なのでよろしく
ドカタには分からん世界があるんだよ
数式を表現するのにオブジェクト指向なんていらん
行列演算したいだけなのにオブジェクト指向なんて強制されたらクソだわ
あ、数式使わないドカタの反論は不要なのでよろしく
ドカタには分からん世界があるんだよ
509デフォルトの名無しさん
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 に代表される
>> 伝統的な手続き型言語の正当な後継スクリプト言語、
>> 次世代の純粋手続き型言語です
>>
>> 関数型?オブジェクト指向?
>> そんなのは飾りです、偉い人にはそれが分からんのですよ(必死
Python信者からも賛同意見を頂けるとは嬉しい限り
・次世代言語12 Go Rust Swift Kotlin TypeScript
http://mevius.2ch.net/test/read.cgi/tech/1530664695/963/
>> 失礼な!!Python は FORTRAN/COBOL/BASIC に代表される
>> 伝統的な手続き型言語の正当な後継スクリプト言語、
>> 次世代の純粋手続き型言語です
>>
>> 関数型?オブジェクト指向?
>> そんなのは飾りです、偉い人にはそれが分からんのですよ(必死
510デフォルトの名無しさん
2018/10/06(土) 22:21:37.35ID:84qwAd3v 節子、それ便所の…
511デフォルトの名無しさん
2018/10/06(土) 23:25:06.73ID:wNGV+/Yb >>480さんへ
479です
自分は関数型に関しては完全に素人なのでなかなかに難しいです
単純に受けたイメージだとなんか凄くモノリシックに大きくなってしまいそう見えてしまう
関数型って何時もどういう風に制御するのか解らないなぁという感じで
基本的に難しい物なので自分には理解できないという感じなんだろうと思いつつ
今回は状態を通して何か掴めるかな?
と思いましたがそんなに甘くない感じですね
何にしても回答どうもです
関数型ってオブジェクト指向プログラミングシステムより更に難しいそうなのでオブジェクト指向より使える人が増えないような予感がします・・・
479です
自分は関数型に関しては完全に素人なのでなかなかに難しいです
単純に受けたイメージだとなんか凄くモノリシックに大きくなってしまいそう見えてしまう
関数型って何時もどういう風に制御するのか解らないなぁという感じで
基本的に難しい物なので自分には理解できないという感じなんだろうと思いつつ
今回は状態を通して何か掴めるかな?
と思いましたがそんなに甘くない感じですね
何にしても回答どうもです
関数型ってオブジェクト指向プログラミングシステムより更に難しいそうなのでオブジェクト指向より使える人が増えないような予感がします・・・
512デフォルトの名無しさん
2018/10/07(日) 01:21:33.80ID:Nojuqsx1 >>502
そもそも nonlocal やら global などという
スコープ宣言に限定した予約語が存在するのは
Python が(歴史上、おそらくは)唯一の存在である、
という事実を忘れてやいませんか?
言い換えると、スコープに関して Python2 以前の
新規リリースの時点から「根本的に設計を間違えていた」のがPythonなわけ
で、根本的解決を採用せず、行き当たりばったりに
nonlocal やら golobal といった泥縄式対策を採用したのがPython3
そもそも nonlocal やら global などという
スコープ宣言に限定した予約語が存在するのは
Python が(歴史上、おそらくは)唯一の存在である、
という事実を忘れてやいませんか?
言い換えると、スコープに関して Python2 以前の
新規リリースの時点から「根本的に設計を間違えていた」のがPythonなわけ
で、根本的解決を採用せず、行き当たりばったりに
nonlocal やら golobal といった泥縄式対策を採用したのがPython3
513デフォルトの名無しさん
2018/10/07(日) 01:25:43.47ID:iX7g/tHs ゴローバルってなんかカッコええやん。
ゴローさん風味が出ててさ。
ゴローさん風味が出ててさ。
514デフォルトの名無しさん
2018/10/07(日) 02:05:51.72ID:dWI643/y nonlocalってセンスがウケるなw
いっそのことnonglobalも用意したらどうかwwww
いっそのことnonglobalも用意したらどうかwwww
515デフォルトの名無しさん
2018/10/07(日) 14:29:17.30ID:+Rd5+blg オブジェクト指向のスレでなんで延々と特定言語の言語実装の話してんの?
バカなの?
バカなの?
516デフォルトの名無しさん
2018/10/07(日) 18:24:53.01ID:FMwg69WX OOPの結果としては
クラスライブラリとかは文句なしに使いやすいと思うんだけどね
String, Map, List, Set, Threadなんかは十分使いやすいよね?
その点を否定するやつはさすがにおらんやろ?
クラスライブラリとかは文句なしに使いやすいと思うんだけどね
String, Map, List, Set, Threadなんかは十分使いやすいよね?
その点を否定するやつはさすがにおらんやろ?
517デフォルトの名無しさん
2018/10/07(日) 18:26:20.74ID:qTxqyvp+ やっぱりクラスライブラリは使いやすいよね
文字列をポインタで操作してたCの時代に戻りたくない
文字列をポインタで操作してたCの時代に戻りたくない
518デフォルトの名無しさん
2018/10/07(日) 18:37:23.80ID:FMwg69WX そうなんよね
その点で見ればOOP大成功に見える
ただ、自前でクラスやクラスライブラリを書けつったときに
とたんにゴミの山になりかねないという
その点で見ればOOP大成功に見える
ただ、自前でクラスやクラスライブラリを書けつったときに
とたんにゴミの山になりかねないという
519デフォルトの名無しさん
2018/10/07(日) 18:59:53.35ID:blwtBRQv520デフォルトの名無しさん
2018/10/07(日) 19:18:00.94ID:zvJnD+aL >>516
使いやすいが、そこまで一般的なインターフェイスにするまで
いろんなソフトウェアの歴史があってこそなわけだ。
ユーザー定義でそのレベルのものを用意しようとすると途端に何も進まないか
クソインターフェイスをひたすら強要される現場となる。
使いやすいが、そこまで一般的なインターフェイスにするまで
いろんなソフトウェアの歴史があってこそなわけだ。
ユーザー定義でそのレベルのものを用意しようとすると途端に何も進まないか
クソインターフェイスをひたすら強要される現場となる。
521デフォルトの名無しさん
2018/10/07(日) 19:37:46.92ID:FoRhSX54 クラス単体はオブジェクト指向だけど結局それを使うところでは手続き型にしてしまう。
522デフォルトの名無しさん
2018/10/07(日) 22:20:34.82ID:mIq+f5AO ならC++のメソッドをすべてスタティックで書けばいい
そうすればメンバ変数も不要
スタティックのメソッドは当然メンバ変数にはアクセスできない
手続き型なら、入力の構造体と出力の構造体を関数を別で渡す程度で済むハズ
オブジェクトの状態を常に外側で管理する必要があることになる
MS-WindowsのAPIは
ウィンドウハンドラをひとつのオブジェクトとみなして
ウィンドウハンドラを経由して操作や設定を行ってる
ウィンドウハンドラも一つのオブジェクトで入力も出力もできるシロモノになってるからな
そうすればメンバ変数も不要
スタティックのメソッドは当然メンバ変数にはアクセスできない
手続き型なら、入力の構造体と出力の構造体を関数を別で渡す程度で済むハズ
オブジェクトの状態を常に外側で管理する必要があることになる
MS-WindowsのAPIは
ウィンドウハンドラをひとつのオブジェクトとみなして
ウィンドウハンドラを経由して操作や設定を行ってる
ウィンドウハンドラも一つのオブジェクトで入力も出力もできるシロモノになってるからな
523デフォルトの名無しさん
2018/10/07(日) 22:25:31.13ID:mIq+f5AO UNIXクローンのシステム関数にもwriteやreadがある
readやwriteはファイルディスクリプタを経由して
なにかしらに読んだり書いたりする関数だからな
つまりファイルディスクリプタをオブジェクトとみなして
読んだり書いたりしてるとみなしてると考えて差し支えない
コレはC++のようなオブジェクト指向言語で継承して実現できる内容と同じとみなせる
readやwriteはファイルディスクリプタを経由して
なにかしらに読んだり書いたりする関数だからな
つまりファイルディスクリプタをオブジェクトとみなして
読んだり書いたりしてるとみなしてると考えて差し支えない
コレはC++のようなオブジェクト指向言語で継承して実現できる内容と同じとみなせる
524デフォルトの名無しさん
2018/10/07(日) 22:36:06.11ID:B8+uQuvb オッカムの剃刀の逆を地で行ってるなw
オブジェクト指向の何がダメか腑に落ちた気がするよ。ありがとう。
オブジェクト指向の何がダメか腑に落ちた気がするよ。ありがとう。
525デフォルトの名無しさん
2018/10/07(日) 22:46:39.84ID:qTxqyvp+ 全部スタティックにするってそれ
スタティックおじさんじゃねーか!
スタティックおじさんじゃねーか!
526デフォルトの名無しさん
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マンセーではない
モノリシックに大きくなってしまうという印象は杞憂。
むしろ関数呼び出を一行ずつ言い切りみたいにつらねた宣言的書き方に近づく
リスト = 関数 リスト;
リスト = 関数 関数 リスト;
...
見たいな感じ。
状態は、本当に必要なもの以外は自然に登場してこなくなりその分複雑さを低減できる感じ。
どうしても状態管理が必要な処理は、
副作用の排除された純粋な言語の場合モナドみたいな物を持ち出さなければならないかもしれないが
副作用も許容している言語では、手続き的書き方をして状態を管理する形になると思われ、
どうしても必要な状態管理の煩雑さを関数型パラダイムで根本解決できるとはオレ的にはちょっと考えにくい。
難易度に関して言えば確かに学習コストは若干かかるけど、
いまはJavaやC++にもStreamやfoldなど関数型的なプログラミングのための機能が大急ぎで(かなりあせっている感じ)
取り入れられつつあるのであんまり肩肘張らないで、
ttps://qiita.com/stkdev/items/5c021d4e5d54d56b927c
https://ubiteku.oinker.me/2017/05/08/purpose-of-functional-programming/
といった導入的な情報などを参考にm日々の設計・開発の
局所的なコーディング範囲でもいいから使えるとことから使っていけば技術的な視野が広がるんじゃないかと思う。
ちなみに俺はそのサイトとは何の関係もないし、functionalマンセーではない
527デフォルトの名無しさん
2018/10/07(日) 22:51:20.95ID:9RTjDYv/ ミドルウェアは天才が書くから天才の好む言語で書く
クライアントコードはアホが書くからアホでも分かる手続き型で書く
開発者の能力に応じて分業可能にした功績はある
だいたい天才とアホが同じ言語使ってたのが頭おかしい発想だった
クライアントコードはアホが書くからアホでも分かる手続き型で書く
開発者の能力に応じて分業可能にした功績はある
だいたい天才とアホが同じ言語使ってたのが頭おかしい発想だった
528デフォルトの名無しさん
2018/10/07(日) 22:52:56.75ID:9RTjDYv/ アホはひらがなだけ使え
漢字を使うと他のアホが読めなくなる
漢字を使うと他のアホが読めなくなる
529デフォルトの名無しさん
2018/10/07(日) 22:52:57.06ID:9pTh9QRI そ、そうなのか…
なんか熱でもあるんじゃね?
なんか熱でもあるんじゃね?
530デフォルトの名無しさん
2018/10/07(日) 23:03:08.28ID:zvJnD+aL いやレイヤーや粒度によって向き不向きな言語、パラダイムがあるってだけだろ。
天才とかアホとか関係ねーわ。
まあそういう判断しかできない奴は例外なくアホだろうけれど。
天才とかアホとか関係ねーわ。
まあそういう判断しかできない奴は例外なくアホだろうけれど。
531デフォルトの名無しさん
2018/10/07(日) 23:07:07.43ID:9RTjDYv/ まあ例外なくアホとかいう恥ずかしい書き込みをするような奴は例外なく知的障害者だろうけど。例外なく、なw
532521
2018/10/07(日) 23:12:36.26ID:4NXYL+If staticに使い道なんてあったんだ・・・
533デフォルトの名無しさん
2018/10/07(日) 23:20:21.45ID:9pTh9QRI >>516
それらlibraryレイヤははよく練り上げられてまぁ使いやすいと思うよ。
でもよく考えてみてよ、納品を決められ短期間に仕様の策定からQAまでこなさなければならない
アプリケーションソフトウエア開発とそういった長年同じような機能のライブラリが繰り返し作り
直されてきたものは同一に論じることは無理でしょ。
それにレイヤが全然違うじゃない。
下から見れば数百個程度の機械語>言語の文法レベル>アルゴリズムのライブラリレベル
>それらを組み合わせ具体的なあるぴにための処理を折りませたアプリレイヤ>…
レイヤによって全然特性が違うんだよ。適した表現手段は当然違うと俺は思う。
つまりアルゴリズムのライブラリレベルに適した表現手段が必ずしもその上位にある
複雑な応用レベルの表現には適しているとは言いがたいのではないかということ。(ここ伝わりにくいと思う)
これは今でも俺も日々とても悩まされている問題。でもまそれはしzでんげんしょうみたいなものでしょうがないいんだよ。
誰も悪くないし。
本当に問題は、オブジェクト指向の名の下に非科学的非合理的で変な表現手段が流布し
(一部の人間が意図的に拡散させ)ソフトウエア開発の技術的水神をを後退させ混乱させてしまったこと。
俺はこの一点を問題視しているんだよ。
また飲みながらのポエムで悪いな。
それらlibraryレイヤははよく練り上げられてまぁ使いやすいと思うよ。
でもよく考えてみてよ、納品を決められ短期間に仕様の策定からQAまでこなさなければならない
アプリケーションソフトウエア開発とそういった長年同じような機能のライブラリが繰り返し作り
直されてきたものは同一に論じることは無理でしょ。
それにレイヤが全然違うじゃない。
下から見れば数百個程度の機械語>言語の文法レベル>アルゴリズムのライブラリレベル
>それらを組み合わせ具体的なあるぴにための処理を折りませたアプリレイヤ>…
レイヤによって全然特性が違うんだよ。適した表現手段は当然違うと俺は思う。
つまりアルゴリズムのライブラリレベルに適した表現手段が必ずしもその上位にある
複雑な応用レベルの表現には適しているとは言いがたいのではないかということ。(ここ伝わりにくいと思う)
これは今でも俺も日々とても悩まされている問題。でもまそれはしzでんげんしょうみたいなものでしょうがないいんだよ。
誰も悪くないし。
本当に問題は、オブジェクト指向の名の下に非科学的非合理的で変な表現手段が流布し
(一部の人間が意図的に拡散させ)ソフトウエア開発の技術的水神をを後退させ混乱させてしまったこと。
俺はこの一点を問題視しているんだよ。
また飲みながらのポエムで悪いな。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市内閣の若い世代の支持率は92.4% FNN世論調査★3 [♪♪♪★]
- 【サッカー】日本代表の南野拓実は左膝前十字靱帯断裂の重傷 全治は明らかにされず フランス杯で負傷 所属先のモナコが発表 [久太郎★]
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★7 [少考さん★]
- 【兵庫】「女性を妊娠させる権利と30万ドル渡す」にだまされ暗号資産50万円相当詐欺被害 西宮市の男性会社員(50) [ぐれ★]
- 日本の労働生産性28位に後退、先進7か国で最下位…デフレやコロナ禍で経済の低成長続く [ぐれ★]
- 【MLB】村上宗隆の『小型契約』は吉田正尚の影響か 市場が思いのほか停滞 「NPB打者に懐疑的。吉田が高すぎた」 [冬月記者★]
- 【高市へずま鹿さんネトウヨ悲報】ついに鹿せんべい屋のおばちゃんが鹿をしばいてる所をTikTokerに激写されてしまう... [856698234]
- 駅弁業界ヤバイ「な・ん・で・買ってくれないのぉおおおおおお!」 [592058334]
- 【高市画像】松屋の完全新作メニュー‼wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [986198215]
- アマゾンのアダルト下着のコーナー
- 【高市悲報】超有名YouTuber、「米山隆一が逮捕される」というデマ動画が20万回再生、無事訴えられる🥹 [931948549]
- 【オギャリズム】中川翔子、双子を出産 [384232311]
