================================ 清原 弘貴 ================================ 清原 弘貴(きよはら ひろき) 2012年10月より BeProud_ 所属。2011年から本格的にPythonを使っている。 Django_ が好きで、日本で最大級のDjangoイベントDjangoCongress JP( https://djangocongress.jp )の主催をしたり、Webアプリケーションやライブラリを作ったり、Django本体のソースコードへパッチを送ったりしている。 個人でShodo( https://shodo.ink )、dig-en( https://dig-en.com )、PileMd( https://pilemd.com )、仕事でPyQ( https://pyq.jp )など、多数のWebサービス・アプリを企画、開発している。 .. _BeProud: https://www.beproud.jp/ .. _Django: https://www.djangoproject.com/ :Twitter: `@hirokiky `_ :URL: http://hirokiky.org/ :Amazon著者セントラル: `清原弘貴 `__ 共著書 ======= * Pythonプロフェッショナルプログラミング 第3版 (2018秀和システム刊) * Pythonエンジニアファーストブック (2017 技術評論社刊) * Pythonプロフェッショナルプログラミング 第2版 (2015秀和システム刊) 執筆したトピック ================= * :doc:`../関数設計/1-関数名は処理内容を想像できる名前にする` * :doc:`../関数設計/2-関数名ではより具体的な意味の英単語を使おう` * :doc:`../関数設計/3-関数名から想像できる型の戻り値を返す` * :doc:`../関数設計/4-副作用のない関数にまとめる` * :doc:`../関数設計/5-意味づけできるまとまりで関数化する` * :doc:`../関数設計/6-リストや辞書をデフォルト引数にしない` * :doc:`../関数設計/7-コレクションを引数にせずintやstrを受け取る` * :doc:`../関数設計/8-インデックス番号に意味を持たせない` * :doc:`../関数設計/9-関数の引数に可変長引数を乱用しない` * :doc:`../関数設計/10-コメントには「なぜ」を書く` * :doc:`../関数設計/11-コントローラーには処理を書かない` * :doc:`../クラス設計/12-辞書でなくクラスを定義する` * :doc:`../クラス設計/13-dataclassを使う` * :doc:`../クラス設計/14-別メソッドに値を渡すためだけに属性を設定しない` * :doc:`../クラス設計/15-インスタンスを作る関数をクラスメソッドにする` * :doc:`../モジュール設計/16-utils.pyのような汎用的な名前を避ける` * :doc:`../モジュール設計/17-ビジネスロジックをモジュールに分割する` * :doc:`../モジュール設計/18-モジュール名のオススメ集` * :doc:`../ユニットテスト/19-テストにテスト対象と同等の実装を書かない` * :doc:`../ユニットテスト/20-1つのテストメソッドでは1つの項目のみ確認する` * :doc:`../ユニットテスト/22-単体テストをする観点から実装の設計を洗練させる` * :doc:`../ユニットテスト/23-テストから外部環境への依存を排除しよう` * :doc:`../ユニットテスト/25-テストユーティリティーを活用する` * :doc:`../ユニットテスト/28-テストの実行順序に依存しないテストを書く` * :doc:`../ユニットテスト/29-戻り値がリストの関数のテストで要素数をテストする` * :doc:`../ユニットテスト/30-テストで確認する内容に関係するデータのみ作成する` * :doc:`../ユニットテスト/31-過剰なmockを避ける` * :doc:`../ユニットテスト/32-カバレッジだけでなく重要な処理は条件網羅をする` * :doc:`../テーブル定義/49-NULLをなるべく避ける` * :doc:`../テーブル定義/50-一意制約をつける` * :doc:`../テーブル定義/51-参照頻度が低いカラムはテーブルを分ける` * :doc:`../テーブル定義/52-予備カラムを用意しない` * :doc:`../テーブル定義/53-ブール値でなく日時にする` * :doc:`../テーブル定義/54-データはなるべく物理削除をする` * :doc:`../テーブル定義/55-typeカラムを神格化しない` * :doc:`../テーブル定義/56-有意コードをなるべく定義しない` * :doc:`../テーブル定義/57-カラム名を統一する` * :doc:`../ロギング/69-ログメッセージをフォーマットしてロガーに渡さない` * :doc:`../ロギング/70-個別の名前でロガーを作らない` * :doc:`../ロギング/71-info、errorだけでなくログレベルを使い分ける` * :doc:`../ロギング/72-ログにはprintでなくloggerを使う` * :doc:`../ロギング/73-ログには5W1Hを書く` * :doc:`../要件定義/111-いきなり作り始めてはいけない` * :doc:`../要件定義/112-作りたい価値から考える` * :doc:`../要件定義/113-100pctの要件定義を目指さない` * :doc:`../画面モック/114-文字だけで伝えず、画像や画面で伝える` * :doc:`../画面モック/115-モックアップは完成させよう` * :doc:`../画面モック/116-遷移、入力、表示に注目しよう` * :doc:`../画面モック/117-コアになる画面から書こう` * :doc:`../画面モック/118-モックアップから実装までをイメージしよう` * :doc:`../画面モック/119-最小で実用できる部分から作ろう` * :doc:`../画面モック/120-ストーリーが満たせるかレビューしよう`