オブジェクト指向はオワコン

■ このスレッドは過去ログ倉庫に格納されています
2023/08/26(土) 22:00:53.85ID:H4l7y46b
最近の言語には採用されないことが増えている
2024/02/04(日) 21:58:45.40ID:nqsMiwRK
インターフェース楽しいな~
継承無しでコーディングできる~
2024/02/04(日) 23:05:40.25ID:iyTJzl7x
塊って言いたいだけ
775デフォルトの名無しさん
垢版 |
2024/02/04(日) 23:11:46.13ID:SuDI4pWX
>ひと塊のルーチンを“関数”として入り口出口を決めましょう
これ現役引退してるような世代の方ですよね?
2024/02/05(月) 10:19:20.77ID:z455Qu8w
役割で固めるってのを忘れてる
2024/02/05(月) 11:38:56.86ID:iuJxPrpx
横断的関心事の意味が分からんと常々思っていたけど
役割で固めるのをやめるという意味なのかね
固めようと思ったことがない奴にとっては無意味なことだ
2024/02/05(月) 12:31:22.93ID:29NJAnme
横断的にシコシコする役割の塊がオブシコである
2024/02/05(月) 17:30:42.79ID:UM+1T8m6
オブジェクト指向はモジュラリティを高めるために考え出されたものだが「どの抽象化階層のモジュラリティを高めるものなのか」という大前提を理解していないと何を見てもオブジェクト指向だと感じるようになる
2024/02/05(月) 23:45:04.18ID:29NJAnme
そりゃオブシコするぐらいだからモジャラリティは高いだろ
781デフォルトの名無しさん
垢版 |
2024/02/07(水) 14:59:43.29ID:LJRNIYaK
1. 簡単な言葉を使う
頭が良い人は、複雑なことや専門知識も「簡単な言葉」で説明することができます。
この能力は、深い理解があるからできること。相手が理解しやすいように情報を整理して伝えることは思いやりでもあります。
https://news.yahoo.co.jp/expert/articles/9bb7a62121796847a941127e3d5040008fedd464

クリントン大統領にどんな強大な権限が有っても、自らのチンポがしこしこしてしまうのは止められない!

class チンポ extends クリントン{
     super.不適切な関係;
}

クリントンの再定義、クリントンの拡張された人格ということだ!
2024/02/13(火) 12:31:45.94ID:1UgkqCq+
世界一オブジェクト指向に忠実なメインクラスできたで

class Main():
def do():
pass

