LoginSignup
1
2

More than 3 years have passed since last update.

[PyCon2019レポート] Pythonを使ったAPIサーバー開発を始める際に整備したCIとテスト機構

Last updated at Posted at 2019-09-16

Session: https://pycon.jp/2019/schedule?sessionId=119

参加して来ました。

自分がピンと来た部分だけをピックアップして紹介します。詳細は公開されている資料をご覧ください。

資料

主旨

発表者: Higashiguchi Kazuki さん / @hgsgtk

筆者がPythonを業務で使い始めたときに、やっててよかったと思える準備について語る。学習サイクルを促進できるCI導入・自動テストの考え方を述べる

どのような観点でテスト/チェックするのか

CIを入れて、指摘結果から学ぶ。

  • コード検査
    • コーディング規約 (PEP8, PEP257など)
    • テスト - 「テスタビリティの声」を聞く
    • テストを書けば、自分のコードがどの程度「テストしやすいのか」の感覚が得られる
    • 「テストしやすさ」の感覚は、「関心」の分離がなされた疎結合なコード設計を促す
    • docstring
    • コードは、書く時間よりも、読まれている時間の方が多い という考え方に従う
    • 型検査
  • 自動テスト
    • テストスコープを、アプリの内部に留めたい(外部環境に依存するテストは不安定である)
    • 外部への依存を分離して、簡単に差し替え可能な設計になっているか?
    • テストを実行する「前準備」のコストから、設計に対するフィードバックが得られる
    • 疎結合なコード設計に目を向けるきっかけになる

感想

ポジティブにCI/テストする、というテンションが非常に良かったです。

テクニカルというよりはメンタル的な、啓発的な色が強いセッションという印象でした。だがそれが良い。

「慣れない人からしたら、テストは やったほうがいい、でも面倒 というイメージが強いと思う。でも、CIやテストを自分のコード設計に対するフィードバックとして積極的に取り入れたらもっとハッピーになれるよ」

といったようなことを終わり際に話されていました(一言一句は覚えていませんが)。私自身も、多少ながらテストを意識してコードを書くようになってきたのでこの言葉は至言だなと思いました。とても良いセッションでした。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2