search
LoginSignup
2
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

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

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

参加して来ました。

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

資料

主旨

発表者: Higashiguchi Kazuki さん / @hgsgtk

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

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

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

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

感想

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

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

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

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

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
What you can do with signing up
2
Help us understand the problem. What are the problem?