m=Main()
m.do()
2024/02/13(火) 15:11:48.80ID:g/oXQBQp
オブジェクト指向はオワコン
継承はよくない文化
784デフォルトの名無しさん
垢版 |
2024/02/13(火) 17:38:57.37ID:TeIoV+iR
Template Methodパターン便利ですよ
2024/02/13(火) 18:33:53.66ID:vbRTXFPD
has a関係は抽象度の低いクラスを参照することはマナー違反ではない
is a関係は自分よりも抽象度低いクラスを継承したらマナー違反だよな
786デフォルトの名無しさん
垢版 |
2024/02/13(火) 19:00:08.50ID:mLNp/E4P
継承を理解してれば問題無い
理解していないけどら問題無く使える道具は存在しない
つまり須く低レベルということ
2024/02/13(火) 19:17:02.49ID:022XTqy3
>>786
俺は使えるから問題ないんだが部下や上司に無能がいると困る
全ての言語で機能ごと消去するべき
2024/02/13(火) 19:19:14.84ID:cHpLMfgk
C/C++でいいところを無能のためにRustでわざわざメモリ管理を強制的に縛るのと一緒やね
2024/02/13(火) 19:54:20.90ID:XGO25OBO
オブジェクト指向って>>1みたいな頭の悪い人でもプログラミングできるようにするためにあるんだよ
難しいのは>>1みたいな馬鹿が>>1みたいな馬鹿のためにオブジェクト指向に則ってプログラミングする行為であり、>>1みたいな馬鹿がオブジェクト指向で設計されたコードを扱うのは難しくない
オブジェクト指向がオワコンな訳が無い
790デフォルトの名無しさん
垢版 |
2024/02/13(火) 20:27:17.94ID:mLNp/E4P
>>787
無能がいる限り何の解決にもなってない
リスクが下がったと勘違いしてるだけ
2024/02/13(火) 20:32:56.11ID:VRA/nuAd
>>788
Rustを使えない無能がC/C++を使って穴を生み出し続けている現実を見ようぜ
792デフォルトの名無しさん
垢版 |
2024/02/13(火) 21:20:27.36ID:mLNp/E4P
>>791
その無能がrust使ったところでろくなものは生み出せない
包丁で怪我する人がいるから包丁は悪、と言ってるのと同じ。
別に主張するのは自由だがそれで包丁が消滅することはない
2024/02/14(水) 03:16:18.02ID:7f34VUqx
頭の悪い人がプログラミングできるためってたまに見るけど疑わしいわ
頭の悪い人がちゃんと設計して、多態性を活用してるのを見たことがない
ただメモリの自動解放とかライブラリに頼ってるだけで、
そういう利便性はオブジェクト指向とあんまり関係なくね?
2024/02/14(水) 06:53:24.91ID:1rro2+lE
知らないのか?今は転職ブームのせいで文系出身の頭悪いプログラマが大量発生してる
そいつらのせいで言語が変わらなくては生けない時代になった
795デフォルトの名無しさん
垢版 |
2024/02/14(水) 08:07:28.98ID:M2AyybwD
言語が変わっても頭悪かったらどうにもならないよw
2024/02/14(水) 08:40:34.28ID:y6T/tEC4
>>795
多少はマシになるやろ
797デフォルトの名無しさん
垢版 |
2024/02/14(水) 10:07:41.88ID:M2AyybwD
>>796
無能じゃコンパイル通せないから動かせない
つまり逆に悪くなってる
2024/02/14(水) 10:15:13.33ID:Z6/Yikm0
>>797
無能が進捗管理で炙り出されるから全然マシ
2024/02/14(水) 10:46:51.26ID:4THDuETy
>>797
本番段階でバグが出るよりマシ
800デフォルトの名無しさん
垢版 |
2024/02/14(水) 11:08:35.63ID:t8DY/Tt9
コンパイル通すのが難しいと無能はコンパイル通ったからOKという感覚になるので一長一短

何事も良い面悪い面があるのに無能は片面だけしか見ない
2024/02/14(水) 11:22:35.02ID:1xW2DpZI
>>800
最低限コンパイラの通れば多少見れるコードになってるので、有能がコードをレビューしやすい
802デフォルトの名無しさん
垢版 |
2024/02/14(水) 12:27:44.94ID:M2AyybwD
>>798
それは言語の役割じゃない
全然マシでもなんでもなくて草
803デフォルトの名無しさん
垢版 |
2024/02/14(水) 12:31:09.06ID:M2AyybwD
>>799
どっちでも一緒
納品できないのに「本番でバグが出るよりは良い」と言い張るのはアタオカ
2024/02/14(水) 13:02:59.82ID:qQWVhIbb
現実は納期というものがあるから効率重視でCC++使って適当に作れたほうがありがたいんだよなあ
バグなんてある程度は知らんぷりしていい
わざわざRustを使って完璧を求めるのは無駄
2024/02/14(水) 13:03:09.87ID:OE64F1T2
長所も短所も両方知っている知識人を理想とするのは
商売とはあまり関係ない理想だ
商売を重視しないのであれば長所も短所もわりとどうでもいい
806デフォルトの名無しさん
垢版 |
2024/02/14(水) 13:18:52.38ID:U1pcKTg+
>>801
コンパイルを通しやすいかどうかとコードが見やすくなるかどうかに正の相関関係は無い

加えてコンパイルを通しにくくなればなるほどコンパイルを通すための手助けが当然必要になる

