Обновить
1030.92

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

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

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

Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд

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

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

Читать далее

Поддержка LSP в Claude Code: возможности, настройка и текущие проблемы

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

Команда AI for Devs подготовила перевод статьи о поддержке LSP в Claude Code. Начиная с версии 2.0.74 агент получил доступ к семантике кода: переходы к определениям, поиск ссылок и иерархия вызовов. Это заметно ускоряет работу с большими кодовыми базами, но на практике функциональность пока сыровата и требует обходных решений. Разбираемся, как включить LSP, какие языки поддерживаются и с какими ограничениями придётся столкнуться.

Читать далее

Reinforcement Learning: Policy gradient methods

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

В предыдущих статьях Intro Reinforcement Learning и Reinforcement Learning: Model-free & Deep RL были рассмотрены подходы, в которых оптимальные действия находились косвенно через оценку полезности состояний или пар «состояние–действие». Такие методы принято называть value-based. Однако возникает вопрос: зачем строить сложные цепочки через value-функции, если можно напрямую обучать агента выбирать правильные действия? Такой policy-based подход интуитивно кажется проще и естественнее.

Здесь о том, как это делается (ノ◕ヮ◕)ノ

Читать далее

Матрицы и векторы: решение систем линейных алгебраических уравнений

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

В статье представлена реализация методов решения системы линейных алгебраических уравнений (СЛАУ) четырьмя методами: методом Гаусса, LU декомпозиции, компактной схемой исключения, QR декомпозиции. Для реализации был использован шаблон классов матрицы и вектора. Приводятся результаты решения СЛАУ, погрешность решения и время решения СЛАУ. Для сравнения результаты представлены в таблице.

Читать далее

Хуки свойств в PHP: геттеры и сеттеры не нужны

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

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

Читать далее

Как ускорить MongoDB в Java: profiling, explain(), индексация и антипаттерны

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

Команда Spring АйО подготовила материал о том, почему «быстрый запрос в MongoDB» — это не магия, а дисциплина: индексы, форма запроса, проекции, explain(), профайлер и наблюдаемость в Java/Spring Boot. Разбираем, как отличать IXSCAN от COLLSCAN, где чаще всего прячутся антипаттерны (skip-пагинация, тяжёлые $regex/$nin, findAll), и как выстроить измеримый цикл оптимизаций от Atlas/Compass до Micrometer.

Читать далее

Как писать нативные игры с OpenGL ES для игровой ретро-консоли Anbernic на C#

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

В этой статье я расскажу, как писать игры для консоли Anbernic средствами OpenGL ES на C# .NET8. Для примера напишу примитивный клон Майнкрафта.

Рендерить

Больше 1 млн запросов в секунду на Go: уроки продакшена

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

Команда Go for Devs подготовила перевод статьи о том, как построить Heavy-Read API на Go, способный обрабатывать более 1 млн запросов в секунду. Автор делится продакшен-архитектурой распределённого In-Memory Cache, показывает, как убрать БД и Redis из критического пути чтения, и объясняет, за счёт каких оптимизаций удаётся добиться субмиллисекундных задержек. Практика, цифры и реальные уроки из продакшена.

Читать далее

Хроники тестирования Data Quality

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

В современных data-процессах ключевую роль играет обеспечение качества данных. Рассмотрим четыре популярных подхода: DBT, SQL, Python (Pandas/SQLAlchemy) и Great Expectations, оценив их эффективность для различных сценариев проверки данных. 

Эта статья будет интересна и полезна Data-инженерам, аналитикам данных и специалистам Data Quality для выбора оптимального метода валидации данных в зависимости от стека технологий и сложности бизнес-логики. Материал ориентирован на начинающий уровень подготовки: тем, кто еще не сталкивался системно с инструментами управления качеством данных.

Привет, Хабр! Меня зовут Мария, я Data-инженер в SimbirSoft, и предлагаю для начала немного познакомиться с каждым из вышеперечисленных инструментов.

Читать далее ⚡

Spring Boot — жажда скорости. CDS и разгон на старте

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

Данная статья посвящена практическому изучению механизмов Class Data Sharing и AppCDS. В ней рассматривается, какие именно компоненты ускоряются CDS в HotSpot JVM, почему для Spring‑приложений зачастую оказывается недостаточно использования «CDS по умолчанию», а также каким образом можно собрать .jsa‑архив для приложения — как в локальной среде, так и при работе с Docker.

Отдельное внимание уделено теоретическим аспектам JIT‑компиляции и tiered compilation, а также практической части с измерениями времени запуска. В качестве дополнения рассматривается влияние использования Spring AOT, а также переход на Java 25 и применение Spring AOT Cache.

Читать далее

CSS Grid Lanes: будущее masonry-раскладок в вебе

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

Команда JavaScript for Devs подготовила перевод статьи о CSS Grid Lanes — новом подходе к masonry-раскладкам, который наконец-то становится нативной частью CSS. Grid Lanes используют всю мощь CSS Grid, работают без JavaScript, учитывают доступность и дают дизайнерам и разработчикам гибкость, о которой раньше можно было только мечтать. Разбираемся, как это работает и почему это важный шаг вперёд для веба.

Читать далее

Охота за недостающим типом данных: история о графах

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

(Ориентированный) граф — это набор узлов, соединённых стрелками (рёбрами). В узлах и рёбрах могут содержаться данные. Вот примеры графов:

Читать далее

Manim: как создавать математические анимации в стиле 3Blue1Brown с помощью Python

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

