Рубрика: Конспект

Почему кодогенерация с помощью ИИ не может радикально увеличить скорость разработки

Попросил ИИ сделать кратенькое резюме книг, исследований аналогичных «Факты и заблуждения профессионального программирования» Роберта Гласса
Топ-3 от Gemini 2.5
💡 Общие факты о коде в контексте профессиональной разработки
… основываясь на общеизвестных принципах и темах, которые часто освещаются в подобных книгах, можно выделить следующие ключевые факты и заблуждения о коде:
1. Затраты на поддержку 💸
Факт: Основная часть затрат в жизненном цикле программного обеспечения (ПО) приходится не на написание первоначального кода, а на его поддержку, изменение и исправление ошибок (часто 70-90% общих затрат).
Следствие: Читаемость, поддерживаемость и ясность кода важнее, чем его первоначальная скорость написания.
2. Плотность ошибок 🐞
Факт: Плотность ошибок в коде, как правило, не зависит сильно от используемого языка программирования или квалификации программиста (в среднем).
Факт: Чем сложнее и запутаннее код, тем выше вероятность ошибок.
3. Ценность чистого кода ✨
Факт: Программисты гораздо больше времени тратят на чтение кода, чем на его написание.
Следствие: Код должен быть написан таким образом, чтобы его мог легко понять другой человек (или вы сами через полгода).
(далее мое)
Главный факт игнорируемый даже не менеджментом, а часто самими программистами:
Программист НЕ писатель. Программист – читатель. Даже когда программист пишет строчку кода – в этот момент он прокручивает в голове кучу прочитанных строк (мысленно, по памяти перечитывает).
Львиную долю времени программист – читает, читает, читает, и еще и дома – читает, если хочет быть успешным. (сейчас – слушает и смотрит проф подксасты, стримы, воркшопы, …,)
Игнорируется этот факт по причине популярных но ложных аналогий:
Опенспейс программистов – не машбюро (до ксерокса) где машинисткам дают какой-то текст и задачу – напечатать его.
Программисты – не строители, складывающие из “кирпичей” здание. Не мостостроители. То есть – не инженеры. Инженерная часть в работе программиста есть, но крохотная. Программисты скорее – журналисты, пересказчики.
Из этих фактов следует, что радикальное увеличение скорости разработки произойдет тогда, когда программисты прекратят львиную долю времени тратить – на чтение.
То есть никакая кодогенерация, хоть мгновенная и бесплатная ничего существенного не может изменить в основной статье трат времени – чтении.

To the brain, reading computer code is not the same as reading language

Gemini:
… исследование, проведенное нейробиологами из Массачусетского технологического института (MIT), опубликованного в конце 2020 года…
❌ Отклоненные гипотезы
Гипотеза “Кодирование = Язык”: Не было обнаружено почти никакой активности в тех областях мозга, которые обычно активируются при обработке естественного языка (например, чтении или письме).
Гипотеза “Кодирование = Математика”: Хотя кодирование и математика имеют сходство в активации некоторых областей, паттерны активности мозга при кодировании отличались от тех, которые наблюдались при выполнении чисто математических задач.
✅ Ключевой вывод: Сеть Множественного Спроса
Вместо ожидаемой активации языковых или специализированных математических центров, при работе с кодом наблюдалась сильная активация Сети Множественного Спроса (Multiple Demand Network, MD).
Что это такое? Сеть Множественного Спроса — это обширная сеть, распределенная по лобным и теменным долям мозга. Она задействуется при выполнении комплексных когнитивных задач, требующих концентрации, планирования, рабочей памяти и логического рассуждения.
С чем это сравнимо? Эта же сеть активируется при решении различных логических задач, головоломок (например, кроссвордов или судоку) и сложных когнитивных задач, что и стало основой для сравнения работы мозга при кодировании с решением пазлов/головоломок, а не только с чистой математикой.
Исследователи пришли к выводу, что понимание компьютерного кода, по-видимому, является чем-то самобытным, хотя и задействует общие механизмы сложного логического решения проблем.

Хотите стать разработчиком? 10 признаков того, что вам не стоит идти в профессию ни при каких условиях

Отсутствие любознательности
Отсутствие автономности и находчивости
Отсутствие настойчивости в решении проблемы
Отсутствие радости при преодолении трудностей
Нетерпение в обучении
Ощущение скуки или усталости от мыслей
Неспособность к самостоятельному мышлению
Узкое, ригидное и хаотичное мышление
Желание получить «правильный» ответ, когда есть «хорошие» и «плохие» ответы
Неумение обращать внимание на детали

