Токсичный (it) архитектор – Telegram
Токсичный (it) архитектор
592 subscribers
11 photos
24 links
Моя цифровая курилка. Говорю то, что вы боитесь сказать на митинге. Без восторгов по поводу хайповых фреймворков и мантр про «бирюзовые компании».

Автор: Тот самый «душный» коллега, к которому идут, когда всё горит. Связь: @ruslan_firefly
Download Telegram
Channel name was changed to «Токсичный (it) архитектор»
«А ты кто такой и зачем тебе этот канал?»

Справедливый вопрос. Большинство заводят каналы, чтобы продавать курсы, искать работу или потешить эго. Моя мотивация проще
- накопилось.

Познакомимся. Меня зовут Руслан. За последние двадцать лет я побывал хирургом, реаниматологом и чего уж там скрывать, патологоанатомом для десятков IT-проектов. Видел столько, от чего у молодых разработчиков волосы бы встали дыбом, будь они не собраны в аккуратный пучок.

Этот канал — мой личный блокнот, куда я сливаю токсичные, но надеюсь полезные наблюдения. Учебником здесь и не пахнет, да и до сборника лучших практик далеко. Перед вами лишь коллекция шрамов и прививок от глупости. Буду препарировать хайповые технологии, карго-культ и управленческую импотенцию — и всё это без анестезии.

Для удобства введу простую навигацию:

- #заметкинаполях - мои регулярные инъекции здравого смысла в нашу перегретую индустрию. Главная рубрика.

- #этобаза - то, чему следовало научиться ещё на первом курсе, но многие предпочли прогулять пары. Вечные истины, о которых сейчас никто не вспоминает.

- #интересное - редкие проблески разума среди статей, книг и докладов. Когда я выкладываю сюда материал, значит автор не совсем идиот. Уже достижение.

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

Чтоб окончательно не свихнуться в этом сумасшедшем доме.
4
Токсичный (it) архитектор pinned ««А ты кто такой и зачем тебе этот канал?» Справедливый вопрос. Большинство заводят каналы, чтобы продавать курсы, искать работу или потешить эго. Моя мотивация проще - накопилось. Познакомимся. Меня зовут Руслан. За последние двадцать лет я побывал хирургом…»
☕️Сижу, пью свой утренний кофе. Листаю Хабр. Очередной восторженный высер: «Как мы переехали на микросервисы и стали богами». Сотни комментариев. «Красавцы!», «Тоже так хотим!».

А я смотрю на это и вижу стадо леммингов, радостно бегущих к обрыву. 🏃‍♂️💨

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

Зато модно.

Вы вообще знаете, что такое карго-культ? Нет? Сейчас объясню на пальцах. 🗿Туземцы во время второй мировой войны видели, как прилетают самолеты с ништяками. ✈️ Самолеты садились на взлетные полосы и солдаты разбирали посылки. Война кончилась, самолеты улетели. И что сделали туземцы? Начали строить свои аэродромы из бамбука. Наушники из кокосов, 🥥 вышки из глины. Они думали, что если скопировать ритуал, то самолет с хавчиком прилетит снова.

Ничего не напоминает? 🤔

Google и Netflix показали вам самолеты. А вы, как те туземцы, бросились лепить свои бамбуковые аэродромы. Разворачиваете Kubernetes там, где хватило бы одного скрипта. Внедряете Kafka, чтобы передавать три сообщения в час. Копируете форму, не понимая сути.

Вы думаете, Netflix успешен, потому что у них микросервисы? Нет. У них микросервисы, потому что они, мать его, Netflix. У них тысячи инженеров и бюджеты, которые вам и не снились. Их архитектура решает их организационные проблемы.

А вы? Какие, к черту, проблемы решаете вы?🤷‍♂️

Давайте честно, без булшита. Проверьте симптомы:

1️⃣ Вы получили распределенный монолит. 50 сервисов, которые ходят в одну базу и рефакторятся только все вместе. Гениально. Вы просто заменили надежный вызов функции на лотерею по сети. 🎰

2️⃣ Отладка превратилась в ад. 👹 Раньше был стектрейс. Теперь — седой тимлид, три дашборда в Grafana и ритуальные танцы с бубном в попытке понять, почему запрос от сервиса А до сервиса Б вчера доходил, а сегодня — нет.

