Pythonデザインパターン-アンチ
アンチパターンは、事前定義されたデザインパターンとは反対の戦略に従います。この戦略には、一般的な問題に対する一般的なアプローチが含まれています。これは、形式化することができ、一般に優れた開発手法と見なすことができます。通常、アンチパターンは反対であり、望ましくありません。アンチパターンは、ソフトウェア開発で使用される特定のパターンであり、悪いプログラミング手法と見なされます。
アンチパターンの重要な機能
ここで、アンチパターンのいくつかの重要な機能を見てみましょう。
正しさ
これらのパターンは文字通りコードを壊し、間違ったことをさせます。以下はこれの簡単な説明です-
class Rectangle(object):
def __init__(self, width, height):
self._width = width
self._height = height
r = Rectangle(5, 6)
# direct access of protected member
print("Width: {:d}".format(r._width))
保守性
プログラムは、要件に従って理解および変更が容易である場合、保守可能であると言われます。モジュールのインポートは、保守性の例と見なすことができます。
import math
x = math.ceil(y)
# or
import multiprocessing as mp
pool = mp.pool(8)
アンチパターンの例
次の例は、アンチパターンのデモンストレーションに役立ちます-
#Bad
def filter_for_foo(l):
r = [e for e in l if e.find("foo") != -1]
if not check_some_critical_condition(r):
return None
return r
res = filter_for_foo(["bar","foo","faz"])
if res is not None:
#continue processing
pass
#Good
def filter_for_foo(l):
r = [e for e in l if e.find("foo") != -1]
if not check_some_critical_condition(r):
raise SomeException("critical condition unmet!")
return r
try:
res = filter_for_foo(["bar","foo","faz"])
#continue processing
except SomeException:
i = 0
while i < 10:
do_something()
#we forget to increment i
説明
この例には、Pythonで関数を作成するための良い基準と悪い基準のデモンストレーションが含まれています。