Команда Python for Devs подготовила перевод статьи о Manim — Python-инструменте для создания наглядных математических анимаций в стиле 3Blue1Brown. Разбираемся, как с помощью кода визуализировать уравнения, графики и абстрактные идеи так, чтобы они были понятны коллегам, менеджерам и студентам.

Читать далее

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

Всё, что нужно знать про аллокаторы в Rust (и как написать свой)

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

Мне в Rust всегда заходила одна штука. Он довольно быстро приучает не держать в голове мусор из серии «а я точно это освободил??». Большая часть рутины с памятью уезжает в автоматизм языка, и ты можно прям выдохнуть и думать про данные и инварианты, а не про то, где у тебя очередной free потерялся.

Но. Как только начинаешь копать чуть глубже, выясняется, что у Rust есть вполне конкретная рука, которая раздаёт память под все эти Box::new(42), Vec::push и растущие String. Имя этой руке простое: аллокатор. Он отвечает за то, что происходит в куче, и именно через него проходят почти все интересные истории про производительность и поведение памяти.

Читать далее

Почему код, сгенерированный ИИ, делает вас плохим программистом

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

Команда AI for Devs подготовила перевод резонансной статьи о том, почему использование кода, сгенерированного ИИ, может сделать разработчика слабее, а не продуктивнее. Автор жёстко критикует AI-ассистентов, рассуждает о деградации навыков, зависимости от инструментов и будущем профессии.

Читать далее

Книга «Основы Dart: Community edition» 2-е издание

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

Всем привет!

Завершил обновление предыдущей версии книги и выкладываю в открытый доступ второе издание «Основы Dart: Community edition». От полной версии ее отличает то, что в ней отсутствует глава по разработке тг-ботов на Dart и сквозной проект - игра «Крестики-нолики», которая улучшается практически после каждой главы и сопровождается заданиями на самостоятельную проработку по ее улучшению (своего рода «проект-песочница» из которого я вытряс всю душу и придумал задания, способные привести к знатному подгоранию пятой точки ^_^).

Читать далее

Как летает космическая ракета (на примере РН Союз)? Отвечаем методом структурного моделирования

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

В предыдущей части мы запустили двухступенчатую ракет в космос. Вторая ступень достигла космической скорости по формуле Циолковского и согласно законам Ньютона. Это, конечно, хорошо и правильно, но не совсем. Точнее не совсем правильно. В наших расчетах мы запускали ракету в белый свет, как в копеечку, вертикально вверх. В этом случае первая ступень улетает в открытый космос по инерции и летит, черт знает куда (а черт – потому что бога нет, Гагарин, когда летал, не видел). 

Реальные ракеты выходят на орбиту по-другому, не вертикально вверх. После старта ракета начинает отклонятся программой управления с тем, чтобы при выходе на орбиту, она имела направление движения параллельно земле (по-грамотному это называется угол тангажа). Давайте сделаем модель, которая будет это учитывать. Если использовать методы структурного моделирования, это будет сделать не сильно сложнее, чем модель артиллерийского снаряда, который мы перехватывали в задаче про волка и зайца.

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

А для того, чтобы наша ракета была не абстрактная, возьмём данные по ракете «СОЮЗ», к тому же на хабре уже есть решение этой задачи.  Больше спасибо автору, что уже собрал все необходимые данные.  https://habr.com/ru/articles/649961/

Тем, кто первый раз пытается создать структурную модель, и кому покажутся сложными физическая модель сферического коня в вакууме или численное интегрирование обыкновенных дифференциальных уравнений, я рекомендую почитать статью про противоракетную оборону Израиля, где все это объясняется на основе знаний математики 4 класса. https://habr.com/ru/articles/878168/

Читать далее

В топку Live Coding. Он измеряет уровень стресса, а не навыки программирования

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

Некоторым людям нравятся собеседования с написанием кода. Я к их числу не отношусь.

Недавно мне на LinkedIn попался пост такого содержания:

"Мы задаём каждому соискателю тривиальную задачу на программирование. Что-нибудь вроде: «Дан список чисел, нужно вернуть сумму чётных из них». И такая задача не предполагается как сложная или заумная, и её цель не в том, чтобы кого-то отсеять, теоретически.

Это лишь базовая проверка. Разработчик или SRE с опытом от 6 до 10 лет должен решать такие во сне, согласитесь?

Оказывается, нет.

Где-то 75% кандидатов не справляются. И не только джуниоры. Я говорю о людях с приставкой «Senior» в их квалификации. О людях, которые заявляют, что учат новичков. О тех, кто говорит, что имеет за плечами годы опыта в продакшене.

Для меня это загадка".

Поначалу звучит абсурдно. С чего бы вдруг старший разработчик, который уже много лет пишет код, провалился на таком простом алгоритме? Неужели он внезапно забыл, как программировать? Возможно. Но я вижу это иначе.

Читать далее

Моё знакомство с процессором Эльбрус-8СВ. Оптимизирую сложение массива байтов

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

Месяц назад мне в телеграм написал человек и предложил доступ к системе с процессором Эльбрус-8СВ.

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

Разве может что-то пойти не так?

Андрей Карпаты: итоги LLM-экосистемы за 2025 год

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

Команда AI for Devs подготовила перевод обзорной статьи о ключевых сдвигах в развитии LLM в 2025 году. Андрей разбирает, почему Reinforcement Learning from Verifiable Rewards стал новой базовой стадией обучения, откуда взялся «рваный интеллект», как появился новый слой LLM-приложений и почему ИИ всё чаще «живёт» прямо на компьютере разработчика.

Читать далее

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