3️⃣ YAML — ваш новый C++. Разработчики забыли, как писать код. Они пишут Helm-чарты. Они стали экспертами в отступах, а не в алгоритмах.

4️⃣ «У меня локально все работало» стало вашим гимном. Поднять всю эту прелесть на одной машине невозможно. Каждый коммит — русская рулетка.

Так что, сидеть на монолите не стыдно, cтыдно — быть туземцем с кокосом на голове. 🥥

Начинать с хорошо спроектированного, модульного монолита — это не просто нормально. В 99% случаев это единственно правильное решение. Монолит — это предсказуемость. Это простота. Это здравый смысл.

Микросервисы — инструмент для решения проблем организационного масштаба. Когда у вас 500 разрабов срут в одну кодовую базу. У вас есть 500 разрабов? Нет? Тогда какого черта?

Так что перед тем, как снова произнести слово «микросервис», ответьте себе на пару вопросов. Только честно, как на допросе:

У вас есть DevOps-инженер, который не плачет по ночам?

Ваша система мониторинга видит дальше собственного носа?

Вы можете определить границы домена, не устроив поножовщину?


Если хоть на один вопрос ответ «нет» — закрывайте этот текст и идите работать. Строить нормальный, работающий продукт. 🚀

Мне плевать, монолитный он будет или нет. Лишь бы работал. 💪

#заметкинаполях

Токсичный (it) архитектор
🔥6👍41
👋Листаю ленту. Очередная статья-молебен на тему «Как AI сделает из вас архитектора-бога». Пишет ADR-ы, рисует C4-диаграммы, отвечает на тупые письма от менеджеров. Все в восторге. Комментарии — сплошной восторг.

А у меня в голове только одна мысль.🙃

Поздравляю. Мы стоим на пороге величайшей деквалификации в истории IT. Мы с энтузиазмом кастратов готовимся отдать машине единственное, что делало нас ценными — способность думать.

Помните, как в школе решали задачи? Сидишь, потеешь, скрипишь мозгами, исписываешь черновики. И вот оно — щелчок. Понимание. Ты не просто получил ответ, ты понял, как он работает. Ты прошел через боль и стал умнее.

А теперь представьте имбецила, которому сразу дали калькулятор. Он получает правильные ответы. Он даже может сдать экзамен. Но он понятия не имеет, что он, черт возьми, делает. Он не может отличить умножение от сложения. Он — оператор кнопок.

Вот это и есть архитектор, который «проектирует» с помощью AI. Он скармливает промпт и получает красивую картинку. Микросервисы, Кафка, вот это всё. Выглядит солидно. Только он не знает, почему система именно такая. Почему здесь нужен CQRS, а не простой CRUD. Почему этот сервис взорвется под нагрузкой.

AI — это идеальный инструмент для создания архитектурного карго-культа. Он строит вам идеальный бамбуковый аэродром. С кокосовыми наушниками в комплекте.

Архитектура — это мышцы. Они растут от нагрузки. От бессонных ночей над сложной проблемой. От споров до хрипоты. От болезненных ошибок, которые ты потом запоминаешь на всю жизнь.

AI — это анаболики. Он дает вам быстрый, красивый результат. Ваша презентация выглядит так, будто ее делал бог. Ваши диаграммы безупречны. У вас есть «мышцы». Но это фальшивка. Внутри — пустота. Стоит только столкнуться с реальной, нестандартной проблемой, и вся эта красота схлопывается. Потому что силы нет. Выносливости нет. Мозга нет.

Архитектура — это не про рисование квадратиков. Это про принятие решений с неполными данными. Про выбор меньшего из зол. Про умение сказать «нет» гениальной идее бизнеса, потому что ты видишь на три шага вперед и понимаешь, что она приведет к коллапсу.

Вы правда думаете, что этому можно научить машину?👀

И самое страшное. AI не будет сидеть до ночи с джуном, объясняя ему на пальцах, почему его код — говно, и как сделать лучше. AI не посмотрит в уставшие глаза тимлида и не скажет: «Расслабься, мы справимся». AI не возьмет на себя ответственность, когда все пойдет по одному месту.

А вы? Если вы отдали машине право думать, то кто вы в этой схеме? Вы становитесь просто передаточным звеном. Прокладкой между AI и командой.