「身の丈に合った言語を」 by 萩豚
807デフォルトの名無しさん
垢版 |
2024/02/14(水) 13:20:42.45ID:eD+V22zq
Rust習得できない馬鹿が書いたC++コードの保守、やりたくなさすぎる
2024/02/14(水) 13:57:57.05ID:Z6/Yikm0
>>803
本番でバグとか酷い炎上案件。
クライアントにとっては悪夢ですなぁ。
納期遅れのほうがまだ見える分マシ。
2024/02/14(水) 13:59:03.81ID:AmCG1+WQ
>>806
コンパイルできる人材を確保できるかどうかは中途採用ガチャしまくればいける
コンパイルできねえやつは捨てる、それだけだ
810デフォルトの名無しさん
垢版 |
2024/02/14(水) 14:56:27.36ID:8lIAACZZ
>>807
だれがあなたを頼るの?
811デフォルトの名無しさん
垢版 |
2024/02/14(水) 15:03:18.56ID:8lIAACZZ
>>808
都合良く「納品はできる」妄想を前提として話を進められるならどうとでもなる
結局無能でもどうにかなるなんて全く現実的ではない、rust信者の詐欺的妄言なのでどっちでも一緒
812デフォルトの名無しさん
垢版 |
2024/02/14(水) 16:53:53.91ID:ry67cZRi
>>809
技術者をまともに育成する術も評価する術も持たずガチャするしか脳の無い無能企業には有能なやつほど寄り付かない

そうなると渋いと評判の某ガチャUR排出確率並み(0.3%)になるから100回回しても有能1人雇える確率は3割にも満たない
運良く雇えてたとしても数年以内に転職して抜ける確率は逆に8割以上

身の丈に合わない選択は破滅への近道
2024/02/14(水) 17:49:37.27ID:kwXXlBt4
どこまでオブジェクト設計するべきかが良くわからん
例えばトランプゲームを作ろうとした時のカードについて
数字込みの絵柄と表示用の画像くらいしか必要ないと思うけど
わざわざCardクラスCardDeckクラスとかを用意する必要があるの?とか
2024/02/14(水) 18:11:12.61ID:J37aOx7P
Deckが内包するデータはCardの配列のみだとしても
シャッフルやドローなんかの操作を配列として外から行うより
Deckとして備えてる方がシンプルに保てそう
815デフォルトの名無しさん
垢版 |
2024/02/14(水) 18:32:43.17ID:xYPMwtK4
>>813
クラス以外のユーザー定義型がないならオブジェクト指向よりの作り方でなくてもCardクラスやCardDeckクラスくらいは作るんじゃない?

それらにメソッドを生やしてゲームルールを実装していくのか
それともそれらをデータとして扱う関数を別のところに書くことでゲームルールを実装していくのか
それぞれ良い点悪い点があるので一度両方で作ってみるといいと思う
816デフォルトの名無しさん
垢版 |
2024/02/14(水) 18:36:07.49ID:xYPMwtK4
>>814
DeckモジュールとかGameモジュールにドローやシャッフルなどのDeckを操作する処理をまとめておくってのでも別に不都合ないよね?
2024/02/14(水) 18:44:53.20ID:OE64F1T2
enumがオブジェクトではない言語では迷うが
すべてがオブジェクトだったらenum Cardでいいのでは
2024/02/14(水) 19:19:39.63ID:g/tbjQoZ
スートが切り札(トランプ)に変わるようなゲームでは
判定で「こいつはいまトランプだから」で例外処理するのか
カード側で「いまトランプです」したらいいのかの設計の話だわな
2024/02/15(木) 12:39:33.69ID:q4O0G3u8
>>793
>ライブラリに頼ってるだけで
そのライブラリに頼ってるだけを実現できるのがオブジェクト指向の功績だと思ってる
昔のWin32APIみたいなライブラリとインスタンス生成してからインスタンス.メソッド形式で利用するライブラリと比較したらライブラリの扱いに対するお手軽&簡単度合いがぜんぜん違う
2024/02/15(木) 19:49:13.54ID:b088ZsVf
いやwin32apiだろうがapiそのものがすでに「オブジェクト指向」だから
手軽とか簡単とかはオブジェクト指向とっくに通り越してそのように改良された結果ってだけ
このスレ見てると「オブジェクト指向」が特別なナニカだと思ってる人も多くてアランケイも困惑するよw
821デフォルトの名無しさん
垢版 |
2024/02/15(木) 20:05:57.93ID:Zy70aZMD
「オブジェクト指向」が特別なナニカじゃないのであれば、「オブジェクト指向プログラミング言語」は「プログラミング言語」でよくなってしまう

