『オブジェクト指向』⬅これなに?10年ぐらいプログラミングしてるけどわからん [158478931]
■ このスレッドは過去ログ倉庫に格納されています
バカにも分かるように説明できる人が誰もいないのはなぜ? コレで書けるという事は
物事の整理や理解ができていて
仕様も理解していると思う ラムダを返すラムダ
a = ->{
x = 0
->{ x += 1 }
}.call
a.call # => 1 >>487
堂々としてればいいと思うけどなあ。必要なことができてればいいじゃんそういうの
チーム開発でそれが求められてるとかなら話は別だけど オブジェクトとか思想うんぬんより
わかりやすいコードにろや >>494
これよね
自分の書いたコードをメンテするのは他人ということを理解してないやつが多いのよね 食べ物とか商品とか現実にある物体で例えておしえてくれ ネットに上がってるサンプルコードってメイン関数内で完結してること多いから勘違いしちゃうよね
かくいう僕も最初に教科書読んだとき変数の名前はaとかbにしなきゃダメなものだと勘違いしてた >>496
料理人クラスがあるとする
そいつは「料理」かできる
ところで、肉料理は焼きたいし、鍋料理なら煮たい
料理と言っても食材によって調理法が変わってくる
そのへんの知識やスキル(メンバ変数、メンバメソッド)を全て持ってるのが料理人クラス
とする
そうすると、我々は料理人クラスに食材を投げるだけで、妥当な料理が返ってくることを期待できる
いちいち、油の温度はいくらだとか調味料の分量がどうだとか、外野がくちを出すまでもない
ちなみに、俺は減塩派だ
だから料理人に塩少なめでオーダーしたい
クラスがすでに持っている知識を、敢えて外部から注入する仕組みを依存性の注入という
料理人はいつもどおりの料理をするけど、外部からうけた注文に料理の塩味は依存する
だから、依存性を注入するという
ちなみに、この依存性の注入が便利だからといって
片っ端からすべての料理に砂糖塩酢醤油味噌が入れられるようにしたバカタレがJavaだ 名前が悪すぎるよな
例えを出せばすぐ理解できるし今時はレゴブロックでプログラミングできるから視覚的にもはるかに理解しやすい >>452
アラン・ケイじゃなくてチューリングなの? >>496
マザームーン:親クラス
継承
政策集団:子クラス < マザームーン
extend "🏺"
private:
先生方
public:
安倍晋三、岸田文雄
KICKBACK(okane){ okane--; return okane; }
destructer(){ /*山上*/ } >>500
その人知らないからどっちが先かは答えられないけど
チューリングのは棄却された案で評価は受けてない 10進数
1 + 1 = 2
2進数
01 + 01 = 10
ナニカ
() + () = (())
(()) + (()) = (((()))) ここ見てるとアホばっかりでしばらく安泰だなーと安心する 俺パソコンのこと何も知らなくて、プログラミングの知識とかなんもないんだけど
文章書くのにTeXってソフト使ってるんだけど
これってオブジェクト指向だったりする? どの分野にもある、最初の発見者がネーミングセンスなかったせいで変な感じになるやつだろ >>507
まずプログラミング言語じゃなくてマークアップ言語
そのうえでオブジェクト指向かどうかと言えば、オブジェクト指向ではない
しいて言えば手続き型 >>507
TeXはプログラミング言語じゃ全くなくて、自分の書いてる文章の整形と見栄えを指定してるだけだよ >>511
マクロ作ったりもしてるんだけどそれも無関係? テフもマクロも、対象をどうにかする
ってことだからしいて言うなら手続き型だよ
オブジェクト指向ってのは、その対象自体にどうにかするって処理がくっついてんだよ
どうにかする(対象)
と
対象.どうにかする()
の違い >>513
プログラミングがプログラミングたる所以は「逐次処理」
これは難しいことじゃなく、順番に処理するような仕組みのこと
つまり、そのマクロがセルだか文章だかを全部一つづつ読み取って処理してるならプログラミングと言っていい
これはプログラミングにおける初歩的かつ重要な仕組み
全てはココから始まる
だから0でもあるし1でもあるとか言い出す頭のおかしい連中の言うことは聴くな
恐らく一部の処理において早い可能性がある程度の量子コンピュータよりまずはチューリングマシンだ 今夜勤中で職場だから無理だが
家だったら作ったマクロ貼っつけれたんだがな 基本情報の試験勉強してるけど、アルファベットばかりで覚えられない。
MUP、IR、CRとか色々なの覚えられない、 >>507
Texはオブジェクト指向の"オ"の字もない、markupに特化した特殊な記法の言語。 >>510-511
Texはmarkup language(代表的なものとしてHTML)の一種であることは明らかだが、同時に
programing languge特有要素である、制御構文(条件分岐、loop、再帰等)も備え、チュー
リング完全でもある。その点でmarkup languageかつprograming langugeであると捉えうる。 すまんがマークアップってなにンゴ
あとマークダウンってのもあるよな、あれもなにンゴ マークアップの定義は困難
マークダウンの定義は困難 クラス指向だと勝手に解釈してるわ
オブジェクト指向っぽさで徹底するとかなり面倒 >>522
まぁそうだが、その程度で 俺はプログラマーだぜ とかとても言えないだろ? >>521
LuaLaTeXというものがあってだな オブジェクトって名前がわかりにくいよね
人に例えるとわかりやすいんだけど
誰かに仕事させる感じでプログラム作っていくイメージかな 俺「買ってこい」
後輩「何を買ってくんの?」
俺「助六!」
これはオブジェクト指向ではない
俺「助六!」
後輩「助六がどうした?」
俺「買ってきて」
これがオブジェクト指向 A: print "hello"
B: "hello".print
この違いだけで大体は理解できそうだけどな オブジェクト指向って
どういうメリットを目指して生まれたんでしょうか
最近あまり聞かない気がするのは
もっと良いものが生まれたんでしょうか
あるいはデメリットが明らかになってきたからなんでしょうか >>537
同じアルゴリズムを使い回せるから全体のコード数が減る
コード修正箇所も少なくて済む >>538
データに処理をくっつけたものをまとまりとして捉えて
それに別のデータを投げて処理をさせたり
そのまとまり自体を別の処理に投げたりすれば
カブってる部分を何度も書かなくていいよね
ということでしょうか guiコントロールがゴミな時は継承して拡張する時ある >>537
保守性と拡張性に優れた設計をするためだよ レゴブロックみたいなもんやろ
適当にくっつけたらええねん >>539
データに処理をくっつけた まとまり とかって文言がモヤっとするんだが
データと処理が一か所にあったら手続き型に近い
オブジェクト指向なら、まずデータと処理は分離されてる
カブってる部分を何度も書かなくていい 程度なら関数の機能で十分やれる程度のメリット お前が右腕動かす際にお前の右腕の骨だとか脳の神経回路だとか気にしてないだろ?
つまりそう言う事だよ(´・ω・`) 動作をすべてメソッドで定義して、変数をすべてプロパティで定義する
これがオブジェクト指向ということです WEBプログラミングではフレームワーク側はオブジェクト指向しまくってるけど
使い手は手順に沿って実装するだけだから
意識せずに済んじまうのだろう >>31
俺たちはどちらかといえば安倍を引数にしたメソッドを持つインタフェースでは 大きな括りだとマイクラとかもそういう枠じゃないかな
コマンドブロックがあるがそれ単品だと何も動かないけど枠組みは決まってる
何を継承するか決まってる空クラスとかインターフェイスだけ決まってる空メソッドとか コンテナクラスくらいしか使いまわせないよな
メインまでオブジェクト化する意味はない オブジェクト指向っていう日本語がややこしくしてんね 現実世界に無理に例えようとするから余計に訳わかんなくなるのに、まだ例えようとする人がいるんだな >>537
今使われてる大体の言語がオブジェクト指向だから
あえて書かないんじゃね インスタンスコーヒーって入れるメーカー変数で味が変わるけど、コーヒーである事には違いないから安いやつに変えたわ 最近は処理速度を早めるために
データ指向とかも広く聞くようになったな >>546
プログラムリストに
亀動け
って書くだけで動くやつって認識でいいんだよね 他人が作ったやつだと、実装がどこにあるのか訳わかんなくてメンテが逆に面倒になる。正直言って諸刃の剣。陳腐化したら捨てていいようなアプリ開発くらいしか使い所がない。 犬じゃない
SSDに収録されたinuプログラムを
RAMのINU番地に転送した時点でINUは物理的に作動してる現実の物体なのよ オブジェクト指向もそうだけど、IT界隈はパワーワード作って儲けるのが主流だからな
昔からある技術に名前つけて新しく見せたり分かりづらくしたりして、そのコンサルしますよ、とか代わりにいい感じにやっときますよってな感じで商売してる
DXもそうだよな
Web界隈も結局はどうhtmlを吐き出すかってだけなのに、やたら複雑なんだよな
ただのjsonと雛形を分けてhtml形成するだけの仕組みに、手段とか担う所が違うだけで何通りか名前あったりするし
オブジェクト指向の醍醐味は引数でのオブジェクトのインジェクション(Strategyパターンなど)にあるけど
あんま使わんよな
デザインパターンはライブラリやふいれーむワーク側で使っているってだけで
実際にプログラムを実装することはほぼなくね 英語文法のSVOやSVCO、SVOOのVO・VCO・VOOが幾つも集まったのがコード
これを出来るだけVOの種類だけにして可読性と改修しやすさを求めたのが始まり
そのためにデータと処理の分離が必要になった
実際にはVCO・VOOの処理自体は必要だから、できるだけ各クラスの継承下部で書く >>563
たまにお前みたいなまともなホワイトカラーに就かないマジモンの無能が現れるのが嫌儲なんだよな 最近の開発環境だと実際には画面操作のラジオボタンやコンボボックスの中などで既に自動で行われているからわざわざ書く必要は無い
共通モジュールとして使う時にクラスモジュールのほうがコード行数が少なくなる傾向があるから、クラスモジュールのほうが好まれる ·全部の処理を1メソッド内に書くな別けろ
·全く同じ処理あちこちコピペすんな
これだけ守ってくれりゃなんでもいいよもう >>568
それを守らせるための手法の一つがオブジェクト指向 >>569
ここまでなら構造化プログラミングでも出来るでな
そっから先とか別に要らなくね?
話小難しくなるぱっかで大してメリットないじゃん
ぶっちゃけフレームワークが強要してくるから嫌々合わせてるだけよ
俺は便利機能が欲しいんであってお作法()なんか知らねーよ >>570
みんなそんな感じだろ
バカでも使えるようにしないとプロジェクト破綻するし >>570
みんなの共通認識作った方が効率いいだろ。
プロジェクトごとにルールが細かく違ったらだるいわ。それを賢い人が一つの手法として確立してくれてんだよ 状態を保持する変数を、グローバルに持ったりいちいち引数で渡したり
しないで済むのが便利ってだけだわな
継承だの多態性だのなんて、自分がクラスやライブラリを作る側に立ってから
学べばよいものなのに、それを初学者に、それよりも大事なことと横並びで教えるから
やれ動物クラスを継承してワンだのニャーだのという話をしなければならなくなるのさ 多態性とか使ってるソースの読みづらさは異常
テクニックいらんからシンプルに作れや >>572
共通ルールとか言い出すとぼくのかんがえたさいきょう()の押し付け合いにしかならんし現にそうなってるじゃん
必ず厳密化しろと言い出す輩出るからな
実際最近は規約というより指針程度に留めてる現場増えてるみたいよ
ガチガチに縛って失敗した経験が生きてるんだろう >>166
小飼さんが堀江の下請けしてたのか知らなかった >>574
Pythonのfor文なんてまさにその多態性の賜物みたいなもんだけどな 人類には早すぎた理論
抽象化して多態性によりコードをシンプルに、よりif文羅列してシコシコ読んでる方が分かるが9割なんだよ デザインパターンとかまだ勉強してないんだけど、クラスとかインターフェースとか継承とかで共通の動作を保証しつつ、中身はオブジェクトによって変えてくみたいな理解なんだけど合ってる? >>537
pthreadとか関数渡しのライブラリをいじってみればわかるが、変なキャストが絶対に必要になる。
その辺をうまくやったのがオブジェクト指向。
最近の言語は関数型でカリー化が普通に使えたりするから役割は減りつつある。 >>575
そうだよ。だから最低限の共通認識としてオブジェクト指向ってのがあるんですよって話 色んなやり方が試されて、その中で全体最適な要素の組み合わせをオブジェクト指向と読んだだけ
これも30年以上前の話 >>583
オブジェクト指向と聞いてシュバってくるアホウ共もれなく余計なこと喚き散らすやん
上で誰か書いてたがオブジェクト指向って呼ぶのやめたほうがいいわ
下手に名前つけないで中身箇条書きにしたほうがマシ というかオブジェクト指向が共通認識って自体が幻想だわ
誰もが納得する説明誰も出来てないのがその証拠
俺も含めてな >>580
動作よりも責務、役割に注目するといい
責務が同じなら共通化を検討する
責務が違うのに動作で共通化するとぐちゃぐちゃの神クラスが生まれる
継承は完全に理解したレベルになるまでオススメしない、委譲すべし EPICで「ドキドキ文芸部プラス!」っていエロゲタダで配ってるよ ■ このスレッドは過去ログ倉庫に格納されています