Обновить
1023

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

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

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

Observability-as-Code в Spring Boot: Контракты и тесты для метрик, логов и трейсов

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

Observability-as-Code - это подход, при котором базовые элементы наблюдаемости (метрики, логи, трассировки) описываются и проверяются так же строго, как и код самого приложения. Эта информация хранится в VCS и к ней выдвигаются такие же требования, как “остальному коду”. Инженеры явно описывают "контракт" наблюдаемости (какие метрики и логи должна выдавать система, с какими свойствами), снабжают этот контракт автоматическими тестами и включают проверки в процесс CI/CD.

В данной публикации мы подробно разберем, почему такой подход эффективен, и как его реализовать в Spring Boot с использованием Micrometer, OpenTelemetry и инструментов вроде ArchUnit.

Читать далее

Новости

Как Валера учился вайбкодить

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

Валера — обычный разработчик. Немного любопытный, немного уставший, но явно не из тех, кто боится экспериментов. В какой-то момент он услышал о вайбкодинге и подумал: «А что, если и правда можно запускать интерфейсы, API и базы без единой строки кода?» Скачал Cursor, начал писать промпты — и тут началось…

Начал писать промпты. Первый — ошибка. Второй — тоже ошибка. Третий — казалось бы, заработал, но тут Cursor попросил: «А теперь исправь всё вручную». И в этот момент Валера понял: что-то пошло не так.

Когда Валера уже собрался удалить всё к чёрту и переехать в тайгу, ему явился древний Курсор, Луция Папирий Курсор. Он пообещал научить его античной мудрости вайбкодинга. Так начался Новый путь...

Узнать про принципы вайбкодеров

Как подружить С++ и YAML: сохранение конфигов с помощью yaml-cpp

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

В этой статье речь пойдет о добавлении в С++ приложение функционала сохранения данных в формате YAML с использованием библиотеки yaml-cpp. Мы подробно рассмотрим какие возможности для этого предоставляет библиотека и на какие подводные камни можно наткнуться в процессе ее использования.

Особое внимание будет уделено вопросам форматирования(и представления) выходного YAML-текста, поскольку это влияет как на восприятие конечного YAML-документа человеком, так и на совместимость с другими программами, парсеры которых могут хуже поддерживать спецификации YAML.

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

Читать далее

Обучение как алгоритм: как эффективно учить код по 2 часа в день и не выгореть через месяц

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

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

Читать далее

EVA: Методология. Как оценивать качество тестов, а не их количество (Часть 2)

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

Часть 2 из 3. [Первая часть - постановка проблемы]

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

Читать далее

NuGet пакеты, которые ты не ожидал

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

Меня зовут Степан, я C# профессионал уже более 7 лет на рынке и рассказываю об этом в Telegram каналe StepOne. В этой статье я покажу вам личную подборку 9ти underground NuGet пакетов. Вы наверняка не встречали их на работе, потому что они либо решают конкретную специальную задачу, либо решают известные задачи нестандартным подходом, либо ещё недостаточно известны на рынке РФ. Мне же удалось затащить их на прод и пощупать в бою!

dotnet nuget add package "StepOne"

Как интегрировать Codex в IDE JetBrains

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

Как настроить AI Assistant в любой IDE от Jetbrains для работы с Codex от OpenAI (и сэкономить кредиты в AI Assistant если у вас уже есть оплаченная подписка ChatGPT Plus)

Читать далее

Важность хороших Errors и Warnings на Product уровне

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

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

Есть и дополнительные разделения: вы общаетесь с членами своей команды или с разработчиками из других команд или компаний? Это особенно важно при создании API или сервисов, где апстрим-разработчики будут перехватывать и обрабатывать ваши ошибки.

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

Читать далее

JVM ещё жива, но уже бесполезна: как Netflix научился убивать её по GC

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

Вместо того чтобы ждать, пока Java-приложение окончательно "зависнет" из-за GC, инженеры Netflix сделали jvmquake — инструмент, который сам определяет, что JVM уже не спасти, вызывает дамп памяти и аккуратно завершает процесс. Меньше тревог, больше аптайма. 

