Обновить
1223.71

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

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

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

Как работать с Claude Code, Antigravity и Codex в 2026: база вайбкодинга

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

Сейчас все обсуждают Claude Code, Antigravity, Codex, спорят, коллекционируют “скиллы” для агентов. Но на практике у большинства всё ломается на первом шаге: люди пишут “сделай мне приложение” — и получают либо кашу, либо минус лимиты.

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

спецификация → план → маленькие итерации → тесты/ревью → фиксация изменений (git)

Ниже - тот самый “скелет”, который можно повторить почти для любого проекта.

Читать далее

Книга: «Go на практике. 2-е изд.»

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

Привет, Хаброжители!

И так, вы освоили азы Go, что дальше? Чтобы создавать надежные и готовые к эксплуатации Go-приложения, вам нужно научиться реализовывать конкурентность, налаживать сетевые взаимодействия, получать доступ к файлам, использовать такие нативные протоколы передачи данных, как gRPC и TCP/REST, а также разбираться во множестве практических нюансов. В этой книге приводятся готовые решения, которые можно незамедлительно применить в повседневной работе.

Читать далее

Ловушка туториалов: почему просмотр видео не сделает вас программистом

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

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

Читать далее

Синтаксический сахар или технический деготь: классы в JavaScript

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

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

Сегодня мы сделаем следующий шаг к современному JavaScript. Я покажу вам классы — более чистый и понятный способ делать ровно то же самое. Хоть классы и называют «синтаксическим сахаром», но это не отменяет популярность и удобство их использования. Поехали!

Читать далее

Coreness: от одного бота к сотням — self-hosted open-source платформа для AI-агентов

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

Каждый новый Telegram-бот — снова код, конфиги, деплой. Хочется self-hosted решение, где логика в конфигах, а не в коде, и можно развернуть хоть десяток ботов на одном сервере.

Coreness — open-source платформа на Python с YAML-сценариями, RAG через PostgreSQL и плагинной архитектурой. Внутри статьи — разбор event-driven архитектуры без воды, пошаговый пример (от git clone до работающего бота с оплатами) и взгляд на то, как расширять платформу через плагины под свои задачи.

Читать далее

«Лучшие» практики Rust, которые вас подведут

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

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

Знаете, что общего между документацией Rust и советами бабушки? И то, и другое звучит разумно, пока не начнёшь применять буквально ко всему. «Используй дженерики для переиспользования кода», «оборачивай общие данные в Arc<Mutex>», «создавай типизированные ошибки» — всё это написано в книгах, статьях и туториалах. И всё это может превратить ваш проект в нечто, от чего хочется плакать.

Читать далее

CPython — Сборка мусора изнутри, ч.3

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

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

Если вам интересно, давайте попробуем разобраться.

Читать далее

Что читать и смотреть в 2026. Эпичная подборка для разрабов, лидов, CTO и архитекторов

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

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

Читать далее

Plain text serialization

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

Я люблю простые костыли.

Когда требуется сериализовать некоторые поля в какой-то текстовый формат,
бывает удобно использовать промежуточное представление данных вида:

// Name/Value item
public class NVItem {
public string? Name;
public object? Value;
public IEnumerable? SubItems;

public NVItem(string? name, object? value) {
Name = name;
if (value==null) return;
SubItems = value as IEnumerable;
if (SubItems != null) return;

// Упс!
Value = value as string;
if (Value != null) return;

var num = value as IEnumerable;
if (num==null) {
Value = value;
} else {
SubItems = num.Cast<object>().Select(t => new NVItem(null, t));
}
}
}

Читать далее

Всего одна строка кода, из-за которой 24-ядерный сервер стал работать медленнее ноутбука

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

Допустим, вы написали код для решения задачи, которая хорошо распараллеливается. Каждый поток занимается своим участком работы и не зависит от других, поэтому потоки почти не должны координироваться друг с другом, за исключением самого последнего этапа, когда требуется объединить результаты. Естественно, в данном случае логично предположить, что чем больше ядер задействуется для такого кода, тем быстрее он выполнится. Вы ставите бенчмарки и сначала прогоняете этот код на ноутбуке. Действительно, оказывается, что он практически идеально масштабируется на всех четырёх доступных ядрах. Затем вы прогоняете его на большой и пафосной многопроцессорной машине, рассчитывая, что производительность будет ещё выше — но убеждаетесь, что на практике этот код работает даже медленнее, чем на ноутбуке, сколько бы ядер под него не выделить. Да, именно с таким случаем мне однажды довелось столкнуться.

Читать далее

Об ассемблере EuroAssembler, о котором вы, возможно, не слышали

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

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

Читать далее

Удалил сервер из мессенджера. Как общаться по P2P в 2026 году без метаданных и Google Services. Личный опыт и KMP

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

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

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

В чем реальная уязвимость сигнальных серверов

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

