TGViewer
Точка входа в программирование Точка входа в программирование @prog_point · 18K subscribers
Post #5058 630
Разнесите разросшуюся проверку по цепочке маленьких обработчиков

В каждом проекте однажды заводится функция, которую никто не хочет трогать. Начиналось с одной проверки, потом добавили if, потом ещё один, а сверху появился комментарий «не менять, не прочитав целиком». Новичков о ней предупреждают на онбординге.

Паттерн Chain of Responsibility, цепочка обязанностей, разбирает такой ком на части. Вместо одного метода, который знает всё, вы строите цепочку обработчиков: каждый знает ровно одно правило и решает, пропустить запрос дальше или остановить прямо здесь. Ни один обработчик не знает ни длины цепочки, ни того, кто стоит до и после него.

Возьмите свою самую разросшуюся проверку и попробуйте выделить из неё два независимых правила. Разбор паттерна покажет, как связать их в цепочку так, чтобы добавление третьего не требовало трогать первые два.
freeCodeCamp.org Chain of Responsibility Design Pattern: Decoupling Complex Business Rules, One Handler at a Time Every system, at some point, ends up with a function that nobody wants to touch. It starts small: a simple validation check, an if statement here, another there. Then requirements grow and more condit
  • ❤ 3
  • 👍 1
More from @prog_point
  1. Sep 20, 2026Как читать ввод с геймпада в JavaScript и не принять поломку за норму В Gamepad API нет со…
  2. Sep 20, 2026Как выбрать пагинацию для API Пагинация делит ответ API на части. Offset пропускает N стро…
  3. Sep 20, 2026Какие исключения ловить в Python и какие оставить видимыми Один except для ValueError, Typ…
  4. Sep 19, 2026Превращаем статичную HTML-страницу в редактор на JavaScript Резюме или меню можно отдать а…
  5. Sep 19, 2026Инструкция по применению: открыть анкету, ответить на вопросы из школьной тетрадки, по дор…
  6. Sep 19, 2026freeCodeCamp.org выпустил бесплатный курс по Python с тремя проектами Это четырёхчасовой в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →