犬と猫の話(または、オブジェクト指向とか型とか型クラスとかの話)

関連するブログ記事書きました。 http://tanakakoichi9230.hatenablog.com/entry/20200202/1580572918
12
広木 大地/ エンジニアリング組織論への招待 @hiroki_daichi

ソフトウェアのパラダイムとしてある抽象構造が、自明のものとして先験的に存在し、それを分析しながら、それらをツリーによって分類可能であろうとして、再利用可能なコンポーネントに設計するというOOP初期に描かれた継承による抽象の考え方を僕は、「オントロジー的抽象」と表現していて、

2019-06-19 18:55:48
広木 大地/ エンジニアリング組織論への招待 @hiroki_daichi

対して、抽象構造は事後的に発見され機能やビジネスの目的によって蒸留されることによって姿が見えてくる、それらはツリーではなくセミラティス構造になって発見されStructual SubtypingやDelegation/Composition、Mixinなどにより表現されることの多い抽象を「テレオロジー的抽象」と表現している。

2019-06-19 18:55:49
松田信介@自分のいる環境をデザインする @XHACK20

オブジェクト指向を難しくしている戦犯は 猫クラスや犬クラスが哺乳類クラスを継承して〜というクソみたいな例え 実務で一切応用が効かない例えのせいでどれだけ困らされたか・・・オブジェクト指向の機能/特徴の説明はできても、「なぜオブジェクト指向が必要か?」の具体的な理由が一切見えない

2020-01-27 00:28:16
リンク Qiita オブジェクト指向は 人 である ~オブジェクト指向を簡単に理解しよう~ - Qiita 意味がわからないようなタイトルで始まりましたが、 オブジェクト指向って一体何? って言われた時に自分が説明しているものをまとめてみます。 正直オブジェクト指向という言葉の定義なんて人それぞれなところがあるので、 こういう風に考えて... 46 users 26
こたろ@飽き性なPG @kotarobayashi

@XHACK20 必要な理由もそうですけど、 オブジェクト指向なしでやると、 どういう問題にぶち当たるか? 「問題にぶち当たって課題を発見して やってたら、オブジェクト指向にたどり着く」 そんな風に教えてられてましたねぇ

2020-01-27 00:38:20
松田信介@自分のいる環境をデザインする @XHACK20

@kotarobayashi その教え方は超・秀逸です! というかそれ以外に教える方法を知らないです。

2020-01-27 00:39:33
松田信介@自分のいる環境をデザインする @XHACK20

@ProblemaResolt メッセージパッシング?でしたっけ この例えだと分かりやすいですね

2020-01-27 00:41:07
ほえほえ@スプシマン @hoehoe1234

@XHACK20 こんばんわ。ボトムアップとトップダウンの両面からの理解が一番効率がよいですが後者で言えば、C言語で書かれたApacheのソースなどをチラ見するのがよいかと。第一引数に構造体を必ず取る関数群がありその手法を言語レベルで組み込んだのがオブジェクト指向の1つの側面というかんじでしょうか。

2020-01-27 01:00:14
ほえほえ@スプシマン @hoehoe1234

@XHACK20 すみません。前者の間違いですね。C言語である程度の難易度、規模、複数リソースアプリを書くときに「定番的」なやり方が洗練されてきて、これを形式的に言語に取り組んだのがボトムアップからみたオブジェクト指向というように理解しています。言わば「アプリをデータ構造として作る」という側面です

2020-01-27 01:02:01
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

メタファーはあくまでメタファーでしかあるまいよ

2020-01-27 08:55:27
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

というか今どき「何故OOPが必要か?」って要るのかしら。OOP以降期であった10年以上前でもあるまいし。

2020-01-27 08:56:29
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

今どきもはや「プログラミングっちゅーのはモノを模したクラスっちゅー箱を作ってその動作を表すメソッドっちゅーのを作って組み合わせて作るというお作法なんじゃ」でよかろうと思うけどなぁ。

2020-01-27 08:59:12
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

現代でOOPを難しくしている戦犯がいるとすればそれは令和にもなって初学者にOOPとはsmalltalkのメッセージパッシングが〜とかとにかく原理と起源から説明しないと気がすまない人達なんじゃないかと個人的には思っているよ

2020-01-27 09:02:38
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

今どきの若者jsですらtsからしか触ったことない人普通にいそうだし、メジャー言語でクラスベースOOP採用してない言語のほうが珍しいし、そういう時代になって今更「世の中にはOOPと呼ばれるものがあってな…。」みたいな説明いらんでしょって感想です。

2020-01-27 09:11:36
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

現代で「構造化プログラミングとはgotoを避け順次分岐反復を―」から説明することないだろうし普通にifとかforを「そういうものだ」として教えると思うんだけど、現代におけるOOPももはやそういう種のものになっていると思うんだよなぁ。

2020-01-27 09:16:45
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

ないだろうし、とは言ったが皆さん普通にやってそうだな…。

2020-01-27 09:18:17
kentaro.maeda @kencharos

OOPかつては賢者しか扱えないみたいな感じだったけど、今は普通にあるものだよな。

2020-01-27 09:19:42
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

犬猫とかいう現実で使わないメタファーをやめろとは言うが皆さんの好きなDDDで犬や猫がドメインとして現れるなら現実としても使うでしょとは常々思っている。ゲームとか。

2020-01-27 09:21:49
もう疲れちゃって 全然動けなくてェ...(💉x5) @kamekoopa

犬猫動物の例を用いても継承による差分プログラミングの危うさみたいなものは例えば泳ぐ鳥であるペンギンの例を用いる等で伝えることはできるし、それに対してinterfaceや、あるいは型クラス等の別アングルの解決方法を示すこともできる

2020-01-27 09:28:01
松田信介@自分のいる環境をデザインする @XHACK20

オブジェクト指向でいう「クラス」は会社で言う「~~~部」である。 新しい業務が発生したら、どの部署に仕事を頼もうか?どの部署が担当したら最も効率的だろうか?部署を跨いで仕事を依頼する場合、所定のフォーマットに依頼内容を書いてもらおうか? というのがオブジェクト指向の設計です。 twitter.com/xhack20/status…

2020-01-27 09:41:02
松田信介@自分のいる環境をデザインする @XHACK20

じゃあどんな例えが適切か?オブジェクト指向を「会社」に例えてみました。 twitter.com/xhack20/status… twitter.com/xhack20/status…

2020-01-27 10:08:21
いわた @wonderful_panda

アニマルクラスを継承した猫クラスで鳴くメソッドをオーバーライドすればにゃあと鳴く、みたいなのは機能の説明でしかなくて「何がうれしいの?」という疑問の答えになっていないので、初心者向けでこそ避けるべきみたいなスタンスです

2020-01-27 12:07:17
いわた @wonderful_panda

まあ「こうすればコードベースが大きくなっても破綻しにくい」みたいな嬉しさが初心者に響くかという話はあります

2020-01-27 12:21:44
1 ・・ 9 次へ