オブジェクト指向って不自然な文法だよな [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2017/03/08(水) 08:06:52.93ID:4wFxBa4iやはり関数型が人間の思考ルーチンに合ってる
0002デフォルトの名無しさん
2017/03/08(水) 08:10:26.82ID:4wFxBa4iプログラムは上から下への原則を今一度振り返るべき。
0003デフォルトの名無しさん
2017/03/08(水) 13:49:07.20ID:2a+4dzfVオブジェクト指向も分類に優れているので保守性の向上という点では利点がある。
ただ一時期の無理にデザインに当てはめようとしたり、
過度な抽象化プログラミングがむしろ開発効率を悪くした。
0004デフォルトの名無しさん
2017/03/08(水) 14:47:47.21ID:yAhmQwaL日本人なら
document.ni."hello".to.kake()
だよな___
0005デフォルトの名無しさん
2017/03/08(水) 16:54:25.13ID:I1QnDk4Z0006デフォルトの名無しさん
2017/03/08(水) 17:51:28.80ID:4q4g4kgy英語圏の人間からしたら
滅茶苦茶わかりやすい概念だよな
言葉と文化の障壁が高い
0007デフォルトの名無しさん
2017/03/08(水) 19:26:37.11ID:NYC1f0AUオブジェクト志向をオブジェクト志向と言うことで
わかりにくくなっているのかも
本質的には、一枚の紙に書くんじゃなくて
幾つかの紙に分けて書いた方がいいんじゃね?ってだけだし
0008デフォルトの名無しさん
2017/03/08(水) 19:45:37.59ID:NYC1f0AUインスタンスにAとかBって名前つけるアホな
tarouでいいじゃん、何抽象的な記号を割り振ってんだか
0009デフォルトの名無しさん
2017/03/08(水) 19:57:38.53ID:LWSyzbzs0010デフォルトの名無しさん
2017/03/08(水) 21:34:28.70ID:Uljnsbub0011デフォルトの名無しさん
2017/03/08(水) 23:20:04.08ID:1qLkd/gc0012デフォルトの名無しさん
2017/03/09(木) 08:59:16.53ID:Nr7urPV/もうちょっと「引き」で見てみたら。
0013デフォルトの名無しさん
2017/03/09(木) 11:20:39.75ID:a8jDq3O3gotoと変わらないというのはこの事に寄る部分が大きい
呼ばれてから中で参照するデータが外で定義されて設定されたものであると、それへのトレースも必要になるし、
自身が単なる橋渡しで、さらに別のファイルの関数を呼んでるだけとか
オブジェクト指向が悪いとは言わないし良い所もあるとは思うが
出来上がったものがブラックボックスになる可能性を孕んでいるのは欠陥を抱えていると思わざるを得ない
0014デフォルトの名無しさん
2017/03/09(木) 12:58:21.00ID:tVtLUJ/C0015デフォルトの名無しさん
2017/03/09(木) 12:59:53.62ID:QPtS1+LXどうカプセル化するか、情報隠蔽するかじゃないの?
というか現代のプログラミングでクラスを使わないって
選択肢がないと思うんですけど
1人のプログラマが
全てを把握しなくても済むためのオブジェクト志向じゃないのかな?
0016デフォルトの名無しさん
2017/03/09(木) 13:48:33.33ID:x6aOWZGA気分はstaticだね
0017デフォルトの名無しさん
2017/03/09(木) 14:50:03.33ID:GbP4DNpXオブジェクト指向ならVoidポインタや関数ポインタやswitchでの分岐と違って呼び出し元やオーバーライドを見る程度で大まかな処理が把握できるから楽
言語自体がコーディング規約みたいなもんだからインデント幅とアクセス装飾子だけ気をつければ大した規約無しでもチームで動けるし
0018デフォルトの名無しさん
2017/03/09(木) 16:38:20.25ID:a8jDq3O3全体を把握しなくてもいいけど、大雑把には把握する必要はある
その時に足枷になるのがたらい回しにされるコード
>>17
それは良い面だけで、悪い面を書いたのが>>13
やらない方がよい事と積極的に利用すべき事が整理されてない事に寄る混乱だとは思う
デザインパターンとかの累積か、新言語への良い部分の継承って事なのかなと思ってる
0019デフォルトの名無しさん
2017/03/09(木) 17:31:03.49ID:F9CUJ5lt例をもって示そう。
記号a,bを使って
a
b
と上から下に実行しているように見える、しかしaをaを開く記号と考えて
a'を閉じる記号と考えると
a
b
b'
a'
と書き換えられる、よく見てほしい上からでも下からでもどちらからでも
プログラムを実行できるようになったではないか。
すなわちプログラムは外から内に実行されているということなのだ。
0020デフォルトの名無しさん
2017/03/09(木) 18:10:32.69ID:XS2krXN3ファイルを閉じる
file.close()
0021デフォルトの名無しさん
2017/03/09(木) 18:18:10.83ID:F9CUJ5lt田中はファイルを閉じることを
tanaka ha: file wo: tojiru.
と書ける。
これはメッセージをtanakaオブジェクトにha:wo:selectorにfileと
tojiruオブジェクトの引数に渡すという意味。
0022デフォルトの名無しさん
2017/03/09(木) 19:12:55.33ID:QLYbGx4fdocument."hello".write() ←真のオブジェクト指向
0023デフォルトの名無しさん
2017/03/09(木) 19:26:35.15ID:NWFSmelLぱーか
0024デフォルトの名無しさん
2017/03/09(木) 20:21:04.28ID:HQPo78pm0025デフォルトの名無しさん
2017/03/09(木) 21:49:04.33ID:x6aOWZGA“hello”.write()ならまだわかるが
document."hello".write() はない
document.write("hello") はSVOになってるから英語的にも自然だし
documentさんに”hello”をwriteしてねって伝えてるからOO的にも自然
0026デフォルトの名無しさん
2017/03/09(木) 22:15:54.41ID:ZZ1gzprqクソワロタ
0027デフォルトの名無しさん
2017/03/09(木) 23:34:27.37ID:5jtV+VDKI.write."hello".in(document)だろ
これがオブジェクト指向がイケてない理由、平然と能動態と受動態を混ぜる
言語センスがないからオブジェクト指向特有のレトリックにはまっちまう
これが文芸的言語になると
write("Hello" document)
とかける
これは自明の主語Iを省略している
document引数省略すれば、自明の引数stdoutとすればいいし、そのデフォルト実装がいやならデフォルト引数を与えればいい
オブジェクト指向でこういった動作は実現しえない、documentクラスにwriteがぶら下がっている限りは
もちろんimportしてもいいがことなるwrite targetに対してwriteするには、結局明示的なメソッド呼びだしが必要になる
オブジェクト指向っつーのはつまりそういうことだよ、Googleのフレームワーク使うとinクラスとかbyクラスとか出てくるだろ
あれって相当不自然なわけだが、つまり前置詞に名詞の代名詞たるクラスを割り当てている
もしGoogle以外がやってたらバッドパターンと言われることをなぜ公開ライブラリでやってるのかってことをもう少し考えたほうがいい
0028デフォルトの名無しさん
2017/03/09(木) 23:38:15.19ID:ZZ1gzprqキチガイのフリしようとがんばってるね、あーすごいすごい
0029sage
2017/03/09(木) 23:38:35.98ID:tGF/AJwJ0030デフォルトの名無しさん
2017/03/09(木) 23:39:57.34ID:5jtV+VDKI.write("hello").in(document)
SVOMだね、なぜ文法的にoptionalなMが、requiredな主語、第一引数たりえるのか、これがおかしいことは小学生でもわかることですよ
0031デフォルトの名無しさん
2017/03/09(木) 23:44:04.30ID:lQejystEiクラスにwriteメソッドつけるように実装すればええやん?
0032デフォルトの名無しさん
2017/03/09(木) 23:44:41.13ID:5jtV+VDK言語センスすらない文系wwww
はこんな欠陥パラダイムかかえてなにつくるんすかね
ですマーチでもつくるんすかねwwww
0033デフォルトの名無しさん
2017/03/09(木) 23:48:57.18ID:lQejystE0034デフォルトの名無しさん
2017/03/09(木) 23:50:15.35ID:nbbNQqG60035デフォルトの名無しさん
2017/03/09(木) 23:53:56.71ID:a8jDq3O3も文法がーとか言い出すんだろうか
0036デフォルトの名無しさん
2017/03/09(木) 23:54:21.99ID:rmHNAbfyラッパークラスの名前をdocumentにして
そこにwriteって直接付けちゃうのはOOPとして
あんまり綺麗じゃないよなぁ…と思ってたら
スレ基地が「それがOOPなんだよ!」って喚き初めて笑った。
0037デフォルトの名無しさん
2017/03/10(金) 00:01:21.84ID:48ExjG0B0038デフォルトの名無しさん
2017/03/10(金) 00:12:27.48ID:GfJ8VRfB0039デフォルトの名無しさん
2017/03/10(金) 00:25:26.00ID:imOpXixDwrite(“hello”)
主語が省略されてるという解釈はOOPだよ
class.write(“hello”)
0040デフォルトの名無しさん
2017/03/10(金) 00:27:16.95ID:PorFrx4J0041デフォルトの名無しさん
2017/03/10(金) 00:27:40.25ID:cBCq3F3F0042デフォルトの名無しさん
2017/03/10(金) 00:31:57.97ID:PorFrx4J0043デフォルトの名無しさん
2017/03/10(金) 00:34:20.17ID:y8xCqliGプログラムではdocumentがwriteするんだから
documentを主語として捉えてるよ
そういうメンタルモデル
0044デフォルトの名無しさん
2017/03/10(金) 00:39:31.92ID:imOpXixDクラス、インスタンスを主語にしてドット構文で読み下すようになったのは割と最近だろ?
その辺を踏まえて考えないとだめじゃろう
0045デフォルトの名無しさん
2017/03/10(金) 00:42:37.14ID:imOpXixDこれがSmalltalk, Objective-Cになるとメッセージ式になる
C++, Javaでドット構文になる
あってる?
0046デフォルトの名無しさん
2017/03/10(金) 00:45:37.75ID:Cysk3AQ/0047デフォルトの名無しさん
2017/03/10(金) 02:01:17.29ID:XsMooLHr3.equalsto(4)
キモすぎだろ
Long.equal(3,4)
は?
object.equal(3,4)
object.要る?
0048デフォルトの名無しさん
2017/03/10(金) 02:05:29.69ID:y8xCqliG0049デフォルトの名無しさん
2017/03/10(金) 03:21:19.22ID:jlKNf/SQ「こうせよ」とコマンドメッセージで働かせることで動作に「緩さ」を持たせて
変更に柔軟に対応するように提唱されたのに
なーんか、旧来のプログラミングから抜けられないというか
プログラマの性としてOOPなのに必死で「緩さ」を無くそうとか
モジュール内までプログラマそれぞれが定義した"暗号"並べて隙なく動かそうとか
全力で本人たちはOOPの概念を進めてるつもりで
もともとOOPが意図していない泥沼に飛び込んで行くのはなにかねアレ。
0050デフォルトの名無しさん
2017/03/10(金) 03:54:53.63ID:GfJ8VRfB元々は人間がわかりやすくするための道具に過ぎないのに
小難しい方に行きたがるのはエンジニアのサガなんだろう
プログラミングを勉強して初めてジョブズの本当の偉大さがわかる気がしたし、
ウォズがジョブズのセンスを認めていたのもスゴイことだと思う
0051デフォルトの名無しさん
2017/03/10(金) 04:32:33.60ID:aQFxnrD/「OOPとはこういうものだ」的な狂ったJavaラーの流儀を見よう見まねでインチキ模倣して
コードを判読困難にするクソコーダー共が脳裏に蘇ってきて「あーそうだよねー、本当にそうだよねー」
って思った。まだ眠くない。
0052デフォルトの名無しさん
2017/03/10(金) 05:53:18.97ID:cBCq3F3F3==4
0053デフォルトの名無しさん
2017/03/10(金) 06:36:58.89ID:AQFgXGIk0054デフォルトの名無しさん
2017/03/10(金) 08:21:07.48ID:ubUDEmbRオブジェクト指向って設計の概念であって、プログラミング言語とは無関係だろ
0055デフォルトの名無しさん
2017/03/10(金) 08:34:17.79ID:aQFxnrD/まさか鬼の首とったようにそれだけ指摘してくる馬鹿が現れました。
0056デフォルトの名無しさん
2017/03/10(金) 08:56:04.87ID:mOHud+7UOOD、OOPについていけなかった馬鹿かな?
0057デフォルトの名無しさん
2017/03/10(金) 08:59:53.97ID:aQFxnrD/0058デフォルトの名無しさん
2017/03/10(金) 10:58:42.60ID:GfJ8VRfB最強ってばっちゃが言ってた
0059デフォルトの名無しさん
2017/03/10(金) 11:04:45.23ID:aQFxnrD/その理論だとPHPも最強ってこと? まさかw
0060デフォルトの名無しさん
2017/03/10(金) 17:19:22.04ID:pfLjfjar0061デフォルトの名無しさん
2017/03/10(金) 18:30:21.22ID:RFnmbLup0062デフォルトの名無しさん
2017/03/10(金) 22:15:50.34ID:8q2Idz6n「ここにinterfaceを実装したクラスが28コありますのでどれか使ってください、ダメなら実装してください」
なんてのでなかったら、もう何でもいい気がしている
0063デフォルトの名無しさん
2017/03/11(土) 00:27:16.11ID:1KBQqXntそれじゃフレームワークなんも使えんやん!
インターフェースだいすき
0064デフォルトの名無しさん
2017/03/11(土) 00:47:21.97ID:qyY4K/ii「自称」ヘキサゴナルアーキテクチャかつサンプルコード無しでソース見ろ
だと、初見ではイミフすぎて困る、くらいの感じかなあ
doxygenとかglobalに定義ゲロらせて眺めていくようなアレ
マニュアルなりサンプルコードなり、多少のテストコードがあるんなら(まだ)いいんだが
0065デフォルトの名無しさん
2017/03/11(土) 05:44:59.40ID:yu5TA/rBヘキサゴナルアーキテクチャでぐぐったら胡散臭すぎてわろた
自分を賢く見せようとして背伸びしてる連中がひっかかってさらにダメになっていく典型のような
0066デフォルトの名無しさん
2017/03/11(土) 10:05:31.53ID:vmHK14yNCOMなんかは顕著だな
インスタンス隠蔽とインターフェースqueryはワケワカメになっている。
最近みたのがDXGIfactoryで、こいつfactoryとかいいながら、シングルトンじゃなかったりする。
部品化には向いているが、フレームワークには仮想関数と継承だけ使うのが好ましい。
0067デフォルトの名無しさん
2017/03/11(土) 10:15:32.79ID:vmHK14yNp->abend();
throw CWindows10();
catch (Cxp)
0068デフォルトの名無しさん
2017/03/11(土) 12:41:57.21ID:2uHXXIxl0069デフォルトの名無しさん
2017/03/11(土) 13:18:43.85ID:UDoD1LjB関数型というのも、いわゆる関数型言語のことではなくて、手続き型言語のことっぽいし
0070デフォルトの名無しさん
2017/03/11(土) 14:14:10.74ID:TEZcYToy0071デフォルトの名無しさん
2017/03/11(土) 17:47:08.82ID:awln0KGk腑に落ちる解説はネット上で見たことないな
もっと分かりやすい説明できると思うんだけど
0072デフォルトの名無しさん
2017/03/11(土) 18:22:38.73ID:sUFiWX+J0073デフォルトの名無しさん
2017/03/11(土) 18:48:31.27ID:OUHk1Upk普通は使わないけど。
0074デフォルトの名無しさん
2017/03/11(土) 19:24:36.60ID:wnmGqnx70075デフォルトの名無しさん
2017/03/11(土) 19:27:41.39ID:wnmGqnx7指向性マイク、指向性アンテナ
0076デフォルトの名無しさん
2017/03/11(土) 19:30:45.40ID:wnmGqnx7有理数ではない実数、つまり分子・分母ともに整数である分数(比 = 英: ratio)として表すこと
のできない実数を指す(中略)
無理数という語は、「何かが無理である数」という意味に誤解されやすいため、
語義的に「無比数」と訳すべきだったという意見もある
-Wikipedia
0077デフォルトの名無しさん
2017/03/11(土) 20:01:31.21ID:5tQDG2DRC++を「これが次世代に来るオブジェクト指向って奴だ!」って吹き込まれて大火傷したおじいちゃんたちが
もうちょいマシにオブジェクト指向を取り入れたJAVAあたりに「オブジェクト指向ってこういう奴だろ?」って
C++の知識で噛み付いたり、また「俺はOOPわかってるぜ! 構造体に関数がついたやつだろ!?」って言い出して
まわりがぐんにゃりするまでがオブジェクト指向談義のデフォ
0078デフォルトの名無しさん
2017/03/11(土) 20:23:47.79ID:n0RAiOjQ大木こだま師匠がアップをはじめました。
0079デフォルトの名無しさん
2017/03/11(土) 20:24:32.89ID:JX7nqQSL処理をソースコードのどこに記述するとカコイイかってクソみたいどころか
クソそのものの技術
0080デフォルトの名無しさん
2017/03/11(土) 20:26:00.69ID:JX7nqQSL0081デフォルトの名無しさん
2017/03/11(土) 20:31:09.71ID:sUFiWX+J対象の本質を深く考えることにつながる
まあオブジェクト指向が技術だと思ってる人には難しいかもね
0082デフォルトの名無しさん
2017/03/11(土) 20:35:10.08ID:JX7nqQSL繋がんねーよ
いいからさっさと設計書まとめて不明確な仕様を纏めろよ
1円にもならねーカス技術に時間使ってんじゃねーよ
0083デフォルトの名無しさん
2017/03/11(土) 20:40:16.90ID:JX7nqQSL数字で説明できてこそプロ
アマチュアは数字で説明できないからこんなカス技術に騙される
0084デフォルトの名無しさん
2017/03/11(土) 21:00:37.78ID:BnYOCMV6CとJavaで作ったAndroid
CとObjective-Cで作ったiOS(macOS)…
どうしてここまでアップデートトラブルの数に差がついたのか
…慢心、環境の違い、正しいオブジェクト指向…
0085デフォルトの名無しさん
2017/03/11(土) 21:40:59.37ID:OIH4xtCQそれを数で比較してクレメンス
0086デフォルトの名無しさん
2017/03/11(土) 22:24:24.85ID:7U1HyGmGなるほど、だからあなたはアマチュアなのですね
0087デフォルトの名無しさん
2017/03/11(土) 23:09:13.17ID:999c5r5I0088デフォルトの名無しさん
2017/03/12(日) 01:48:31.27ID:bReP5RFT数字で言うとどのくらい?
ハイ、論破
0089デフォルトの名無しさん
2017/03/12(日) 08:31:29.76ID:I5/v94M1みたいな人はとても可愛そう。
何が可哀想かというと、メリットのない形での狂ったオブジェクト指向を押し付けられてオブジェクト指向自体を勘違いしてしまったこと
0090デフォルトの名無しさん
2017/03/12(日) 08:54:32.72ID:bReP5RFTではオブジェクト指向のメリットをどうぞ
0091デフォルトの名無しさん
2017/03/12(日) 09:34:20.15ID:QBXPrqjRクラス図と論理ER図が
ほぼ同じになっちゃうんだけど
良いのかな?
エンティティとかまんま一緒
0092デフォルトの名無しさん
2017/03/12(日) 09:42:26.07ID:KA0LzYa1責任を分離できるから問題のスコープを小さく区切れる
なにより型にメソッドがくっついてるせいで、メソッドをグローバルスコープから探してこないで済む
VisualC++やVBのハンドラ地獄を知っている世代はありがたみが身に染みてるはず
0093デフォルトの名無しさん
2017/03/12(日) 09:51:11.84ID:bReP5RFT嘘乙
0094デフォルトの名無しさん
2017/03/12(日) 09:53:55.48ID:RdGtMQ3H0095デフォルトの名無しさん
2017/03/12(日) 10:10:43.24ID:KA0LzYa1オブジェクト指向と非オブジェクト指向でプロジェクトの見積もりたててみりゃいいだけじゃん
プログラマの単価、かかる工数の差、使える既存資産の差、考えただけで恐ろしい
Cでまともにスレッド管理や画面描画できるプログラマがどれだけいることやら
0096デフォルトの名無しさん
2017/03/12(日) 10:31:46.44ID:RdGtMQ3H0097デフォルトの名無しさん
2017/03/12(日) 11:02:04.65ID:cZ1eIQIk一人で仕事して再利用されることも無いならそれこそmain()に全部ぶち込もうが構わん
0098デフォルトの名無しさん
2017/03/12(日) 11:55:03.48ID:Tf1oCUYkSmalltalk, javascript, pealとかの極端路線で盛り上がってもらえると楽しめるけど。
0099デフォルトの名無しさん
2017/03/12(日) 12:01:02.49ID:I2BlFVSeUnit Testできないだろ
0100デフォルトの名無しさん
2017/03/12(日) 12:19:25.49ID:bReP5RFTオブジェクト指向開発をするなら採算度外視で取り組まないと駄目とかクズは言うことが違うな
0101デフォルトの名無しさん
2017/03/12(日) 12:25:40.76ID:T4N3k6YJ正解があるわけじゃなく自分がどうモデリングしたいかや
そのモデルをプログラムからどう使いたいかによる
ただ一般的には違う場合のほうが多いと思う
注文・注文明細みたいな例を考えるとデータモデルでは注文明細はほぼ確実にエンティティだけど
オブジェクトモデルではOrder.ItemsでItemsはProductのコレクションでクラスではないケースのほうが多い
こういう違いがあるからORMで差を埋めようとする
■ このスレッドは過去ログ倉庫に格納されています