Обновить
128K+

Качество кода *

Как Макконнелл завещал

60,14
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Zed 1.0: эпоха Electron-редакторов — всё

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели33K

Вчера вышел Zed 1.0. Пять лет работы, миллион с лишним строк на Rust, публичная превьюшка, которой ежедневно пользовались сотни тысяч разработчиков, и вот команда Zed Industries во главе с Натаном Собо запостила релиз 29 апреля 2026 года. Я лет пятнадцать живу в IDE от JetBrains. Пробовал VS Code. Пробовал Cursor. Гонял code-server на удалённой виртуалке. Ничего не приживалось. Zed прижился, и релиз 1.0 — нормальный повод объяснить, почему.

Если коротко: больше десяти лет любой «новый» редактор кода — это всё тот же продукт в новой обёртке. Обёртка зависит от того, что продают сегодня: AI, коллаборация, темы, новый вендор. А под обёрткой Electron. Тот же Chromium на каждое окно, тот же JavaScript на критическом пути исполнения, тот же RSS, к обеду уходящий в гигабайты. Sublime Text держал планку нативных редакторов все 2010-е, но это был закрытый продукт одного автора, без нормальной коллаборации и без AI истории. Zed стал первым за последние десять лет убедительным опенсорс-редактором с GPU-ускорением и AI на борту, который пересобрали с нуля и без всякого браузера под капотом. С релизом 1.0 эта ставка наконец сыграла.

Читать далее

Новости

Ревью вайб-кода с гнильцой, который притворяется оптимизированным С++ кодом

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели31K

Ценность квалифицированного программиста смещается в сторону умения проводить обзоры кода. Генерировать код становится проще, но всё так же важно проверять его с точки зрения качества декомпозиции, корректности реализации, эффективности, безопасности. Посмотрим на примере маленького проекта markus, созданного с помощью Claude Opus, почему важно понимать сгенерированный код и уметь видеть, что скрывает красивый текст программы.

Читать далее

Вайбкодь потише, пожалуйста! или Пацаны, это и раньше было легко

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели39K

Итак, что мы имеем в моменте

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

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

Читать далее

Кажется, во мне умирает программист

Время на прочтение3 мин
Охват и читатели29K

AI должен был сделать мою работу легче. Он сделал. Только вместе с этим куда-то пропало ощущение, что я вообще что-то создаю

Читать далее

Процессор в вашем компьютере угадывает будущее. И ошибается в 5% случаев

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели25K

В прошлую пятницу я объяснял джуну, почему его код на отсортированном массиве работает в шесть раз быстрее, чем на неотсортированном. Тот же массив, тот же алгоритм, и те же данные. Просто в другом порядке. Джун смотрел на меня как на сумасшедшего и, честно говоря, я его понимаю.

Потому что ответ звучит безумно: процессор внутри вашего ноутбука постоянно пытается предсказать будущее. Буквально. Он гадает, какая ветка if выполнится ещё до того, как условие будет вычислено. И на отсортированных данных ему угадывать проще.

Ну, давайте разбираться.

Читать далее

Тест для «сеньора»: в каком типе данных хранить номер паспорта?

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели30K

Простой вопрос, который разделяет инженеров и «операторов фреймворков»

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

Читать далее

Сложные вычисления — в минимальном объёме памяти

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели12K

У вычислительной программы есть два ресурса: время (циклы CPU) и пространство (оперативная память). Но как они заменяют друг от друга? Правда ли задачу, которая решается в полиномиальном пространстве PSPACE, можно решить за полиномиальное время P?

Как выяснилось, «конвертация сложности» между временем и пространством работает гораздо лучше, чем предполагалось ранее. Новые открытия математиков доказывают, что память можно использовать потрясающе эффективно.

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

Читать далее

Поколение JSON: цена удобных абстракций и упадок культуры ресурсов

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели21K

В 1988 году бортовой компьютер с памятью 128 КБ посадил космический корабль в шторм. Сегодня ваш смартфон с многоядерным процессором заикается при скролле списка контактов. Мы привыкли думать, что данные невесомы, а JSON – это «просто текст». В этой статье мы препарируем один обычный fetch-запрос и посчитаем его реальную цену: в байтах, миллисекундах и скрытых архитектурных издержках. Разберемся, почему мы стали «поколением JSON» и как вернуть себе инженерную осознанность в эпоху избыточности.

