Обновить
1024K+

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

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

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

Имитация 3D-персонажей в 2D-движке

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

Я всегда был фанатом шутеров с видом сверху. Hotline Miami и по сей день остаётся моей любимой инди-игрой, а недавно я решил проиграть в её духовную наследницу — OTXO.

Он всегда был моим любимым жанром. Моя первая «серьёзная» игра, Alien Killer (написанная на Flash, поэтому сегодня в неё практически не поиграешь), была шутером с видом сверху, вдохновлённым старой игрой Net YarozePsychon.

В этой статье я расскажу, как разработал похожий на трёхмерный top down shooter без 3D-движка.

Читать далее

Flappy Bird: код веб-клона под микроскопом

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

В январе 2014 года мир сошёл с ума из-за игры, где нужно просто тыкать в экран. Flappy Bird приносила создателю $50 000 в день, пока он не удалил её из-за давления и бессонницы. Игру начали продавать на чёрном рынке вместе со смартфонами.

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

Читать далее

Как Monium приручил GC: разбираемся со сборщиками мусора в observability‑платформе

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

Всем привет, меня зовут Антон Рыбочкин, я старший разработчик бэкенда в команде Yandex Monium. Monium — это платформа для сбора, хранения и анализа телеметрии (метрик, логов и трейсов). Она позволяет дать оценку того, как себя чувствует сервис, находить причины сбоев, оперативно уведомлять об аномалиях.

Изначально эта платформа развивалась как внутренняя система для мониторинга сервисов в масштабах всего Яндекса. Отсюда высокие требования к надёжности сервиса — телеметрия должна быть доступна, даже когда другие сервисы лежат. И с точки зрения бэкенда в таких кейсах есть свои вызовы, один из них — сборка мусора, или сокращённо GC.

В этой статье я расскажу про наш опыт с разными сборщиками мусора: с какими проблемами Java GC мы столкнулись в разных сервисах, как их можно диагностировать и как решить.

Читать далее

Как настроить AI-агента под проект: контекст, rules, skills, MCP — конспект двух вебинаров

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

Цепочка короткая: сначала был просто автокомплит, потом появились чаты, в которые надо было руками копировать код туда-обратно (и человек выступал прокси между моделью и проектом — «много ручной работы, контекст рвётся»). Потом пришли агенты, которые живут прямо в проекте, читают и правят файлы, запускают команды. Сверху — агентские системы, которые координируют нескольких агентов и решают проблему перегрузки одного контекста.

Где живёт агент: три класса инструментов

Читать далее

Как я писал трей-утилиту для управления sing-box на Windows

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

Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box.

Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом.

Что было дальше

Создание чат-бота в портале Битрикс24 с помощью AI-агентов

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

5-я статья из цикла туториалов о кастомизации своего бизнес-портала в Битрикс24.

Сегодня возьмём наш шаблонный репозиторий для AI-разработки и сделаем на его основе чат-бота. Боту можно написать в мессенджере и научить его делать разные полезные вещи: давать информацию по сделкам, задачам и другим деталям бизнеса. 

Ещё бот может обращаться к другим программам по API и возвращать данные оттуда, например курсы акций и облигаций.

Что есть в других статьях на сегодня: 
1. Пишем первое приложение с AI-стартером, чтобы видеть прибыли и убытки
2. Добавляем в бизнес-портал Битрикс24 роботов для автоматизации
3. Что даёт воспроизводимая среда разработки и как развернуть контейнеры на VPS 
4. Анализ и модернизация коннектора баз данных с помощью AI-агентов
5. Создание чат-бота в портале Битрикс24 с помощью AI-агентов (вы здесь)

Читать далее

На периферии трёх миров: ещё один шаг к нейронной операционной системе

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

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

Этот проект об искусственном интеллекте, который начался не с установки библиотек, а с чертежа в тетради. Здесь машинное обучение - это не абстрактный т тоермин, а физическая подстройка " Виртуальных резисторов ".

На нахожусь на периферии трёх миров :

Читать далее

Что делает match после того, как вы нажали Compile

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

Вы пишете match десятки раз в день. Разбираете Option, матчите варианты enum, ловите диапазоны. Выглядит как switch из Си, только мощнее!

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

Пройдем весь путь от паттерна до ассемблера.

Читать далее

Как подготовиться к алгоритмическим соревнованиям: опыт финалиста ICPC

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

Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте.

Читать далее

Баги, которые не ловит Rust

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

В апреле 2026 года Canonical раскрыла 44 CVE в uutils — реализации GNU coreutils на Rust, которая поставляется по умолчанию с версии 25.10. Большинство из уязвимостей обнаружилось при внешнем аудите, проведённом перед выпуском 26.04 LTS.

Я изучил список и решил, что из него можно многому научиться.

Примечательно то, что все эти баги оказались в кодовой базе на Rust, написанной людьми, которые знают, что делают, и ни один из багов не был отловлен механизмом проверки заимствований, clippy lints и cargo audit.

Я пишу эту статью не для того, чтобы покритировать команду разработчиков uutils. Ровно наоборот: мне хочется поблагодарить её за публикацию результатов аудита с подробностями, благодаря которым все мы можем научиться чему-то новому.

Кроме того, на нашем подкасте Rust in Production недавно был вице-президент по разработке Ubuntu Джон Сигер, заслуживший похвалы слушателей за честный рассказ о состоянии Rust в Canonical.

Если вы пишете системный код на Rust, то эта статья будет самым сжатым анализом того, где сейчас заканчивается безопасность Rust.

Читать далее

SocratiCode: разбираю MCP-сервер, который даёт ИИ-агенту понимание кодовой базы

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

