Обновить
1024K+

Программирование *

Искусство создания компьютерных программ

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

Я распаковал исходник Claude Code v2.1.88. Половина того, что про него пишут — миф

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

Почти всё, что я считал про устройство Claude Code изнутри, оказалось упрощением. Я распаковал бандл версии 2.1.88 — около 1884 файлов в src/ — и пошёл сверять, что из общеизвестного правда, а что нет. Ниже восемь мест, где расхожее мнение разошлось с кодом, и под конец одна вещь про безопасность, которая мне самому не понравилась.

Читать далее

Основы информатики для всех

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

Всем привет. Я сделал бесплатную обучающую платформу shlyk.tech с упором на визуализацию идей и структур. Графы, системы счисления, логику, комбинаторику, индукцию здесь можно потрогать, покрутить, прошагать и понять, почему оно так работает.

Читать далее

Как игровой GUI пишут заново (Ч.2)

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

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

Теперь попробую разложить архитектуру UI по нескольким осям, именно осям, потому что один и тот же UI может быть diegetic по расположению, immediate mode по хранению, reactive по потоку данных, flexbox по лейауту и векторным по рендеру одновременно, а проблемы начинается там, где люди пытаются совместить несовместимое.

Внутри много тяжелых гифок и изображений

Один баг в проде, после которого я всерьёз воспринимаю неопределённое поведение

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

Много лет назад моя рутинная работа заключалась в поддержке большой базы кода на C++. Этот проект был настоящим кормильцем всей компании, и в нём предоставлялся публичный HTTP API, через который принимались онлайн-платежи. Речь шла об обработке платежей в размере миллиардов евро ежегодно.

Тогда меня ещё было не назвать опытным C++-разработчиком. Разумеется, я знал о неопределённом поведении, но как о чём-то абстрактном, о беде, которая приключается только с новичками. Как же я был неправ!  

В этой статье везде, где написано «структура», я имею в виду «структура или класс».

Читать далее

Голубая мечта околоайтишника — разбогатеть на ChatGPT-обертке

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

Вышла недавно статья на Хабре, которая осталась незамеченной.

Девушка, которая не шарит в программировании, навайбкодила телеграм-бота для практики английского. Бот буквально является оберткой над ChatGPT.

Что не так с этой историей...

Читать далее

Ошибки и подозрительные места в исходниках .NET 10

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

Чуть больше полугода назад состоялся релиз .NET 10. Остались ли дефекты в исходном коде проекта, спустя месяцы после релиза? Постараемся сегодня найти ответ на этот вопрос.

Читать далее

Проблема фантомной записи: почему ваша реализация идемпотентности незаметно теряет данные

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

В проде бывает так, что одна и та же операция часто повторяется: клиент не дождался ответа и ретраит, балансер порвал соединение, очередь переиграла сообщение. Вспоминаем про идемпотентность - это правило «повтор не должен создавать новый платёж/заказ».

Чтобы отличать повтор от новой операции, используют idempotency key (ключ идемпотентности). Это обычная уникальная строка-идентификатор, которую клиент или апстрим отправляет вместе с запросом (часто в заголовке Idempotency-Key). Сервис сохраняет этот ключ у себя и связывает с результатом операции.

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

В новом переводе от команды Spring АйО рассмотрим не самые очевидные ошибки и то, о чём стоит подумать, при реализации идемпотентного API.

Читать далее

Как создавать умных ИИ-агентов: работа с MCP

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

Привет, Хабр! Меня зовут Сергей Клюев, я техлид команды, которая занимается внедрением ИИ на платформе MWS Octapi.

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

По мере расширения возможностей ИИ-ассистента нам понадобилось множество интеграций. В MWS Octapi уже более 700 интеграций (OpenAPI, SOAP, AsyncAPI, GraphQL и другие). Мы решили переиспользовать их, внедрив на платформу протокол MCP. Добавление поддержки MCP позволило превратить привычные API в «руки» для ИИ и быстро интегрировать ИИ-агентов в ИТ-ландшафт.

Про возможности протокола MCP и особенности его внедрения в Enterprise среде — далее под катом. Эта статья — текстовая версия вебинара. Видеоверсия доступна по ссылке.

Читать далее

Как стать Senior-разработчиком: 4 шага на пути к успеху

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

Если вы следите за текущими тенденциями в мире найма/вакансий, то определенно заметили, что куда-то подевались вакансии Middle и Junior-разработчиков, и у этого есть несколько причин.

Первая: рынок просел, и общее количество вакансий в IT-индустрии сократилось. В результате Middle-позиции теперь можно закрывать Senior-разработчиками. Это уже случалось в нашей истории, но за любым спадом следует подъем.

Вторая — AI-агенты. Senior-разработчики получили "рычаг". Теперь задачи, которые ранее поручали Junior и Middle-разработчикам, можно поручить AI Agent. При этом для Senior мало что меняется, поскольку подробное review делать нужно в обоих случаях.

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

Однако сомневаюсь, что вас сильно волнуют проблемы рынка, разве что на кухне за чашкой кофе. А вот что делать конкретно сейчас и конкретно вам, чтобы стать Senior, разбираемся в статье...

Читать далее

Пуск SPI трансивера на STM32

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

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

SPI это цифровой, последовательный, относительно высокоскоростной, полнодуплексный, синхронный физический интерфейс передачи данных в пределах одной электронной платы PCB.

Этот интерфейс служит для обмена данными между микросхемами в пределах одной электронной платы.

Читать далее

Tilda и СБИС Presto: как мы синхронизируем остатки через стоп‑лист, а не каталог

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

