# ちょうぜつ本_読書py[9] みんなのメモ ###### tags: `ちょうぜつ本` - このメモはWebに公開されています(HackMDチーム) - リンクを知っている人は見られます - HackMDにログインして編集できます ## ちょうぜつ本 - [ちょうぜつソフトウェア設計入門 ――PHPで理解するオブジェクト指向の活用](https://gihyo.jp/book/2022/978-4-297-13234-7) - [サポートページ](https://gihyo.jp/book/2022/978-4-297-13234-7/support)(正誤表) ## お願い事項 (1) 今を楽しもう(録画はしないでね) (2) 本メモは**インターネット上に公開されています。** そのため、文章の丸写し(!=引用)や、書籍を読まずに内容が詳細に分かる表現は行わないようにしましょう。 参考記事: - [Qiita ヘルプ 著作物を引用する際の注意点 ](https://help.qiita.com/ja/articles/about-copylight) - [Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜 ](https://qiita.com/jnchito/items/215c2d51599eb29adabc) - [文化庁 著作物が自由に使える場合 ](https://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/chosakubutsu_jiyu.html) ## このメモについて このメモは ちょうぜつ本_読書py[9] のメモです <span style="color: red"> https://pythonista-books.connpass.com/event/304194/ 読む範囲:8章(8.5) ## 読書会の流れ * 20:00〜20:30 **自由参加**のもくもく会(個人作業) - 事前に読む時間がとれなかった方はここで読んじゃいましょう(ざっとで大丈夫です) - 合わせて、この**HackMD**に話したいことを各自書いてください - ログインすれば書ける設定にしています - ここがわからん、ここはわかった お気軽に書き込んでみてください - HackMDの書き込みに投票し、みんなが気になるところをわいわい読み解いていきます * 20:30〜22:00 読書会本編(みんなでわいわい) * Discordでスライド共有して別途案内します * 20:30開始の本編では、「わたしこれ気になる!」 という話題に `:+1:` と書いて投票します。 * :+1: する上限はありません。 気になる話題に全部 :+1: しちゃいましょう。 ただし1つの話題には1個だけ:+1:でお願いします * 票数が多い話題から話していきます。 ## 以下、もくもく会ワークゾーン 以下は各節で「これってどういうことなんだろう」「ここからこういう気付きがあった」などを書き出すゾーンです。 ### 第8章 デザインパターン _章よりも細かい目次は公開されていないようですが、読書会運営都合により見出し番号だけ記載しています_ 章全体への書き出しはこちらに - 例えもあったので、違いは分かったけどもそれぞれをコードで書いたときにどういうケースで使えるかイメージしたいな - 引用の引用だけど、 アジャイルソフトウェア開発の奥義にも説明あったみたいですね https://blog.ecbeing.tech/entry/2020/10/29/155503 :+1: :+1: - ソースコードにtypoが多いので連絡すると喜ばれそう - デザインパターンを使う/使わないにせよ、「こいつはこれを知っても良いのかなーどうかなー」っていう考えは有用だなーと最近思いました ### 8-5 Facade - 例文の「不安定さ」がピンと来ていないけど、これは具体に依存しているってことかな? - なんとなく、オブジェクト指向っぽく抽象化されたものを利用するときに使うイメージは出来た。具体的に直接呼び出すのではなく、抽象的に間へ噛ませて使うような。 :+1::+1: - 玄関口。ここがパッケージやコンポーネントの内部の複数の流れを制御しつつも、内部要素の変更の影響をここで食い止めている印象。こいつの提供するinterfaceを他のコンポーネントからは視えている。 :+1: :+1: - ファサードの*ファサー*のところが好き - ユーザインターフェースを簡単にしてくれるのに重宝する印象:+1: - オブジェクトを単機能にしようとすればするほど、どう連携をとっていいか分からなくジレンマ :+1: - Facadeでまとめる?的な。古き良きmainルーチンみたいな? - Facadeで定義したメソッドに全クラス分書くとか……? - mainルーチンに全部書くのは現代では悪手 - うっかり巨大化させ過ぎないように注意したいよね Mediator - `Mediator`が複雑さを一手に引き受ける、という理解だけどニュアンス的にあっているかな - 他のコンテキストとの間接化をしてくれている? でもセキュリティ面は? - どちらも疎結合ってのは一緒だけども、メディエーターの方が間接化になってくれてる印象 - 親子関係というより、横の並び。「連携」っていうならこっちなのか?:+1::+1::+1: ‐ 「連携する」というインターフェースさえわかっていれば、実装は関係ない仕組み - PHPのクラスの文法がわかんないです - クラスにある`protected Foo $foo`ってPythonだと何?:+1: - メンバ変数なのか? ref: https://www.php.net/manual/ja/language.oop5.properties.php - であればPythonなら`__init__`で設定する