И знаете, что делают с ненужными прокладками? Их выбрасывают.

Так что продолжайте радоваться. Генерируйте свои ADR-ы одной кнопкой. Пусть AI думает за вас. Только потом не удивляйтесь, когда однажды вас заменят. Не другой нейросетью. А простым скриптом на Python.

Потому что оператор кнопок должен стоить дешево.💯

#заметкинаполях

Токсичный (it) архитектор
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🥱31
👋Меня тут на днях позвали «проконсультировать» одну команду и кавычки тут не случайны. На деле это означало в очередной раз откачивать пациента, которого группа энтузиастов, начитавшихся модных блогов, гордо направила на рифы «микросервисной трансформации».

Захожу в переговорку. На огромном экране слайд, от которого у меня начинает дергаться глаз: «Стратегия миграции: паттерн „Душитель“». Сидит смузи-тимлид, глаза горят и рассказывает, как они сейчас элегантно и безрисково распилят свой древний монолит.

Я чуть не лопнул от смеха.😁 Безрисково они хотят...

Короче. Давайте я вам объясню, что такое ваш хваленый «душитель», без красивых диаграмм из докладов с конференций.

Представьте, что ваш монолит - старый, ржавый, но рабочий грузовик. Он чудит, жрет масло, но худо-бедно возит грузы и приносит деньги. Вы хотите заменить его на новый блестящий пикап или что-то другое. Идея номер один - сжечь старый грузовик и ждать, пока приедет новый - это подход «Big Bang Rewrite», который проваливается в 99% случаев, оставляя бизнес с голой задницей.💩

Паттерн «Душитель» (Strangler Fig) продается вам как гениальный и простой план: давайте рядом со старым грузовиком потихоньку строить новый, и постепенно перекладывать груз с одного на другой. Звучит вроде как безопасно, да?

Это сказка для менеджеров.

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

Красиво? Да.
Работает? В книжках пишут что да.
👀

А теперь суровая реальность, о которой вам не расскажут на митапах.

🧐 Это невыносимо ДОРОГО и ДОЛГО. «Постепенно» в мире средней компании — это «годами», и не говоря про энтерпрайзы. Все это время вам нужно содержать два зоопарка. Кормить команду, которая ковыряет легаси-говно мамонта, и команду хипстеров, которые пилят новые сервисы на Go. Это двойные расходы на инфру, пайплайны, мониторинг и зарплаты. Это кровоточащая рана в бюджете вашей компании.

🙄 Ваш прокси — это ваш НОВЫЙ "МОНОЛИТ". Только еще хуже. Этот фасад, который вы поставили спереди, становится самой сложной и хрупкой точкой отказа. В нем логика роутинга, аутентификация, трансляция протоколов. Ошибка в конфиге этого монстра кладет ВЕСЬ ваш бизнес. Вы не избавились от монолита, вы просто назвали его API Gateway и сделали сетевым. Гениально.

😡 АД С ДАННЫМИ.  Главный гвоздь в крышку гроба вашего проекта. Как ваш новый сервис профилей будет работать с заказами, которые остались в базе монолита? Будет ходить в старую базу напрямую? Поздравляю, вы только что изобрели распределенный монолит — худшее, что создало человечество после смузи с авокадо. Данные в двух местах, связанные через нестабильную сеть. А как синхронизировать? А консистентность? Вы утонете в скриптах миграции, очередях и бесконечных разборках, почему данные разъехались. 80% времени и нервов уйдет сюда.

Так вот, мой вам совет, будущие могильщики проектов. Прежде чем заводить свою бензопилу с модным названием «Душитель», остановитесь. Выдохните.

И ответьте себе на три вопроса, только честно, глядя в зеркало:

😐 НАХРЕНА? Какую бизнес-проблему вы решаете? «Монолит - немодно, надо микросервисы» - это диагноз, а не ответ.

😐 ГДЕ РЕЗАТЬ? У вас есть четкое понимание границ модуля, который вы собрались отпиливать? Вы уверены, что он не связан с остальным монолитом тысячами невидимых нитей? Вы проводили аудит?

😐 ЧТО С ДАННЫМИ? Покажите мне ваш план миграции и синхронизации данных. Не на словах, а на бумаге, с диаграммами и проработанными кейсами откатов. Нет плана? Свободны.