これまで「オブジェクト指向プログラミング言語」という言葉を使った人間はとんでもないガイジということになる
822デフォルトの名無しさん
垢版 |
2024/02/15(木) 23:20:24.51ID:ibzEiIzs
20年前のあれは何だった?どいつもこいつもオブジェクトだーと喚いてたくせに。屑どもが
823デフォルトの名無しさん
垢版 |
2024/02/16(金) 00:12:23.56ID:L7DYjGhm
ここまでくると糖質っぽいな
オブジェクト指向はオワコンと言い続けて何年経過してんだよw
2024/02/16(金) 06:40:28.27ID:HTdB8AjD
オワコンにオワコンと言ってなにが悪い
2024/02/16(金) 08:47:18.11ID:hfFr1EkU
オブシコオhル



けど、脳汁が出るのは、なんでもアリなC++なんだよなあ
826デフォルトの名無しさん
垢版 |
2024/02/16(金) 08:49:55.02ID:TCjahJiL
これこれ
オウムみたいな感じ
はなから議論をする気が無い
オワコンオワコン繰り返して気持ちよくなるだけ
2024/02/16(金) 17:46:12.70ID:/xV361+6
非論理的=気持ちよくなる
専門用語を回避する現象?
2024/02/16(金) 23:46:53.13ID:7B7dg9RO
自分がオブジェクト指向で挫折したから
あんなの一時の流行りでしかない!って喚いて溜飲を下げようとしてるけど
そもそも理解しないで挫折してるから「あんなの」が永久に
90年代のC++の時の“自動車の車輪を付け替える”からアップデートしない
2024/02/17(土) 01:14:52.71ID:sBa/KHO/
アップデートという目標は分かったが現時点では違う目標を持つ者にとって
ふつうに考えると目標を達成するためには目標を変更しないのが合理的
問題は、どうすれば永久に合理的であり続けるのをやめられるか
830デフォルトの名無しさん
垢版 |
2024/02/17(土) 11:49:08.21ID:f/G7Vx68
オブシコで挫折してない人なんていません!!
2024/02/17(土) 12:25:59.71ID:hmS5aeTe
俺がいる
中途半端ってぶっちゃけ怖いよね

>>826
議論っていうか、使えと言われた言語・ライブラリ(SDK)使うんだからね結局
好き・嫌い、とかって雑談してりゃいいんだよ

俺は、継承を使いこなせるいい漢になりたいぜ
2024/02/17(土) 13:09:34.49ID:SNH81JMI
オブジェクト指向だろうがオブジェクト指向言語だろうが語りたいのならマ板でやれ
雑談どころかここで議論とか正気かよ。議論してもプログラム技術の役に立たないくらいわかるよな
833デフォルトの名無しさん
垢版 |
2024/02/17(土) 13:51:00.19ID:f/G7Vx68
>>831
はっきり言う、お前はオブシコのことを何もわかってない

>>832
お前もだ

オブシコは挫折してからが始まりだ
834デフォルトの名無しさん
垢版 |
2024/02/17(土) 13:53:44.82ID:f/G7Vx68
intではなくてMoneyだ
Moneyを継承してYenを作れ

stringではなくてAddressだ
Addressを継承してPrefectureを作れ

本物のオブジェクト指向を経験しろ
ぜったい挫折するから
2024/02/17(土) 14:31:27.57ID:JQbQK4DF
>intではなくてMoneyだ
当たり前
>Moneyを継承してYenを作れ
意味不明
オブジェクト指向で作るならYenはMoneyの一属性

>stringではなくてAddressだ
当たり前
>Addressを継承してPrefectureを作れ
意味不明

