Python-Entwurfsmuster - Anti

Anti-Patterns folgen einer Strategie im Gegensatz zu vordefinierten Designmustern. Die Strategie umfasst gemeinsame Ansätze für gemeinsame Probleme, die formalisiert werden können und allgemein als gute Entwicklungspraxis angesehen werden können. Normalerweise sind Anti-Muster entgegengesetzt und unerwünscht. Anti-Patterns sind bestimmte Muster, die in der Softwareentwicklung verwendet werden und als schlechte Programmierpraktiken angesehen werden.

Wichtige Merkmale von Anti-Mustern

Lassen Sie uns nun einige wichtige Merkmale von Anti-Mustern sehen.

Richtigkeit

Diese Muster brechen buchstäblich Ihren Code und bringen Sie dazu, falsche Dinge zu tun. Das Folgende ist eine einfache Illustration davon -

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))

Wartbarkeit

Ein Programm gilt als wartbar, wenn es gemäß den Anforderungen leicht zu verstehen und zu ändern ist. Das Importieren eines Moduls kann als Beispiel für die Wartbarkeit angesehen werden.

import math
x = math.ceil(y)
# or
import multiprocessing as mp
pool = mp.pool(8)

Beispiel eines Anti-Musters

Das folgende Beispiel hilft bei der Demonstration von Anti-Mustern -

#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

Erläuterung

Das Beispiel enthält die Demonstration guter und schlechter Standards zum Erstellen einer Funktion in Python.