TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #1949 906
.

В продолжение сегодняшнего поста (теперь доступен только избранным:), даю там 4 простых шага, как вы можете тренироваться в теме проектирования самостоятельно, при этом не тратя месяцы и годы на изучение тяжёлых методологий наподобие DDD.


Я экспериментировал где-то 20-30 часов с моей новой методикой "как обучать формальному проектированию просто как готовой пошаговой технологии, чтобы человек с небольшим опытом мог создавать системы с полного нуля не на 20 классов, а на 20,000 классов, сохраняя сложность проекта линейной". Ключевая идея, что у нас есть 5-7 гибридных паттернов (повыше уровень абстракции, чем классические 23 GoF паттерна), для каждого из которых задано предусловие - когда тот или иной паттерн надо просто "тупо" применять, и как именно это делать. Ну например это "инвертированный" Visitor, который я вчера выложил для ментатов в СильныеИдеи (если угодно, это версия Double Dispatch с Action Interface).


И вот что я должен сказать по итогу: да, в результате действительно получается использовать эти паттерны так, что сложность проекта остаётся линейной: практически любую новую фичу мы добавляем за O(1), максимум за O(log N). Но при этом во-первых нужен приличный скилл и опыт применения паттернов (хотя бы классических), приличный порог вхождения, во-вторых сама архитектура быстро становится весьма громоздкой (очереди, синхронные шины приходится внедрять практически с самого начала) и тяжеловатой для понимания, если брать уровень среднего миддла, и в-третьих AI в этом вообще ничего не понимает, тупит и плавает, а так как многие моменты уже неформальны, вообще непонятно, стоит ли его рекомендациям доверять или нет.

Это была моя мета-ошибка: мне надо было сразу начинать с того факта, что ООП -- это полный sucks 💩

Я плюнул на это всё, и за полчаса начисто зафигачил с нуля тот же самый учебный проект в функциональном стиле 💥 При этом и AI классно помогал, так как все функции чистые, а он в алгоритмических задачках реально хорош. Ну и TDD на ФП ложится вообще идеально, плюс ещё куча других плюсов.

В общем, буду дальше учить проектированию только в функциональном стиле, это же чистая математика ❤️ и постепенно к моей модели сохранения линейной сложности в дополнение к тем десяткам паттернов, что даю на первом курсе по функциональному программированию, соответственно добавлю несколько ключевых секретных гибридных паттернов, и плавно буду подключать абстракции из гомотопической теории типов.

Тут вообще всё элементарно, куда проще чем классы, вот смотрите: HOFs как экспоненциалы, свободные композиции при совпадении доменов-кодоменов, финальные ко-алгебры для описания индуктивных рекурсивных типов, ограниченные типом функции (поведения в поведениях), монадические трансформеры, категорные классы как паттерны декомпозиции, и прочая попса 😇


Ну а те десятки часов, которые я потратил на эксперименты с ООП, в принципе тоже не пропадут: я просто в СильныеИдеи добавлю отдельный материал с теми гибридными паттернами.
  • ❤ 48
  • 🔥 7
  • 👍 4
  • 👌 2
More from @lambda_brain
  1. Oct 1, 2026Ребята спрашивают, ну ок, моё скромное мнение. у вас где-нибудь можно прочитать ваше мнени…
  2. Sep 30, 2026Ладно, вот вам база, почему так трудно переучиваться с императивного/объектного стиля коди…
  3. Sep 30, 2026Ну, с Днём Рунета! Многие годы Рунет был эталонным примером свободы, а сегодня превратился…
  4. Sep 28, 2026. Облако драгоценностей за неделю. Дипломный проект разросся уже так, что расширил его до…
  5. Sep 27, 2026GELU (Gaussian Error Linear Unit) -- базовая фича архитектуры трансформеров, да и вообще в…
  6. Sep 27, 2026Продолжение сериала "Совершенно не удивлён, и дальше будет только хуже" (с) На этой неделе…
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 →