Подробности - в новом переводе от команды Spring АйО

Читать далее

Как реализовать 5 уровней оптимизации и не сойти с ума

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

В этой статье я подробно опишу 5 стадий принятия неизбежного  уровней оптимизации. В качестве примера рассмотрим, как я пытался оптимизировать функцию для инструмента командной строки, который я сам и написал  I (monorepo-hash).

Примечание

Я не настаиваю на том, что изложенное здесь — 5 священных заповедей инженерии производительноcти, а также не утверждаю, что приведённые здесь приёмы точно соответствуют каким-либо «карьерным уровням». Их можно сравнить просто с вешками на пути.

Это всего лишь тот путь, который проделал я сам. Есть в нём доля эго, пару раз я свернул не туда, бывали и случаи «я знаю, как тут срезать дорогу», за которыми сразу следовало раскаяние.

Также отмечу, что значительную часть этого CLI я написал при подспорье ИИ-моделей. Считайте, что это лёгкий способ подмечать ошибки и находить, что можно оптимизировать.

Кликбейтный заголовок? Что ж, даже, если так — вы же открыли статью, значит, он сработал :)

Читать далее

Model Studio CS Технологические схемы. Вывод условного диаметра в инлайн объект типа ответвление

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

Перед тем как приступим к техническому аспекту данной темы… Прежде всего нужно понимать основы самого продукта. Model Studio - продукт достаточно открытый, имеет много степеней свободы и позволяет пользователю, до мельчайших подробностей подготовить основу для формирования схем. Конечно, имеются и свои границы. Элементарная часть условно-графических обозначений (УГО) схемы храниться в БД библиотеке компонентов. И от ее содержимого, от того насколько она подготовлена зависит результат – готовая технологическая схема, выходные документы-отчеты, задания в смежные отделы проектирования.

Читать далее

Атомарные операции против мьютексов в Go: когда скорость становится проблемой

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

Команда Go for Devs подготовила перевод статьи о том, действительно ли атомарные операции всегда быстрее и лучше мьютексов в конкурентном коде. Автор разбирает реальные сценарии, показывает бенчмарки и объясняет, почему рост производительности часто оборачивается ростом сложности и рисков для корректности.

Читать далее

KodaCode для JetBrains IDE [Beta]: AI-помощник разработчика – бесплатно, без VPN, с поддержкой русского языка

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

Плагин KodaCode для IDE от JetBrains — это, пожалуй, самый ожидаемый из наших инструментов, о котором нас спрашивали с первого дня релиза. Мы не спешили: запускали закрытую тестовую группу, собирали обратную связь, дорабатывали UX и теперь готовы открыть доступ всем желающим.

Начиная с сегодняшнего дня KodaCode доступна в любой IDE от JetBrains, а также работает в GigaIDE и OpenIDE. Никаких ограничений по регионам — устанавливаете плагин и начинаете работать в привычной среде разработки.

Читать далее

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

Конец эры «одноядерного» разума: Почему будущее ИИ — это гонка архитектур, а не параметров

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

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

Мы уперлись в «стену» монолитности. Идея о том, что чем больше параметров, тем умнее модель, заходит в тупик. Исследования OpenAI, Anthropic и многочисленные препринты показывают, что при увеличении длины рассуждений точность падает катастрофически. Условные сто процентов в начале цепочки превращаются в пятьдесят или шестьдесят к её середине. Такой результат указывает не на дефект мощности, а на фундаментальный предел «одноядерного» подхода. Мы пытаемся загрузить всю сложность мира в один «черный ящик», который перегревается от обилия контекста.

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

Читать далее

Как вжарить на С++ 23 или захватываем больницу и переписываем рантайм под Windows 95 и точка

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

Приветствую, Хабравчане!

Предлагаю вам окунуться в чарующий мир С++ 23 на Windows 95. Напишем минимальную стандартную библиотеку. Будем использовать современные фичи в коде.

Расскажу как это все работает и для чего это нужно. Старичок SDL 1.2 ещё многое может. Будем использовать его для написания тонкого слоя для графики.

vector::_M_range_check: __n (which is 10)

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Вклад авторов