Олег Корнев
гость
гость
Второй выпуск продолжает практики снижения сложности с Different Layer, Different Abstraction. Pass-through methods и variables означают, что слой повторяет нижний interface и не скрывает знания. Decorator полезен с самостоятельной политикой, но цепочка обёрток без новой абстракции создаёт shallow module.
Pull Complexity Downwards переносит трудность в модуль, если это помогает множеству пользователей. Контрпример — огромная configuration surface, где клиент собирает правильную комбинацию параметров. Сложность стоит опускать только вместе с ответственностью модуля и упрощением interface.
Better Together or Better Apart отвергает лимит в двадцать строк. Разделение полезно для независимых частей; оно вредно, если создаёт duplication, требует читать соседний модуль или дробит одну domain concept. Важнее information hiding, cohesion и понятная граница.
Define Errors Out of Existence меняет API так, чтобы обычный исход не становился exception. Удаление файлов в Unix и Windows показывает силу семантики. Ошибки можно маскировать retry или агрегировать, сохраняя consistency. Design It Twice завершает выпуск сравнением решений до implementation.