Представьте себе: вы приходите утром на работу, открываете ноутбук, наливаете кофе, и вместо того чтобы писать код, вы… разговариваете. Не с коллегой, не с заказчиком, а с искусственным интеллектом. Представили? вообще-то почти половина ваших коллег уже так и делают. Вы говорите: «Нам нужен модуль, который рассчитывает скидки для разных акций», — и через пару секунд получаете готовый код. Не идеальный, не гениальный, но рабочий. И вы не пишете его с нуля, а редактируете, проверяете, тестируете. Добро пожаловать в новую реальность.
Мы живём в эпоху, когда код всё чаще создают не люди, а машины. И это меняет всё. В том числе — наши представления о том, каким должен быть «хороший» код.
Чистый код: он для кого?
Долгое время «чистый код» был чем-то вроде этического кодекса программиста. Писать короткие функции, избегать дублирования, давать переменным говорящие имена, строить архитектуру, как храм — всё это было не просто хорошим тоном, а почти моральным долгом. Мы писали код для других разработчиков. Чтобы они могли его читать, понимать, поддерживать, развивать.
Но теперь в уравнении появился новый участник — ИИ, который не устает, не путается, не раздражается от длинных функций и не жалуется на плохие названия переменных. Он просто читает код, как есть. И если ему нужно — переписывает. Или предлагает вам, как сделать лучше. Т.е. чистый код и стройные иерархии абстракций нужны человеку, но не машине. В скомпилированном байт коде никаких абстракций нет вообще.
Что меняется с приходом LLM
1. Код — это теперь не письмо, а диалог
Раньше код был способом общения между людьми. Сейчас — это результат диалога между человеком и машиной. Вы описываете задачу, ИИ предлагает решение. Вы уточняете, он исправляет. Это не похоже на традиционное программирование. Это больше похоже на работу редактора: вы не пишете роман, вы редактируете черновик, который написал другой.
2. Повторения — не зло, а предсказуемость
Вас учили: «Не повторяйся». DRY — один из главных принципов чистого кода. Но ИИ не устаёт от повторений. Более того, повторяющийся код для него — это сигнал, шаблон, структура. Он не путается, если одно и то же действие описано в трёх местах. Он просто понимает, что это важно. А вот если вы спрятали всё в абстракции с названием processHandlerAdapterFactory, — тут уже могут начаться проблемы.
3. Архитектура — не ради красоты, а ради навигации
Раньше архитектура была как искусство: красиво, изящно, с паттернами и слоями. Сейчас она становится инфраструктурой для ИИ. Ему важно, чтобы модули были изолированы, зависимости — явными, а точки входа — понятными. Не ради эстетики, а ради того, чтобы можно было быстро найти нужный кусок и безопасно его изменить.
4. Тесты — это истина
ИИ может сгенерировать код, но он не знает, что вы имели в виду. Он не читает ваши мысли. Он не понимает, что «правильно», пока вы не покажете ему. И вот тут на сцену выходят тесты. Они становятся главным источником правды. Если есть тест — значит, поведение зафиксировано. Нет теста — значит, всё под вопросом.
5. Код — расходный материал
Мы привыкли относиться к коду как к произведению. Мы вкладываем в него душу, спорим о стиле, гордимся архитектурой. А теперь выясняется, что код можно просто удалить и сгенерировать заново. Быстрее, проще, дешевле. Главное — сохранить спецификацию, тесты и понимание задачи. Код — это не цель, а средство. И если его можно заменить за 30 секунд — зачем тратить часы на полировку?
Примеры из жизни
- Вы просите ИИ: «Сделай мне API для загрузки изображений». Он пишет 200 строк. Вы бы написали 50, но с кучей абстракций. Его код — прямолинеен, с повторами, но понятен и работает. Вы добавляете пару тестов — и всё, можно выкатывать. Завтра придет заказчик, скажет - у нас все поменялось. Надо то, это и еще вот тут бантики. Если вы написали как робот, было-бы больно. Но теперь нет. Он просто перепишет. За 10 секунд.
- У вас есть старый проект, где всё красиво, но сложно. ИИ не может понять, что делает AbstractDataTransformerFactory. Вы объясняете, он предлагает переписать всё проще. И вы вдруг понимаете: да, так действительно понятнее. Пусть и не так изящно.
- Вы пишете библиотеку. Раньше вы бы думали о дизайне API, о паттернах, о расширяемости. Сейчас вы думаете: «Как бы это описать словами, чтобы ИИ понял и мог потом поддерживать?»
Кто мы теперь, программисты?
От ремесленника к дирижёру
Когда-то программист был ремесленником. Мы сидели в редакторе кода, как в мастерской, вытачивали каждую строчку, как ювелир. Мы спорили о табах и пробелах, о том, как правильно называть переменные, и гордились тем, как все изящно и красиво. Потом в IDE завелись линтеры, о табах спорить перестали.
А теперь… теперь ты открываешь редактор, пишешь:
«Сделай мне REST API для управления задачами с авторизацией и логированием» —
и через 10 секунд у тебя готовый каркас. Не идеальный, но рабочий. Ты не пишешь — ты дирижируешь. Ты не кодер, ты оркестровщик логики. Ты не ковыряешься в байтах — ты разговариваешь с машиной.
И это не фантастика. Это уже происходит. Каждый день.
Как меняется роль программиста
1. Мы больше не пишем — мы объясняем
Раньше ты сидел и думал: «Как бы это реализовать?»
Теперь ты думаешь: «Как бы это объяснить ИИ, чтобы он понял и сделал правильно?»
Это требует других навыков. Не знания синтаксиса, а ясности мысли. Умения формулировать. Видеть суть. Это почти как писать техническое задание… только самому себе.
2. Мы не боимся переписать
Раньше ты мог неделями вылизывать архитектуру. А потом — бац! — поменялись требования. И ты в панике: «Как же всё переделывать?!»
Теперь — спокойно. Удалил. Сказал ИИ: «Сделай по-другому». Он сделал. Ты поправил. Всё.
Код стал расходным материалом. Как черновик. Как пластилин. Главное — не бояться мять и лепить заново.
3. Мы учимся доверять машине
Это, пожалуй, самое сложное. Отпустить контроль. Признать, что ИИ может предложить решение лучше твоего. Или хотя бы быстрее.
Это не значит, что ты стал ненужным. Наоборот — теперь ты нужен как никогда. Потому что ты — тот, кто задаёт направление. Кто проверяет. Кто принимает решения.
ИИ — это не конкурент. Это инструмент. Мощный, но слепой. И ты — его глаза.
А как же новички?
Вот тут все сильно меняется.
Раньше путь в программирование был долгим и тернистым. Сначала ты учил синтаксис. Потом — алгоритмы. Потом — фреймворки. Потом — архитектуру. И только через пару лет ты начинал чувствовать себя уверенно.
А теперь?
Ты можешь прийти с идеей. С вопросом. С желанием. И ИИ поможет тебе сделать первый шаг.
Он объяснит. Покажет. Подскажет.
Программирование стало доступным. Почти как разговор.
Это не значит, что учиться не нужно. Но теперь ты учишься не «в стол», а в процессе создания. Это вдохновляет. Это даёт силу.
Что еще поменялось?
Год, два назад - Синьор помидор с утра в понедельник открывал Жиру, чесал репу, нарезал задачи джунам, потом созвон - Вася, что ты имел ввиду - аа вот это, ну ок, а это? ааа, понял, теперь Петя - я тоже не очень понял, теперь Сараван - как так, ты по-русски не говоришь, ай-я-яй, ну ладно, хотя май инглишь из нот со гуд, давай с тобой приседать, ну ок, послезавтра все pr в студию. До послезавтра Петя не успел, негодяй, всю команду держит. Потом героически разгребаем конфликты веток, не сразу, но разгребли, оттестировались, фуух, спринт кончился, ура. 2 недели.
Теперь. Задачу Васи ИИ порешал за 10 секунд, тесты сразу написались и прошли, на Петину с переспрашиваниями час ушел, ок, на каком языке написаны ТЗ и спеки копилоту вообще фиолетово. Мержиться не надо, созвоны не надо, копилот один и кодер и тестер и если надо и девопс и МЛ инженер. Один день. И Петя и Вася больше не нужны. А еще внезапно надо намного меньше овнеров, техлидов, аналитиков, тестеров. И офис на 400 мест превращается если не в тыкву, то сильно урезается, со всемы вытекающими расходами на содержание. Текущие модели клауда пишут код не хуже джунов (это не реклама, это жизнь). В ютубчиге наводнились соло-антрепренеры. Люди в одно жало за неделю теперь пишут довольно сложные проекты и по-быстрому их продают пока еще гигантам индустрии.
Такие дела.
Что дальше?
Будет ли программист профессией будущего?
Да. Но не в том виде, как раньше. Мы станем погонщиками для ИИ моделей.
Мы будем меньше писать руками — и больше думать головой.
Меньше спорить о стиле — и больше говорить о целях.
Меньше бояться ошибок — и больше экспериментировать.
Финал: немного личного
Если ты читаешь это и чувствуешь тревогу — это нормально. Мы все её чувствуем. Мы живём в удивительное время. Мы — первые, кто учится программировать вместе с ИИ.
И это не страшно. Экспериментируй. Ошибайся. Пробуй.
Ты всё ещё главный, пока еще)
Это не значит, что надо забыть про чистый код. Но нужно понять, зачем он теперь нужен. Не ради красоты. Не ради коллеги, который будет читать ваш код. А ради того, чтобы ИИ мог с ним работать. Чтобы он мог его понять, протестировать, изменить и не сломать всё вокруг.
Так что, возможно, новый девиз программиста звучит так:
«Пиши код, который поймёт не только человек, но и машина. А лучше — сначала машина».