Patrones de diseño de Python - Anti
Los anti-patrones siguen una estrategia en oposición a los patrones de diseño predefinidos. La estrategia incluye enfoques comunes para problemas comunes, que pueden formalizarse y, en general, pueden considerarse como una buena práctica de desarrollo. Generalmente, los anti-patrones son opuestos e indeseables. Los anti-patrones son ciertos patrones utilizados en el desarrollo de software, que se consideran malas prácticas de programación.
Características importantes de los anti-patrones
Veamos ahora algunas características importantes de los anti-patrones.
Exactitud
Estos patrones literalmente rompen tu código y te hacen hacer cosas incorrectas. A continuación se muestra una ilustración simple de esto:
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))
Mantenibilidad
Se dice que un programa se puede mantener si es fácil de entender y modificar según el requisito. La importación de módulos se puede considerar como un ejemplo de mantenibilidad.
import math
x = math.ceil(y)
# or
import multiprocessing as mp
pool = mp.pool(8)
Ejemplo de anti-patrón
El siguiente ejemplo ayuda en la demostración de anti-patrones:
#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
Explicación
El ejemplo incluye la demostración de estándares buenos y malos para crear una función en Python.