Читать далее

Законъ о запрете иностранных словъ… в разработке

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели28K

Разговор будет серьёзный. С 1 марта 2026 вся публичная информация для потребителя должна быть на русском — N 168-ФЗ. Пока что разработку это не касается, но стоит быть готовыми. Предлагаю договориться о словаре разработчиков Российской Федерации.

Читать далее

Меня уволили из-за ИИ, но я всё равно считаю себя инженером будущего

Время на прочтение3 мин
Охват и читатели101K

Последние месяцы я полностью пересобрал свой подход к разработке. Раньше я писал код сам. Теперь я стратегически управляю нейросетями.

Раньше я тратил время на архитектуру, чтение документации и разбор чужого кода. Сейчас я трачу время на выбор правильной модели и обсуждение в твиттере, какая из них реально game changer.

Я купил все самые дорогие подписки на AI-инструменты для разработки на 500 долларов. Вот лохи те, кто до сих пор этого не сделал. Я-то подписан на всех владельцев AI-инструментов и читаю их посты. Если кто-то пишет, что их инструмент заменяет мидла, я вижу это первым. Нужно мыслить на шаг впереди рынка.

Читать далее

Антипаттерны на питоне, которые меня победили

Уровень сложностиСредний
Время на прочтение38 мин
Охват и читатели34K

У нас в компании был один проект, с которым я не справился.

Дело было так: мне сообщили, что знакомый плюсовик написал какой-то скелет проекта на питоне, а теперь мне надо его допилить, подставив в нужные места реализации. Почему тогда делал он, а не я, а сейчас должен делать я, а не он? Да чёрт его знает. Но я подумал, что смогу — унаследуюсь и переопределю методы где нужно, подставлю зависимости во всякие DI, ну что там может быть плохого?

Оказалось, что плохо вообще всё.

Проект был раздут и переусложнён настолько, что буквально не умещался у меня в голове. Я уже начинаю подозревать, что, похоже, я LLM, и у меня контекст в районе 4096 токенов, потому что чем дольше я читаю код, тем меньше помню, что там было в начале. Изучая проект, я прыгал по стеку вызовов, пытаясь понять, что откуда вызывается и в какой последовательности, и просто в какой-то момент терялся. Проект меня победил, и его передали кому-то другому.

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

Короче, вот она — анти-статья, собранная из того проекта. А где мне не хватало примеров, я брал код из Django, потому что он вообще полностью собран на антипаттернах.

Получилось много букв, как всегда

Что такое «Быть хорошим программистом»?

Время на прочтение5 мин
Охват и читатели16K

Хороший ли я программист? Если коротко — я не знаю, что это значит.

Вот я программирую уже 52 года, с 1973 года, спасибо урокам в государственной средней школе — тогда это было редкостью и не все школы давали подобную возможность. Я работал в 15 разных компаниях в самых разных отраслях. Болше скажу, я основал две небольшие софтверные компании — одну в 1985 году и вторую в 1987-м, и руководил ими до 1994 года. А потом я вышел на пенсию в 2021-м году.

Так что же, я хороший программист потому, что я в целом 52 года в отрасли и всё это время программирую?

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

Долговечность — это преимущество лишь в том смысле, что ты всё это время сумел оставаться ценным и востребованным, но это не обязательно значит, что ты хорош.

Читать далее

О некоторых программах для Linux с точки зрения старого виндузятника

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели26K

Пятничное, навеяно статьёй «Почему 2026-й станет годом десктопного Linux + интересные дистрибутивы внутри»

Вы знаете, мне некоторые программы изначально написанные для  Linux иногда напоминают... Как бы это объяснить? Попробую на примере. И попробую с юмором.

Итак – рекламный буклет!

Ближайшие события

21 урок, который я усвоил за 14 лет работы в Google

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели84K

В Google я устроился где-то 14 лет назад и тогда думал, что моей работой будет написание хорошего кода. Отчасти так и оказалось. Но чем дольше я там трудился, тем больше понимал, что преуспевающие разработчики — это не обязательно лучшие программисты. Обычно это те люди, которые научились лавировать среди всего, что окружает код — среди людей, внутренней политики и условий неопределённости.

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

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