Даже если его называют «сигнальным» и говорят, что он нужен только для установления связи, это всё равно точка сбора данных. Если данные где-то собираются, за ними рано или поздно придут. Будь то хакерская атака или официальный запрос - метаданные (кто, когда и с кем общался) могут рассказать о вас больше, чем само содержание сообщений.

Ну и наконец в серверную могут просто прийти уполномоченные люди которые потребуют предоставить доступ ко всему.

Читать далее

Разработка конвертера формата кардиограммы ECG в формат EDF

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

В предыдущей статье я разобрался с устройством формата файлов ECG кардиограммы цифрового портативного кардиографа «Кардиан-ПМ». Это было сделано с целью получения доступа к информации о кардиограмме с помощью какого-либо другого ПО. Идея пришла использовать формат EDF – популярный формат временных рядов с открытой спецификацией. Как оказалось, этот формат используют на практике также для хранения кардиограмм. Одна из популярных программ, где можно открыть этот формат, – EDFbrowser. Именно с этой программой я и предпочёл работать.

Читать далее

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

Apidog: выходные с инструментом, который пытается заменить Postman

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

Apidog позиционирует себя как универсальная платформа для работы с API: проектирование, тестирование, mock-сервер, документация. Всё в одном флаконе. Звучит как маркетинг, но интерфейс выглядел приятно, в общем решил сам проверить на практике.

Пройдём полный цикл: от создания проекта до запуска тестов. Со скриншотами и личными впечатлениями.

Читать далее

Инженерная история: добавляем 3-ю СУБД в карточный процессинг

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

В конце сентября Филипп Дельгядо, один из архитекторов карточного процессинга Lekton Sigma, выступил на Yandex Neuro Scale. На конференции он рассказал, как они с командой добавляли поддержку YDB к своему решению.

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

Читать далее

Как я отказался от FFmpeg и написал FLAC энкодер за 500 строк на Go

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

Избавляемся от FFmpeg: конвертер аудио на чистом Go с FLAC-энкодером

Как убрать зависимость от FFmpeg в аудиоинструментах. Разбираю архитектуру, pure Go библиотеки и написание FLAC-энкодера с нуля. Результат: один бинарник для Linux, Windows, macOS.

Читать далее

Вайбкодинг: как сгенерировать код расширения для визуализации ссылок в закладках браузера с помощью ИИ

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

Знакомо чувство, когда читаешь документацию, а через десяток страниц уже не помнишь, что именно успел изучить? Или когда возвращаешься к старой статье и не можешь понять – ты уже видел эту ссылку или нет?

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

Но что если заставить браузер самому отмечать ссылки, которые у вас уже сохранены? Чтобы слева от каждой знакомой ссылки возникала метка с названием папки из закладок – как тихий намёк: “Ты это уже сохранял, не потеряй”.

Сегодня мы не просто поговорим об идее – мы сгенерируем через нейросеть готовое расширение для Chrome, которое сделает это за нас. А заодно разберёмся, как такие инструменты создавать, тестировать и даже улучшать – шаг за шагом, от первого промпта до работающего прототипа.

Пристегнитесь, будет интересно!

Читать далее

Не бойтесь std::set, его легко приручить

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

Не бойтесь std::set, его легко приручить.

Эта небольшая статья для тех, кто имеет некоторое представление об ассоциативных контейнерах стандартной библиотеки C++ (std::map, std::set и т.д.), но пока не использовал «множество» (std::set) в повседневной жизни. Этот контейнер позволяет наиболее изящно организовать коллекцию «самоидентифицируемых» объектов, не трубующих внешнего «ключа» для поиска. Но работа с std::set имеет свои особенности, о них и пойдет речь. Каких-то принциапиальных открытий статья не содержит, я просто решил собрать в одном месте некий минимально необходимый набор приемов для работы со множествами и, таким образом, несколько сэкономить время читателя, впервые решившего использовать «множества» в реальных проектах. Сразу оговорюсь, я сознательно снизил планку стандарта C++ до минимально необходимой, чтобы код, приведенный здесь, мог использоваться максимально широко (так что просьба не удивляться громоздким «устаревшим» конструкциям вроде enable_if).

... Отлично, std::set — это то, что нужно! Зачем мне std::map, если ключ уже находится внутри моего объекта! Такова была моя первая восторженная реакция после знакомства с «множеством» (std::set) стандартной библиотеки шаблонов C++. Это было давно... очень давно.

Читать далее

Архитектура сложных форм

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

Архитектура сложных форм. WEB-Frontend.
(VueJS, TypeScript, Compositions API, Pinia)

Архитектура форм, в которых:
- сложная бизнес логика
- множество полей
- валидация (frontend + backend)

Читать далее

Я написал компилятор на C++ при помощи LLVM

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

GitHub

Onyx — язык программирования, нацеленный на базовую безопасность памяти, приятный синтаксис и опыт использования. Onyx написан на C++ с компиляцией на базе LLVM. На момент написания статьи язык поддерживает:

Читать далее