Недавно я начал систематизировать практики которые обычно используются и помогают экономить время. Я хочу поделиться некоторыми из них.
1. Явное состояние и мемоизация
Скрытые состояния в замыканиях и декораторах часто приводят к трудноуловимым багам.
from functools import wraps
def memoize(func):
cache = {}
@wraps(func)
def wrapper(*args):
if args not in cache:
cache[args] = func(*args)
return cache[args]
return wrapper
Использование @wraps сохраняет имя функции, docstring и метаданные — критично для дебага и интеграции с Flask.
2. Асинхронность для продакшн
Асинхронность часто ухудшает код, если использовать её неправильно.