Как мы избавили общепит от часа ручной работы каждое утро: разобрали реальный кейс синхронизации стоп-листа из СБИС Presto в каталог на Tilda через CommerceML. Поток на Python/FastAPI, дебаунс через SHA-256, eventual consistency без очередей и грабли, на которые наступили в проде.

Решение и грабли

Page Object Pattern в Selenium на Java: гайд по первому автотестовому проекту

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

UI‑тесты редко ломаются красиво: один редизайн формы — и локаторы приходится чинить по всему проекту.

В статье разберём, как собрать первый автотестовый проект на Java и Selenium с Page Object Pattern: куда класть страницы и компоненты, как писать базовый класс, почему лучше держаться за data-test и какие ошибки быстро превращают аккуратную архитектуру в набор хрупких обёрток.

Читать далее

Месяц пишу язык программирования Nova с Claude Code. Где ломаются автономные агенты

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

Месяц назад начал делать собственный язык программирования Nova с Claude Code. За это время агенты автономно закрыли около трёхсот инженерных планов, написали около 120 тысяч строк Rust (компилятор, рантайм, кодоген), почти две тысячи проходящих тестов и собственную стандартную библиотеку на Nova. Один человек физически такой объём не вытянет — но и автономия даётся не бесплатно.

Рассказываю про четыре категории сбоев, которые встречаются регулярно — и про дисциплину, которая их ловит. Конкретные кейсы из публичного репозитория, разбор причин, методология. Плюс честно: сколько это стоит, и где автоматизация всё ещё ломается.

Читать далее

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

100 вопросов с собесов по Rust: что реально спрашивают на junior, middle, senior позиции в 2026

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

Я срьрал 100+ вопросов с собеседований по Rust с краткими разборами: владение, типажи, конкурентность, async, unsafe, производительность и др. Отдельный продвинутый блок A1–A21 для staff-уровня. Цель - показать, где обычно спотыкаются даже опытные, и помочь подготовиться к следующему собеседованию. Надеюсь будет реально полезно!

Читать

Как перестать жечь токены впустую: переходим от вайбкодинга к агентной разработке с Claude Code

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

AI-инструменты уже давно перестали быть просто «умными чатами». Сегодня Claude Code, Codex и другие агенты постепенно превращаются в полноценную инженерную инфраструĸтуру: с памятью, workflow, sub-agentʼами, orchestration и reusable праĸтиĸами.

В этой статье команда разработки СВОЙ Тех собрала праĸтиĸи, ĸоторые реально помогают использовать Claude Code эффеĸтивно. Дисклеймер: будет много списков — не обессудьте и, надеемся, вам так же, как и автору, легче усваивать информацию.

Открыть туториал

Деградируешь со своей нейронной сетью?

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

Ну что, Великий Вайбкодер, сколько тысяч строк кода ты сегодня уже успел сгенерировать? Небось сдал 5 проектов за вчерашний вечер на трёх параллельных работах?

А думал ли ты, кем станешь ты и такие как ты через 10 лет?

Может, всё-таки «Идиократия» ближе, чем кажется? Давайте погадаем немного на лавандовом рафе и прикинем, что же всё-таки произойдёт уже в ближайшем будущем.

Читать далее

Opus 4.8 вышел и сразу проиграл GPT-5.5, $500M без лимитов и 21-летний баг MySQL

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

28 мая вышел Opus 4.8 — через 41 день после 4.7 и с Dynamic Workflows, на которых переписали Bun. Через два дня появился DeepSWE и поставил под сомнение весь лидерборд, включая только что вышедший Opus. Enterprise-клиент без лимитов сжёг $500M за месяц. DeepSeek набирает команду для создания своего агента. А в MySQL закрыли 21-летний баг.

Читать далее

Пять ошибок в работе с ожиданиями в UI‑автотестах, из‑за которых тесты падают через раз

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

Ваши UI‑автотесты снова «иногда падают», а команда уже привычно лечит это ретраями? Проблема может быть не в CI и не во фронтенде, а в том, что тест ждёт не то состояние интерфейса.

Разбираем пять ошибок в ожиданиях Selenium, из‑за которых автотесты превращаются в лотерею.

Читать далее

Книга: «100 ошибок C++ и как их избежать»

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

Привет, Хаброжители! Более десяти миллиардов строк кода C++ в настоящее время используется в реальных проектах, и 98 % разработчиков ежедневно находят и исправляют в них ошибки. Даже в критически важных приложениях встречаются баги, проблемы с производительностью и читаемостью. Эта книга поможет выявить их в коде, который вы поддерживаете, и избежать — в коде, который вы пишете.

Читать далее

Личный CI/CD за один вечер: настраиваем GitLab Runner на собственном VPS

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

Если у вас пет-проект или небольшой стартап на GitLab.com, рано или поздно вы упрётесь в потолок бесплатного тарифа: 400 минут пайплайнов в месяц и общая очередь раннеров. Покупка дополнительных минут стоит денег и не решает вторую проблему: общие раннеры GitLab обслуживают миллионы проектов, и в часы пик ваша джоба может провисеть в очереди 10-20 минут.

Решение — свой GitLab Runner на VPS: без чужих джоб, под полным контролем. Такой раннер не имеет лимитов по времени, кроме ресурсов самого сервера. В статье за вечер собираем такой раннер с нуля на Ubuntu 24.04 LTS, поднимаем пайплайн на три стадии (тесты, сборка Docker-образов, пуш в GitLab Container Registry), добавляем кэширование, безопасность и автообновление.

Читать далее