オブジェクト指向だから挫折したのではなく間違ったオブジェクト指向を学ぼうとしたから挫折したんだな
836デフォルトの名無しさん
垢版 |
2024/02/17(土) 16:18:56.35ID:f/G7Vx68
↑ オブシコ厨ってこんなシロートばかりなんですよ
2024/02/17(土) 17:52:41.44ID:chUgujl0
>>832
ムに置いときゃ、ムに資するネタがまじるけどね
俺は後から来たけど
2024/02/17(土) 17:56:31.13ID:oJgej1EK
>>835
MoneyにbaseCurrency問い合わせると“Yen”って返すように作るよなぁオブジェクトなんだから
2024/02/17(土) 19:30:44.83ID:2JOYf9WZ
>>832
迷惑だからマに技術ネタ誘導すんな。
840デフォルトの名無しさん
垢版 |
2024/02/17(土) 23:59:55.91ID:RsjvkJW8
>>824
本当にオワコン化したものは話題にすらならんよ
今どきポケベルはオワコンなんてスレ建てる奴なんていないだろ?
つまり、そういうこと
2024/02/18(日) 02:06:18.29ID:jMiNlzvA
ポケベルを話題にした自分自身を否定するより
オブジェクト指向にファイティングポーズする方がよっぽどポジティブじゃないか
2024/02/18(日) 06:52:31.86ID:AGcN1oEW
APIやライブラリを一切使わず、自分自身で「処理をしてオブジェクトを返す部分」も作らずにどんなプログラムが作れるんだよ
現代でプログラム書いてるやつは意識しなくても使うしか無い手法じゃないか
使わずにHelloWorldすら書くのは超難しい
2024/02/18(日) 07:05:06.57ID:BTJ6Zkap
システムコールだけでHello Worldやるの無茶大変だった思い出
844デフォルトの名無しさん
垢版 |
2024/02/18(日) 10:14:36.02ID:5IBLHZNo
API使ってればオブジェクト指向とか頭になんか湧いてるだろ
2024/02/18(日) 10:16:24.04ID:BTJ6Zkap
>>844
そんなこと言われてなくね?
846デフォルトの名無しさん
垢版 |
2024/02/18(日) 11:06:51.79ID:18G3CSzu
「APIそのものがオブジェクト指向」だと主張してるやつはいるね>>820
2024/02/18(日) 12:13:41.03ID:RIbrKfRB
とりあえず1000行くらいベタ打ちでプログラム書いて
書いたのをリファクタリングついでにクラス分けして
またダーッと書いてって繰り返せばいいよね?
2024/02/18(日) 12:17:44.83ID:NoFg1fuK
>>847
今世紀に出てきた様々なプログラミング言語はほとんどがクラスをサポートしていない
クラスは役に立たず害が大きいとの共通認識があるため
849デフォルトの名無しさん
垢版 |
2024/02/18(日) 13:06:18.47ID:2M17hFnk
>>848
バカの一つ覚え
2024/02/18(日) 14:18:51.57ID:jMiNlzvA
APIは今でも関数とグローバル変数
stdinとかstdoutとか
グローバル変数が一番最初にオワコン化し、オブジェクト指向は二番目以降と想定された
2024/02/18(日) 16:50:37.61ID:g+lvGDPK
オブシコで書かれたAPIとかライブラリってのならある。ってなら書いた
COMとかね 原理的には、ラッパがあれば、避けることはできる
2024/02/18(日) 19:30:26.46ID:K/iFT05J
これで動くOSあるなら分からんでもない
OS.boot()
2024/02/18(日) 20:19:38.98ID:FiBYienL
低レベルはまた違うでしょ

ってだけではなんなので、ちょっとだけ手を動かしたよ
https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Library/UefiBootManagerLib
854デフォルトの名無しさん
垢版 |
2024/02/19(月) 01:20:09.81ID:nPOSkLxV
>>848
事実認識ができてない
JavaScript、C#、Python、Ruby、C++、Java、Kotlin
クラス扱える言語はいくらでもあるし、そもそもクラスや継承を使えない=オブジェクト指向じゃないって訳では無い
クラスはお前みたいな馬鹿には使いこなせないからクラス以外でオブジェクト指向な書ける方法が模索されたんだよw
2024/02/19(月) 01:36:14.67ID:1O4I6mF/
どの言語かに関係なく
クラス継承でプログラミングするやつはバカしかいない
2024/02/19(月) 02:23:23.32ID:T5tehfX7
特定のルートクラスに縛られる継承はだいぶむかしにオブジェクト指向のあまり良くない実装として
仕様を残しながら使わない方がベターになってるわな
使うクラスをオブジェクトとして別個にクラスに組み込むコンポジションの方が主流
「継承というのがオブジェクト指向!」とかいつの時代のおじいちゃんだよ
2024/02/19(月) 02:37:07.20ID:TafNbO5j
↑2000年代で止まってるオッサン
2024/02/19(月) 07:21:21.34ID:94Ygw4Cz
あの当時の人なら一度は、オレオレプロジェクトで継承を使いすぎた経験ってあると思うのね
2024/02/19(月) 08:07:57.52ID:GOMVHdKw
継承しまくって訳わからん事になるなら新しいクラスにした方がいいと思うけどなあ
File
-◯◯FileBase
--◯◯FileStructure
---◯◯FileModel
----◯◯FileInstance

