TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #2112 841
"...один из старших программистов пытался и пытается продать идею, как офигенно делать контроллер с эндпоинтом на ~1к строк, где куча всего делается и поиск багов из прода там превращался просто в треш (+ куча внешних сервисов используемых в этом коде), причем на полной серьезе, типо так читаемость классная. Тыкать в IDE особо не надо, сразу идешь по потоку программы. Поэтому и интерфейсы в топку, иначе тыкнул по интерфейсу в коде и не сразу попал на класс реализации, очень неудобно ему. Очень яркие ощущения были от работы с его кодом."

Ну какая-то логика удобства в этом подходе прослеживается :) Когда я пишу код, который точно буду использовать только сам, иногда так для удобства и делаю, потому что действительно просто удобно его читать (мне), а в редакторе можно схлопывать просто куски. Главное, что если в голове есть четкая модель, то вообще пофиг, как код организован. Точнее, я настраиваю его структуру конкретно под себя, под свой стиль, который может быть весьма странным со стороны.

И это собственно самая что ни на есть ключевая проблема программной инженерии: пишу ли я код только для себя, который удобно использовать здесь и сейчас, или же его потом будут годами дорабатывать другие люди, плохо знакомые с проектом. И это даже сеньорам очень трудно объяснить...

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

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

=

...А по поводу самого подхода "контроллер с эндпоинтом на ~1к строк" вот что хочу сказать: а вдруг этот сеньор проходил мой трек по гомотопической теории типов? :)

Напомню, что сложные системы в HoTT естественно представляются как композиции путей, склеивание вдоль границ, факторизация через эквивалентности и т.д. И вот подход "один здоровенный контроллер" можно интерпретировать как попытку представить всю бизнес-логику как один длинный путь в огромном пространстве состояний без явного разбиения на подпространства и эквивалентности.

Есть некоторый огромный тип/пространство (все возможные состояния системы и внешних сервисов), и контроллер -- это одна длинная кривая от "начало запроса" до "ответ отдан". Она почти не имеет явных разбиений на сегменты, почти не факторизуется через подпространства/подтипы, и минимизирует "прыжки" между контекстами/модулями.

Дальше немного поясню, почему это субъективно выглядит очень "читабельно" и комфортно с точки зрения человека, сидящего "внутри" гомотопической модели, и спалю ряд фишек, так и быть, из моего грядущего гайда "Функциональные архитектуры".
  • ✍ 39
  • ❤ 13
  • ⚡ 4
  • 😁 2
  • ❤‍🔥 1
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 →