# ちょうぜつ本_読書py[4] みんなのメモ ###### 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[4] のメモです https://connpass.com/event/293835/ 読む範囲: 6章前半(6-4まで) ## 読書会の流れ * 20:00〜20:30 **自由参加**のもくもく会(個人作業) - 事前に読む時間がとれなかった方はここで読んじゃいましょう(ざっとで大丈夫です) - 合わせて、この**HackMD**に話したいことを各自書いてください - ログインすれば書ける設定にしています - ここがわからん、ここはわかった お気軽に書き込んでみてください - HackMDの書き込みに投票し、みんなが気になるところをわいわい読み解いていきます * 20:30〜22:00 読書会本編(みんなでわいわい) * Discordでスライド共有して別途案内します * 20:30開始の本編では、「わたしこれ気になる!」 という話題に `:+1:` と書いて投票します。 * :+1: する上限はありません。 気になる話題に全部 :+1: しちゃいましょう。 ただし1つの話題には1個だけ:+1:でお願いします * 票数が多い話題から話していきます。 ## 以下、もくもく会ワークゾーン 以下は各節で「これってどういうことなんだろう」「ここからこういう気付きがあった」などを書き出すゾーンです。 ### 第6章 テスト駆動開発 _章よりも細かい目次は公開されていないようですが、読書会運営都合により見出し番号だけ記載しています_ 章全体への書き出しはこちらに - まだテスト駆動開発には至っていませんが、単体テスト、PHPUnitの書き方、モックと順を追って解説するの、めちゃわかりやすかった:+1: - 最初から細かい粒度のテストって書くかな?っとも思った。値オブジェクトとかならともかく :+1: - 図が少ない💦 ### 6-1 - - - ### 6-2 - P120の考え方、わかりやすい:+1: - 自己申告! 単体テストはそうなんですよね - ### 6-3 - Pythonでやるなら一旦はUnitTestで良いのかな(そのあとpytestを使うとか) - テストの観点にも触れられているので、さらっと(?)この章だけなの勿体無い気持ちも:+1: - まずPHPUnitで書いてみてよりよく書き直していくの、分かりやすいですよね - PythonにおけるxUnitは標準ライブラリの[unittest](https://docs.python.org/ja/3/library/unittest.html):+1: - Pythonのunittest「適切なアサーションを選ぼう」pytest「全部assertでOKっすよ」 - 結合機能テストにしない、これなんだよな〜(結合機能テストになっている単体テストを見たり書いたりしてきた):+1: - Pythonのライブラリには結合機能テストを書きやすくするライブラリもあると思う(例:モックサーバ) - テストコードが蓄積していくから、回帰テストを低コストでし続けられる〜!!(最高) - テストを書かないことで短期的にはメリットがあっても、長期的に見たらデメリットですよね。修正を入れる・入った場合にも役立つし。:+1::+1: ### 6-4 - モックは使われ方を検証できる!ここ分かっていなかった :+1: - Pythonだと標準ライブラリのunittest.mockが多いのかな:+1: - unittest.mockはPHPUnitのmockとはちょっと違うんですよね〜:+1: - PHPUnitのモックはこういう引数で呼ばれたらこう返すと設定して検証 - 他の言語でもこっちをよく見る - unittest.mockは呼び出されたらこう返す。設定とは別にこういう引数で呼ばれているか検証 - 直接依存とモック化の指針、参考になる:+1: - 題材は違うけど[現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ](https://t-wada.hatenablog.jp/entry/design-for-testability) も参考になりそう?:+1::+1: - 振る舞いへの依存を分離するって結局なにしてんの?💦