Читать далее

Мы пробили новое дно: change request-ы и баг-репорты, которые никто не понимает

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели20K

Мы, кажется, пробили новое дно.
И что особенно удивительно, Карл! — аккуратно, без паники, с хорошей формулировкой и абзацами.

Я сначала не понял, что стало происходить. Было ощущение странного дежавю: читаю change request или баг‑репорт, киваю, вроде всё логично... но что‑то не так, как будто где это уже читал. Слова правильные. Причинно‑следственные связи на месте. Термины употреблены верно. Пытаюсь понять в чём проблема — ноль. Как будто читаешь инструкцию к микроволновке, а не описание реальной проблемы. Пытаюсь прочитать ещё раз и ещё раз — с трудом продираюсь через текст с каким‑то смутным понимаем того, что написано.

И тут до меня доходит - как обухом по голове.
Мои дорогие гении из техподдержки и продакт менеджер нашли «идеальный» способ сэкономить на обсуждении технической стороны проблемы со мной. И действительно, зачем? Клиент что‑то спросил. Они прогнали это через ИИ. И ИИ вник. Глубоко. Старательно. Затем сгенерировал текст, старательно объясняя мне что нужно добавить, починить и даже каким образом это сделать (не имея даже понятия о нашей кодовой базе).

И вот тут я реально взбесился. И не тихо так, а очень даже громко.

Читать далее

IT-2025: Реквием по здравому смыслу

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели155K

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

Реальность, как это часто бывает, оказалась куда более прозаичной и, что греха таить, гротескной. Вместо киберпанка мы получили "кибер-сюр". Вместо торжества разума — торжество бюрократии, помноженное на галлюцинации нейросетей. Рынок IT к 2025 году превратился в странный гибрид восточного базара, где каждый пытается продать воздух, и неприступной бюрократической крепости, где вход и выход охраняются стражами, задающими вопросы о цвете вашей ауры.

Читать далее

Большой куш Сбера – громкие заголовки на чужом коде

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели26K

Привет, Хабр!

Поведаю историю, неизвестную почти никому, но от того не менее занимательную.

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

Читать далее

Не делайте рефакторинг как Дядя Боб (вторая редакция)

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели15K

Когда я в прошлом году услышал, что дядя Боб планирует выпустить вторую редакцию «Чистого кода», то был восхищён, а это для меня редкость. Я считал, что и первый выпуск был хорош, хотя сам читаю редко.

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

Или же меня обнадёжило данное Мартином обещание доработать руководства из предыдущей книги. Знаете, то удовольствие, когда читаешь заметки к долгожданным патчам для рабочего ПО.

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

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

Так что представьте, каково было моё разочарование, когда я потратил $60 на электронную версию этой книги, в которой Боб не просто не изменил своей позиции по большинству спорных практик, но и продолжил топить за них ещё круче!

Невероятно!

Но я забегаю вперёд…

Читать далее

Не делайте рефакторинг как дядя Боб. Я вас умоляю

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели58K

Несмотря на то, что книга «Чистый код» привнесла в наш лексикон прекрасный термин, она также снискала и дурную славу. Это руководство от 2008 года представляет собой сборник принципов и исследований, которые «дядя Боб» (Uncle Bob, то есть Роберт Мартин) выработал за годы программирования.

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

Так что можно подумать, что его примеры рефакторинга из книги как минимум окажутся лучше среднего кода, который вы встречаете в повседневной работе, или хотя бы будут согласовываться с другими распространёнными советами.

Можно подумать...

Читать далее

Главная проблема «чистых архитектур»

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели23K

Откройте любой пулл‑реквест в проекте с любой «чистой архитектурой» и вы скорее всего увидите не обсуждение бизнес‑логики, а срач. «Это нельзя класть в UseCase, это логика домена!», «Зачем тут еще один DTO, мы же просто поле прокидываем!», «Этот интерфейс не нужен, у нас никогда не будет другой реализации!». Полагаю, очень много людей с таким сталкиваются.

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

Читать далее
1
23 ...