オブジェクト指向を学ぶ姉妹 1章
はじめに
姉『最初は何から勉強してくー?』
妹「オブジェクト指向がいい!!!」
姉『おーちなみになんで?』
妹「んとね~、最近いろんな参考書買って読み始めてるんだけど」
姉『うんうん』
妹「当たり前にクラスとか出てくるの」
姉『出てくるねー』
妹「わかるわかる~って自分に嘘つきながら読んでると泣きそうになる」
姉『もはや知らないって言うの勇気いるもんねー』
妹「これ知らないと他の参考書読めないと思うから、先に勉強したいな~って」
姉『おけおけ、どうやって勉強するかんじー?』
妹「まずは参考書を写経してこ~~~!!!」
姉『おっけー!』
参考書・開発環境について
妹「まず参考書と開発環境を整理するね~」
参考書
OS
- Windows10
使用言語
姉『Dartって何???』
妹「そのうち私たちが習熟する必要のある言語だね~」
姉『この参考書Ruby使ってるけど、最初は背伸びせずにRubyがよくないかなー』
妹「うん、だからRubyで写経したあとにDartで写経するよ!!!」
姉『(はじめハードル上げまくって挫折するタイプだなぁ)』
オブジェクト指向について
妹「さてここで問題です」
姉『デデン!!』
妹「オブジェクト指向設計を一言で表すと???」
姉『かっこいい!』
妹「1点」
姉『1点はくれるんだねー』
妹「かっこいいもん」
姉『じゃあ妹子ちゃん、オブジェクト指向設計を一言で表すと?』
妹「依存関係を管理する設計手法……かなぁ」
姉『それっぽい!』
妹「えへへ~!本に書いてあった!」
姉『じゃあ私も読んでくねぇ』
1章 オブジェクト指向設計
姉『第1章まで読みおわったから、ここまでの感想言ってこっか』
Solid原則
妹「出てきたね~SOLID原則」
姉『メタルギア原則とも言うよね』
妹「言わない」
姉『SOLID原則ってなんだっけ』
妹「えっとね~」
- 単一責任(Single Responsibility)
- オープン・クローズド(Open-Closed)
- リスコフの置換(Liskov Substitution)
- インターフェース分離(Interface Segregation)
- 依存性逆転(Dependency Inversion)
妹「の頭文字を取った原則のことだね!」
姉『リスコフさんがインターフェースを分離して』
姉『オープン・クローズドするチカンにより単一責任を負ったけど』
姉『被害者がリスコフさんなしでは生きられない依存性逆転がおきた話かなぁ』
妹「とんだテクニシャンだねリスコフさん」
姉『意味はこの本を通して教えてくれるみたいだから何点取れるか楽しみー』
妹「0点以外の可能性を信じるお姉ちゃんの胆力~~~!」
GoF デザインパターン
妹「この本では解説されないけど、23パターンあるらしいね~」
姉『なにその絶妙な擬人化したくなる数』
妹「強力だけど、間違った問題に適用しがちだから要注意だって~」
姉『pixiv デザインパターン』
妹「オブジェクト指向覚えたら一通り知っておきたいね!」
姉『2件ーーー!同志ーーー!』
アジャイルソフトウェア開発宣言
妹「オブジェクト指向設計はあくまで、変更を用意にするための設計手法なんだね~」
姉『クラス使えばオブジェクト指向プログラミングってわけじゃなさそうだねぇ』
妹「で、繰り返しのフィードバッグが不可欠だからアジャイル開発と相性いいみたい」
姉『アジャイル開発の方法かー。知らないといけないこと沢山だねぇ』
妹「ひとまずはアジャイルソフトウェア開発宣言の12原則を読みこんでおこ~」
姉『pixiv アジャイルソフトウェア開発宣言』
妹「12原則の中二感に抗えなかったか~」
姉『0件ーーー!!!ねらい目ーーー!!!』
オブジェクト指向設計について
妹「繰り返し主張されていることが、適切な設計こそ大事ってことかな~」
姉『簡易な成果物に柔軟性もたせすぎて意味ないもんねぇ』
手続き型プログラミングとオブジェクト指向プログラミングとの比較
姉『手続き型言語は型を自分で作れなくて、オブジェクト指向言語は型を作れる!』
妹「正確には違うみたい!オブジェクト指向言語では型って概念がないの!」
姉『えっ、でもint型とかstring型とかあるくない?』
妹「全部オブジェクトなの!それらはintオブジェクトだしstringオブジェクト!」
姉『混乱するー!型からオブジェクトって名前が変わっただけ?』
妹「オブジェクトは全部編集可能だから、intオブジェクトも定義から変えれるの」
姉『int宣言してるのに文字しか扱えなくすることも可能ってこと?』
妹「そうそう」
姉『へへっintちゃん……俺色に染めてやるよ!』
妹「string君が雄々しい」
その他覚えておきたい言葉
- BDUF(Big Design Up Front):
- 開発前の大規模な詳細設計(文脈で意味は変わりそう)
まとめ
妹「だいぶ脱線したけど、1章はこんな感じかな~」
姉『薄い本が厚くなる内容だったね』
妹「正直結構取りこぼしてるね~」
姉『へーきへーき、1.5のまとめがこれ以上なくまとめてくれてるから!』
妹「私たちの存在意義!」