14. どうプログラミングするのか

14.1. 概要

  • これまで私が教わってきた TDD の考え方について紹介します。

14.2. コードの書き方

  • プログラムはまず日本語で書けるようにする
    • 日本語化する事により、調べやすくなる。
    • 何をテストすべきなのかも見えてくる

14.3. コードの書き方

  • プログラムには入力と出力がある
    • テストは入力と出力を決定して実行する

14.4. TDD(BDD)で必ず書け!

  • メインのコードを書く前にテストを書く。 目的はコードの設計
    • 関数名の決定( 名前重要 )
    • 引数の決定(関数やclassの使い方)
    • そのコードの 振る舞い についての決定

14.5. TDD(BDD)で必ず書け!

  • テストを先に書くことにより、テストしやすいコードとなる。
  • main関数の代わりに unittest.main() で実行する
  • 手動でテストしていた事をunittestで 自動実行 が可能となる ⇒ CI

14.6. テストのデメリット

  • テストは負債になる事もある
    • ソースコードが巨大になると、ソースの根幹に関わる部分を変更した時にテストコード自体も大量に書き直さなければならない時がある

14.7. 不要なテスト

  • argparseのような 既存モジュールの動作についてのテストは不要
    • 自分で書いたわけではないモジュールの機能はモジュール自体が動作を保障してくれるはず

14.8. テスト用のdummy

  • プロセス間通信するプログラム(たとえばネットワークプログラミング等)をテストをする為には mock が必要

14.9. バージョン管理

  • ソースコードの管理には バージョン管理ツール が必須。
    • これは開発だけではなくサーバのconfig管理やドキュメント管理にも言える事

14.10. バージョン管理

  • ソースコード等のプレーンテキストの管理にはPython製で初心者にも使いやすい Mercurial を使おう

14.11. おしまい

以上