Practical Python Design Patterns - The Interpreter Pattern 編
Practical Python Design Patterns - Python で学ぶデザインパターン: The Interpreter Pattern - Part. 3 「ダメ押し確認」の巻 投稿一覧へ戻る
Published 2022年6月25日20:09 by mootaro23
SUPPORT UKRAINE
- Your indifference to the act of cruelty can thrive rogue nations like Russia -
Parting Shots(ダメ押し確認)
プログラミングに携わっている限り、常に「より良い」を求めてハードワークに勤しむ心構えを忘れないでください。そのためにもプロジェクトに関わり課題に取り組みましょう。
Jeff Bay が提案している「課題」の1つは、The Pragmatic Programmers から発刊されている Thought Works Anthology に掲載されています。
1000行を超える趣味レベルを超えたプロジェクトを下記の条件を満たしつつ完遂しよう、というものです:
1つのメソッド内におけるインデントは1レベルのみ許されます。つまり、ループの中に if 文は置けず、ネストも存在してはいけません。
else キーワードを使ってはいけません。
全てのプリミティブ型と文字列はそのままでは使用できずオブジェクトでラップしなければいけません。
Collections はファーストクラスですから、独自のオブジェクトでラップしなければいけません。
名前に省略形を用いていけません。名前が長過ぎる、ということは、そのメソッド、もしくは、クラスで複数のことを行おうとしている可能性があるからです。
1行内で利用できるドットオペレーターは1つだけです。つまり、object.method() は大丈夫ですが、object.attribute.method() は許されません。
全てのエンティティをできる限り小さく保たなければいけません。1つのパッケージに含めるのは15オブジェクトまで、1つのクラスは50行以内、1つのメソッドは5行以内です。
1つのクラスで定義できるインスタンス変数は2つまでです。
Getters や setters (Python では getattr() や setattr() メソッド) を使用したり、プロパティに直接アクセスすることはできません。
これは非常に難しいですけど、普段の自分のコーディングスタイルを見直す非常にいいきっかけになります。是非お試しを...。
この記事に興味のある方は次の記事にも関心を持っているようです...
- People who read this article may also be interested in following articles ... -