Если ваш ИИ-агент при каждом вопросе начинает grep-ом по всему проекту — у меня есть для вас одна штука. SocratiCode — это MCP-сервер, который индексирует кодовую базу через Qdrant и даёт агенту нормальный поиск вместо построчного чтения. Разобрал, как он устроен внутри, потестировал на нашем монорепе и сравнил с обычным режимом Claude Code

Читать далее

Почему CRM в Битрикс24 тормозит на 50К сделок и что с этим делать

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

Когда CRM в Битрикс24 начинает открывать список сделок по 10 секунд, обычно первым делом подозревают сервер, нагрузку или саму платформу. Но на практике узкое место часто лежит ближе к базе: фильтры по UF-полям без индексов, лишние JOIN, неявный LIKE в ORM, N+1-запросы и обработчики, которые внезапно превращают массовое обновление в нагрузочный тест.

В статье разбираем, как подойти к проблеме системно: включить slow query log, прочитать EXPLAIN, найти реальные причины тормозов и точечно ускорить CRM без миграции и бессмысленного наращивания железа.

Читать далее

10 уроков агентного кодинга. Что делать в эпоху дешёвого кода?

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

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

Я веду список советов по агентному кодингу: правила и ориентиры для тех, кто только начинает работать с Codex, Claude Code, Pi или любым другим агентом. Каждый пункт — обобщённая рекомендация, применимая к агентному программированию в целом. Хочется, чтобы уроки оставались актуальными по мере того, как улучшаются модели и инструменты.

Ниже — текущий список: 10 уроков агентного кодинга. Десять — красивое круглое число, хороший повод опубликовать.

Читать далее

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

Вы неправильно используете IDisposable: почему using не спасает, когда объект утекает в другой поток

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

using в C# выглядит как универсальная страховка от утечек ресурсов, пока объект живёт строго внутри одного метода. Но стоит вернуть его наружу, передать в фоновую задачу, положить в коллекцию или доверить DI‑контейнеру — и привычное правило начинает работать против вас.

В статье разберём типичные сценарии, где IDisposable превращается в источник нестабильных багов: закрытые раньше времени соединения, гонки с Task.Run, утечки обработчиков и тот самый HttpClient, который лучше не создавать на каждый запрос.

Читать далее

Ollama Cloud Client: когда модели слишком тяжелы для локального запуска

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

Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ Beeline Cloud. Сегодня я хочу поделиться историей создания одного интересного проекта — клиента для облачного сервиса Ollama.

Читать далее

Универсальный Task для C++20 coroutines: тип результата, политика запуска и владение coroutine state

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

Разбор минимального пользовательского Task для C++20 coroutines: выбор promise_type для void и value-результата, политики initial_suspend(), хранение coroutine_handle, final_suspend(), сохранение результата и исключения, а также границы текущей реализации.

Читать дале

Senior‑разработчики как исчезающий вид

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

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

Читать далее

За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift

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

Миграция большого iOS-проекта с Objective-C на Swift кажется понятной задачей ровно до тех пор, пока не начинаешь считать объём. В нашем случае это были 10 тысяч файлов, сотни тысяч строк кода и постоянная необходимость не останавливать развитие продукта. Ручной подход работал слишком медленно, поэтому мы начали автоматизировать миграцию с помощью LLM — и в итоге превратили её из бесконечного техдолга в воспроизводимый процесс.

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

Меня зовут Андрей Сикерин, я руковожу одной из групп iOS-разработки Яндекс Браузера. Вместе со мной статью писала Елизавета Мазулова, разработчица из нашей же команды. Она создала систему промптов для миграции, ревью, рефакторинга и автоматизации тестирования. Вместе мы расскажем, как устроен весь процесс изнутри: от выбора порядка миграции модулей до контроля качества через тесты.

Все промпты, конфигурационные шаблоны и вспомогательные скрипты выложили в открытый доступ — забирайте и адаптируйте под свой проект. Мы уже проверили, что подход работает не только у нас: взяли открытый репозиторий приложения Wikipedia для iOS и без существенных изменений промптов мигрировали один из его пакетов и поделились результатом с сообществом в виде открытого PR.

Читать далее

Мой первый ИИ: Пишем нейросеть на Python с нуля

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

Написал гайд для тех, кто хочет понять нейросети изнутри. Создаем свой ИИ для распознавания цифр на чистом Python всего в 50 строк кода. Вся математика на пальцах!

Читать далее

ИИ‑агенты в инженерной команде: гайд для тимлида, который не хочет получить бунт

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

Вы прочитали гайд по Cursor, посмотрели демку Claude Code, посчитали в голове экономику и решили: пора. Спускаете в команду указание — попробовать на следующей итерации. Через две недели смотрите на цифры и видите, что lead time не сократился, а вырос. Полетели странные инциденты в трекер. Двое лучших разработчиков ходят с лицами «я же говорил». На ретро звучит сдержанное «нам нужно больше времени, чтобы оценить эффект». На самом деле это значит «уберите эту штуку».

Знакомо? Это типичная картина внедрения ИИ в инженерной команде через администрирование. Проблема не в инструменте, не в моделях и не в скептиках. Проблема в том, что push‑модель (принуждение) внедрения системно не работает с разработчиками высоких грейдов — и чем сильнее ваша команда, тем хуже она работает.

В этом гайде — модель вовлечения без революций (далее pull‑модель). Что нужно построить, чтобы синьоры сами выбрали работать с агентом, а через три месяца стали евангелистами. Это не про мотивационные речи и не про премии за процент кода от ИИ. Это про инженерное решение: workflow, инфраструктура и фазы развёртывания, которые проходят фильтр опытного разработчика.

Читать как этого добиться