Если ответа нет хотя бы на один вопрос - забудьте слово «душитель».
Иначе единственное, что он придушит - это ваш проект, бюджет и остатки здравого смысла.🚀

#этобаза

Токсичный (it) архитектор
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4👎1
👋На днях был на собеседовании. Полчаса - нормальный, железный разговор: CAP-теорема, стратегии миграции баз. А потом началось. Следующий час меня мариновали на тему «умения вдохновлять», «разрешения конфликтов» и «проактивного мышления». Я чуть не спросил, им архитектор нужен или тамада на корпоратив.

Вся индустрия будто слетела с катушек. Мы нанимаем не тех, кто может спроектировать надежную систему, а тех, кто никому не испортит настроение.

Это бред.

Бред, который убивает проекты. Медленно, но гарантированно.

Представьте, вам нужна сложная операция на сердце и у вас есть два хирурга.

Хирург А - душа-человек. Держит за руку, травит анекдоты, говорит, что все будет хорошо. Никогда не скажет, что вы сами виноваты, потому что жрете как не в себя. Не будет спорить с анестезиологом, чтобы не создавать «конфликт». Его все любят.

Хирург Б - угрюмый тип. Глянет в ваши анализы и буркнет: «Не бросите курить - через год вернетесь на этот стол. Если доживете». Будет орать на медсестру за не тот зажим и спорить до хрипоты с коллегами. Его побаиваются.

Кого вы выберете?👀 Если у вас есть инстинкт самосохранения, вы выберете того, у кого самый низкий процент смертности. И плевать вы хотели на его «софт-скиллы».💯

Так какого черта, когда речь заходит о здоровье вашего проекта, вы выбираете архитектора-психотерапевта? «Приятный» архитектор хоронит вас под горой технического долга, чтобы купить себе социальное одобрение. «Токсичный» - готов быть козлом отпущения, чтобы спасти проект.

Забудьте чушь из HR-буклетов. Вот настоящие «софт-скиллы» архитектора:

🚀Интеллектуальная честность. Способность публично сказать: «Я не знаю» или «Я облажался, вот план, как это исправить». А не лепить умное лицо, неся чушь.
🚀Техническое мужество. Умение быть щитом проекта, а не флюгером. Говорить «нет» бизнесу, команде, гендиру - кому угодно, если их хотелки ведут всех на дно.
🚀Способность к трансляции. Умение переводить с языка байтов на язык денег. Объяснить менеджеру, почему его «маленькая кнопочка» будет стоить полгода рефакторинга.

Всё остальное - мишура.

Мы так заигрались в «комфортную рабочую среду», что променяли инженерную культуру на культуру компромиссов. В итоге наши проекты тонут в болоте, зато все мило улыбаются на дейли.

Так что в следующий раз, когда будете нанимать архитектора, спросите себя: вам нужен тот, кто построит надежный мост, или тот, кто будет мило улыбаться, пока вы все вместе летите в пропасть?

Выбирайте. Только потом не жалуйтесь.

#заметкинаполях

Токсичный (it) архитектор
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32👎11
👋Смотрю на часы. 10:45. Наш 15-минутный «ежедневный синк» идет уже сорок пять минут. Сорок пять, Карл! Скрам-мастер, вчерашний выпускник курсов по «лидерству и мотивации», с видом Черчилля перед высадкой в Нормандии водит курсором по Jira.🫡 Тимлид пытается в пятый раз объяснить, почему его задача «в процессе» уже третий день. А я просто жду, когда этот сеанс коллективного самообмана закончится и можно будет по-настоящему работать.

И в этот момент меня накрывает. Окончательно и бесповоротно.

Agile не мертв. Вы его убили. А потом набили труп соломой, нарядили в костюм из стикеров и поставили в центре опенспейса как ритуальное чучело. И теперь вы водите вокруг него хороводы, бормоча заклинания из книжек Кокберна и Сазерленда.👀

Ваши дейли - это не синхронизация. Это групповая терапия для менеджеров с синдромом контроля. Способ убедиться, что рабы на галерах гребут. Никто не слушает, что говорят другие. Все ждут своей очереди, чтобы отбарабанить заученный текст и получить ментальную галочку «я отчитался». Это театр. Дешевый и предсказуемый.🤬

