Session: https://pycon.jp/2019/schedule?sessionId=119
参加して来ました。
自分がピンと来た部分だけをピックアップして紹介します。詳細は公開されている資料をご覧ください。
資料
主旨
発表者: Higashiguchi Kazuki さん / @hgsgtk
筆者がPythonを業務で使い始めたときに、やっててよかったと思える準備について語る。学習サイクルを促進できるCI導入・自動テストの考え方を述べる
どのような観点でテスト/チェックするのか
CIを入れて、指摘結果から学ぶ。
- コード検査
- コーディング規約 (PEP8, PEP257など)
- テスト - 「テスタビリティの声」を聞く
- テストを書けば、自分のコードがどの程度「テストしやすいのか」の感覚が得られる
- 「テストしやすさ」の感覚は、「関心」の分離がなされた疎結合なコード設計を促す
- docstring
- コードは、書く時間よりも、読まれている時間の方が多い という考え方に従う
- 型検査
- 自動テスト
- テストスコープを、アプリの内部に留めたい(外部環境に依存するテストは不安定である)
- 外部への依存を分離して、簡単に差し替え可能な設計になっているか?
- テストを実行する「前準備」のコストから、設計に対するフィードバックが得られる
- 疎結合なコード設計に目を向けるきっかけになる
感想
ポジティブにCI/テストする、というテンションが非常に良かったです。
テクニカルというよりはメンタル的な、啓発的な色が強いセッションという印象でした。だがそれが良い。
「慣れない人からしたら、テストは やったほうがいい、でも面倒 というイメージが強いと思う。でも、CIやテストを自分のコード設計に対するフィードバックとして積極的に取り入れたらもっとハッピーになれるよ」
といったようなことを終わり際に話されていました(一言一句は覚えていませんが)。私自身も、多少ながらテストを意識してコードを書くようになってきたのでこの言葉は至言だなと思いました。とても良いセッションでした。