Modelli di design Python - Anti
Gli anti-pattern seguono una strategia in opposizione ai modelli di design predefiniti. La strategia include approcci comuni a problemi comuni, che possono essere formalizzati e possono essere generalmente considerati come una buona pratica di sviluppo. Di solito, gli anti-pattern sono opposti e indesiderabili. Gli anti-pattern sono determinati modelli utilizzati nello sviluppo del software, che sono considerati cattive pratiche di programmazione.
Caratteristiche importanti degli anti-pattern
Vediamo ora alcune importanti caratteristiche degli anti-modelli.
Correttezza
Questi schemi rompono letteralmente il codice e ti fanno fare cose sbagliate. Di seguito è riportato un semplice esempio di questo:
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)) 
    Manutenibilità
Si dice che un programma sia mantenibile se è facile da capire e modificare secondo il requisito. L'importazione del modulo può essere considerata un esempio di manutenibilità.
import math
x = math.ceil(y)
# or
import multiprocessing as mp
pool = mp.pool(8) 
    Esempio di anti-pattern
L'esempio seguente aiuta nella dimostrazione di anti-pattern -
#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 
    Spiegazione
L'esempio include la dimostrazione di standard buoni e cattivi per la creazione di una funzione in Python.