Читать дальше

Никого ничему нельзя научить

Обучение по принципу «смотри сюда и повторяй за мной» заканчивается со школьным выпускным.
Дальнейшее образование – в любой форме, будь то вуз, обучающий курс или менторство – подразумевает по большей части самостоятельное освоение материала.

Читать дальше

Чего «энтерпрайзу» в PostgreSQL не хватает

Вся статья

Легковесный менеджер соединений
он же Built-in connection pooler

64-bit XID
Если вы пишете в базу много данных, как мы, то достаточно скоро у вас запустится он – autovacuum (to prevent wraparound), чья единственная задача – пробежать по данным и “поправить” их так, чтобы уберечь счетчик транзакций от переполнения.

Микротаблицы

zheap

Append-only Storage

Отложенная индексация

Columnar Storage

In-memory Storage

TEMPORARY TABLE и реплики

SQL-defined Index

Мониторинг:
Производительность запросов
Снапшоты статистики таблиц

Исследование выявило плюсы и минусы перфекционизма

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

общий эффект перфекционизма для сотрудников и организаций оказывается отрицательным

Читать дальше

Почему разработчики НЕ бросают свою работу

1. Хорошие отношения с менеджером
2. Мои идеи и мой вклад имеют значение
3. У меня есть возможность работать из дома, когда мне это нужно
4. Дружелюбные коллеги
5. Работа интересная и я постоянно узнаю что-то новое
6. Работа, которую вы выполняете, ценится другими людьми
7. Отсутствие дресс-кода

Читать дальше

Тестируем маршрутизатор Symfony 4.1

Вся статья

Суть улучшений – роуты собираются в здоровенное регулярное выражение.

Таблица ниже показывает сколько времени потребовалось, чтобы найти соответствие заданным маршрутам 50.000 раз.

Колонка Diff показывает, насколько быстрее новый маршрутизатор Symfony, по сравнению с нашим нынешним (3.4).

Routes. 3.4 4.1 (7d29a4d) Diff
First static route 448 ms 382 ms -17%
Random static route 1621 ms 474 ms -242%
Last static route 1826 ms 544 ms -234%
First dynamic route 746 ms 527 ms -41%
Random dynamic route 1454 ms 531 ms -174%
Last dynamic route 2039 ms 524 ms -289%
Not Found 2112 ms 522 ms -304%

Как мы видим, все наши маршруты были найдены быстрее, чем раньше. Особенно заметен прирост скорости на случайном, последнем и когда маршрут не был найден.

87897hjkhkjhk

Вам не нужна микросервисная архитектура

Если в пару предложений, то

Сложность, непредсказуемость(эмерджентность) всей системы в целом, построенной на микросервисав приводит к росту затрат на формализацию отношений между командами.
То есть – простота каждого микросервиса в отдельности оплачивается ростом бюрократических, читай трансакционных издержек, когда мы собираем из них систему.
Или так – если в монолитном приложении все компоненты зачастую слишком родные, то в системе из микросервисов – слишком чужые.

Читать дальше
3016e3bd0ba4637422e07383309cc9c9

Внедрение без ТЗ: дорога в никуда

ТОП-6 фраз клиентов

И так всё понятно — зачем тратить время?
Здесь всё просто! Да я на пальцах объясню
Почему я должен платить за то, что войдёт в следующий релиз?
Я не умею его составлять
Да программисты ничего не понимают в продажах (бизнесе, складе, бухгалтерии и т.д.)!
Вы составляете ТЗ за деньги?!
Я подразумевал другое!

Читать дальше

Вредные советы по постановке задач и описанию требований

описаны 10 практичных и проверенных способов, как поставить задачу таким образом, чтобы жизнь разработчиков не казалось манной небесной, поставки срывались, бюджеты превышались, а качество трещало по швам.

Читать дальше
upload2wkfry51k2

Экономика XX и XXI столетий

В представлениях людей прочно сидит абсолютизм. То есть вера в существование чего-то единого, универсального, лучшего, – идеального. Хотя в 20ом веке передовая часть человечества в виде ученых, философов, психологов и прочих категорий мыслителей пришла к релятивизму, бОльшая часть людей так и живет в веке 19ом. А у нас, в Славянии еще дальше позднего средневековья.

Читать дальше