クリーンアーキテクチャの書籍は読んでいたものの、実際にコードに落とし込めなかった。 なので、Pythonでのクリーンアーキテクチャ的な設計ってあるのかな?と検索していると、以下リンクの「Clean Architectures in Python」を見つけ無料で読めることを知った。
「Clean Architectures in Python」は2020年のEuroPythonで発表していたみたいです。
目次
「Clean Architectures in Python」の目次を書いておく。
- Introduction
- About the book
- Chapter1 : A day in the life of a clean system
- Chapter2 : Components of a clean architecture
- Chapter3 : A basic example
- Chapter4 : Add a web application
- Chapter5 : Error management
- Chapter6 : Integration with a real external system postgres
- Chapter7 : Integration with a real external system mongodb
- Chapter8 : Run a production ready system
学んだこと
まず英語で書かれているので、Google翻訳を使いつつ読んでいった。
この本では、前半はCLIで物件情報を一覧表示するアプリを作り、 後半は前半で作ったものをもとにFlaskというフレームワークを用いて、WebAPIにしていきながらクリーンアーキテクチャが解説されている。 ビジネスロジックさえ作っていればCLIでもWebAPIでも簡単に変更できることや、 DBをpostgresからmongoDBに変更するなど変更容易性の観点や、エラーマネジメントの話はとても参考になる。
最初から最後までテスト駆動開発(TDD)で進められており、その点も非常に参考になる。
他にも、Pythonのdataclass
やレスポンスの設計やユースケースについても知ることが出来た。
まとめ
クリーンアーキテクチャもそうだが、Pythonを始めたばかりの自分にとってはpythonでのテストの書き方、テスト駆動開発やDBへの接続などがとても参考になった。 全体を通して、今の自分にとっては知りたいことが具体例として書いてあり、すべてのページで学びがあった。
PythonでWeb開発に携わる人は、そんなに長くなく2, 3日くらいで読めたので、一度読んでみることをオススメする。