А story points? О, это моя любимая корпоративная астрология.🍄 Попытка натянуть сову на глобус, чтобы создать иллюзию предсказуемости там, где ее быть не может. Сидят взрослые, бородатые мужики и на полном серьезе спорят, два «попугая» стоит эта задача или три с половиной. Это же бред сивой кобылы. Вы просто боитесь признаться бизнесу в страшной правде: разработка - это исследование, а не конвейер. Точные оценки невозможны. Но нет, мы будем играть в покер планирования, рисовать графики сгорания и делать вид, что управляем хаосом. Это ложь. Сладкая, успокаивающая ложь для тех, кто не выносит неопределенности.

И роль архитектора в этом балагане? У тебя два пути, и оба ведут в ад.

Первый - стать цербером. 😠Ты стоишь на страже «правильной» архитектуры, и ни одна задача не проходит без твоего благословения. Команда, окрыленная «гибкостью», приносит тебе на ревью очередной архитектурный франкенштейн, слепленный из трех фреймворков и скотча. Ты заворачиваешь, объясняешь, рисуешь диаграммы. В итоге ты - бутылочное горлышко. Главный тормоз команды, который мешает «быстро поставлять ценность».

Второй путь - стать наблюдателем.😳 Ты машешь рукой, мол, «самоорганизующаяся команда», и позволяешь им творить. Они счастливы. Velocity растет. Менеджеры хлопают в ладоши. А ты молча смотришь, как варвары строят из твоего Рима уродливые фавелы. Как закладывается технический долг такого размера, что расплачиваться за него будут три поколения программистов. А через год, когда система встанет колом под нагрузкой, кто будет виноват? Правильно, архитектор. «Куда же ты смотрел?!»

Так что делать?

Давайте начистоту. Выбросьте к черту половину ваших ритуалов. Оставьте только то, что приносит реальную пользу. Прежде чем начать любую встречу, задайте один вопрос: «Какого черта мы здесь собрались и с каким результатом должны выйти?» Если ответа нет - расходитесь.

🚀Дейли - три вопроса: Что сделал? Что буду делать? Что мешает? Пять минут на команду. Все. Остальное - в личку или отдельные встречи.
🚀 Оценки - забудьте про story points. Оценивайте в днях, вилками (например, 2-5 дней), и честно говорите, что это предположение, а не клятва на крови.
🚀Архитектура - она не возникает из хаоса. Она должна опережать разработку хотя бы на шаг. Выделите время на проектирование. Да, это «не по Agile». Плевать. Либо так, либо через год будете жить в руинах.

Перестаньте поклоняться процессу. Процесс - инструмент, а не идол. Единственная цель всего этого - работающий продукт, который решает проблемы пользователя и приносит деньги. Все остальное - от лукавого.

А пока вы продолжаете играть в свой пазл из стикеров, настоящие инженеры где-то молча пишут код, который работает.

#заметкинаполях

Токсичный (it) архитектор
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥911
Всем привет!👋

"Очередной созвон. На экране расшаренная VS Code. Молодой и восторженный тимлид с горящими глазами показывает мне… код. Код, который генерирует диаграммы.

«Мы внедряем LikeC4! - вещает он. - Теперь у нас будут живые, актуальные схемы прямо в репозитории! Больше никакого Miro, который вечно устаревает!»

Я молча отхлебнул кофе. В его голосе было столько щенячьего восторга, будто он не инструмент для рисования коробочек нашел, а лекарство от рака."


Наверное, так началась бы моя статья про диаграммы как код, но это как-нибудь в другой раз. У меня есть что сказать по этому поводу. А сегодня просто хотел поделиться интересным инструментом, который помогает создавать диаграммы. 💯

LikeC4 - это набор инструментов и специализированный язык (DSL), который описывает архитектуру в виде единой модели, а затем компилирует ее в различные диаграммы.🔥

Да, отрисовка больших контейнерных диаграмм оставляет желать лучшего, но тут скорее вопрос к вам, почему у вас такой большой контекст. И вам стоит задуматься о дополнительном разделении контекста на более мелкие составляющие. Этот инструмент, вдохновленный моделью C4 и Structurizr, предлагает большую гибкость, позволяя настраивать и определять собственную нотацию и типы элементов.

#интересное

Токсичный (it) архитектор
Please open Telegram to view this post
VIEW IN TELEGRAM
211