このプロジェクトについて
python-patternsは、Pythonで実装されたデザインパターンとイディオムのリファレンス集です。ライブラリではなく学習リソースであり、各パターンはカテゴリフォルダ内の独自の小さなモジュールに存在し、READMEには短い説明付きのインデックスが掲載されています。
カバレッジはいくつかのグループに整理されています。生成パターンには、abstract_factory、borg、builder、factory、lazy_evaluation、pool、prototypeが含まれます。構造パターンには、3-tier、adapter、bridge、composite、decorator、facade、flyweight、front_controller、mvc、proxyが含まれます。振る舞いパターンには、chain_of_responsibility、catalog、chaining_method、command、interpreter、iterator(代替実装あり)、mediator、memento、observer、publish_subscribe、registry、servant、specification、state、strategy、template、visitorが含まれます。また、テスト容易性のための設計例(3つのバリアントを持つdependency_injection)、基本的なdelegation_pattern、およびblackboard、graph_search、階層状態機械(hsm)などの他のパターンもあります。
READMEはパターンをトレードオフとして明示的に位置付け、コードの書き方だけでなく、なぜそのパターンが選ばれるのかに焦点を当てるよう読者に促しています。また、Pythonで推奨されないアンチパターン(シングルトン(モジュールはすでにシングルトン)、神オブジェクト、継承の過度な使用など)を文書化し、モジュールレベルの変数、依存性注入、合成、委譲などの代替案を提案しています。
各サンプルモジュールには、モジュールレベルのdocstringに参考文献と、可能であれば実際の使用例を示す「Pythonエコシステムでの例」セクションを含めることが期待されています。プロジェクトは、一部のパターンのPython 2互換バージョン用にレガシータグを維持しています。貢献ガイドでは、docstring、READMEの更新、フォーマット、リンティング、型チェック、テストのための./lint.shの実行について説明しています。開発依存関係はPipfile.lockに固定され、make lockで再生成されます。問題のトリアージはCodeTriageを通じてサポートされ、READMEにはPythonでのデザインパターンに関するいくつかのカンファレンス講演やビデオへのリンクがあります。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.