Миф о коде как ремесле: Почему прагматизм превосходит совершенство

Миф о коде как ремесле: Почему прагматизм превосходит совершенство

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

23 октября 2025 06:00 · 6 минут · 1154 слова · Maxim Zhirnov
Ошибка 'Всегда использовать базу данных NoSQL': Когда SQL выигрывает

Ошибка 'Всегда использовать базу данных NoSQL': Когда SQL выигрывает

Посмотрите, я понимаю. NoSQL в тренде. Это круто. Он горизонтально масштабируется как настоящий профи, и где-то около 2015 года мы все решили, что реляционные базы данных устарели, как раскладушки. Но вот неудобная правда, о которой никто не хочет говорить на технических конференциях: для большинства приложений вам, вероятно, не нужен NoSQL, и настаивать на его использовании — это всё равно что принести огнемёт на церемонию зажигания свечей. Я видел слишком много команд, которые загоняли себя в тупик, выбирая MongoDB или Cassandra для проектов, которые были бы вполне довольны старой доброй PostgreSQL....

21 октября 2025 06:01 · 5 минут · 967 слов · Maxim Zhirnov
Миф о безопасности Rust: Утечки памяти в предположительно 'безопасном' коде

Миф о безопасности Rust: Утечки памяти в предположительно 'безопасном' коде

Начну с признания, которое может вызвать недовольство в сообществе Rust: Rust не предотвращает утечки памяти. Вот, я это сказал. И прежде чем возьмутся за вилы, позвольте уточнить: это не баг, это особенность. Вернее, это продуманное дизайнерское решение, которое раскрывает нечто увлекательное о том, что на самом деле означает «безопасность памяти». Видите ли, когда мы, евангелисты, говорим, что Rust «безопасен в плане памяти», мы рисуем довольно широкими мазками. Нам нравится противопоставлять его C и C++, где висячий указатель может вызвать демонов через ваше нос (неопределённое поведение, для непосвящённых)....

15 октября 2025 06:01 · 5 минут · 962 слова · Maxim Zhirnov
Почему Ваш процесс собеседования по программированию нарушен (И Вы это знаете)

Почему Ваш процесс собеседования по программированию нарушен (И Вы это знаете)

Расскажу о том, как в последний раз реализовывал бинарное дерево поиска с нуля на работе. Никогда. А за сколько времени до этого? Тоже никогда. Приходилось ли мне обращать связанный список в производственной среде? Как вы уже догадались — никогда, и если бы такое случилось, меня бы, наверное, уволили за то, что я не использовал стандартную библиотеку. И вот мы в 2025 году, и по-прежнему просим кандидатов выполнять алгоритмические упражнения, которые имеют примерно такое же отношение к их повседневной работе, как средневековые рыцарские турниры к современному транспорту....

12 октября 2025 06:01 · 6 минут · 1103 слова · Maxim Zhirnov
Аргументы против постоянного использования гибких пользовательских историй

Аргументы против постоянного использования гибких пользовательских историй

Посмотрите, я собираюсь сказать кое-что, что может привести к тому, что меня не пригласят на следующую конференцию по Agile: истории пользователей не всегда являются решением. Вот, я это сказал. Прежде чем вы закроете эту вкладку и напишете гневный комментарий о том, что я «не понимаю Agile», выслушайте меня. Я годами наблюдал, как команды религиозно превращают каждое требование в священный формат «Как… Я хочу… Чтобы…», даже когда это было абсолютно неуместно....

8 октября 2025 06:00 · 2 минуты · 1 слово · Maxim Zhirnov