みたいなのよりFile2を定義し直した方が遥かにマシ
2024/02/19(月) 08:13:47.31ID:Y0uHI/e6
ファイル名なんかもそうだが
File_20240219
のようなユニークIDつけておくといくら被っても困らない
2024/02/19(月) 09:09:06.20ID:94Ygw4Cz
重複(安易なコピペ)コードはちょっとでもいけませんってきつく言われて、
それを避けるように継承をテキトーに使いすぎた記憶はあるんだよね

is-a 原則を守って、責任者が正しく設計しましょう
2024/02/19(月) 09:20:08.17ID:94Ygw4Cz
似たようなコードが出るなら、サブルーチンにすりゃよかったんだけどね
あの頃は名前空間をあんまり使いこなせてなくて、なんでもクラスに押し込みゃいいと思ってた
863デフォルトの名無しさん
垢版 |
2024/02/19(月) 09:26:15.27ID:5htgrxhu
>>855
と、継承すら理解できない素人が申しております
2024/02/19(月) 10:20:44.59ID:stH4FHBR
Rustが重複コードは二度と書かないってポリシーだっけ
最初の一歩踏み出すのにとんでもなく時間かかりそう
2024/02/19(月) 10:25:51.91ID:Xye0EN8a
何をもって重複コードとみなすのかなぁ
たまたま別の機能で同じコードになったとかは
まとめると後で痛い目に遭うよな?
866デフォルトの名無しさん
垢版 |
2024/02/19(月) 10:35:06.92ID:62DfF/9H
>>864
Rustは書かなきゃいけないボイラープレートが多いから重複コードも多い
コピペ継承とマクロ継承がよく使われてる
2024/02/19(月) 10:54:32.58ID:VWZKMKLS
c++ コンセプトをそのまま変数のインターフェイスに使えればなぁ、と思う事はある。
2024/02/19(月) 11:18:30.32ID:W0+AhDGC
>>864
Rustも他の言語と同様に重複コードがあれば関数として切り出すだけだよ
その時に異なる型に対してもトレイト境界により安全にジェネリック化がしやすく多用されてるね

>>866
Rustは継承ではなく合成と移譲をするためその宣言は増えるけどそれらを重複コードとみなすのはありえないよ
869デフォルトの名無しさん
垢版 |
2024/02/19(月) 18:18:36.14ID:NzCkUvZW
>>868
どういう構造で作られているかは重複コードとみなすかどうかには一切関係ない
変更をロックステップで適用しなければいけないのならどういうものであれそれらは重複コード
2024/02/20(火) 00:04:11.84ID:LUfJNkJd
スマポみたいな機能の重複回避には昔は継承を使った
今はジェネリクスを使う
昔の方法ではスタックのint型とヒープのInt型を統一できない
871デフォルトの名無しさん
垢版 |
2024/02/20(火) 02:06:05.00ID:u4Uobn3a
すべての型に対して全て同じ実装でよければジェネリクスで良いが一部の型でカスタマイズが必要になるといろんな障害が出てくる
2024/02/20(火) 05:49:02.76ID:/gOXQNrB
>>871
それは普通によく起こることだが全く問題ない
その型ごとの差異の機能を合成するだけで対応できる
もちろんジェネリクスのままでよい
2024/02/20(火) 06:10:00.38ID:jusHGvnd
インタプリタならそれでいいんだけどね。。(個人の感想です
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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