Help us understand the problem. What is going on with this article?

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

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

参加して来ました。

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

資料

主旨

発表者: Higashiguchi Kazuki さん / @hgsgtk

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

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

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

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

感想

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

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

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

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away