Обновить

Разработка

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

Украшаем терминал к 2026: пишем CLI-предсказатель на Python с библиотекой Rich

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

2025-й был насыщенным: переписывали легаси и тушили проды по пятницам. Сейчас, когда таски в Jira закрываются уже с трудом, самое время выдохнуть и закодить что-то «для души». Никаких кубернетисов и хайлоада. Только Python, библиотека Rich и 100 строк кода, чтобы создать уютную елку с обратным отсчетом прямо в консоли. Сделаем красиво, упакуем в exe и отправим коллегам вместо открытки.

Читать далее

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

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

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

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

Читать далее

Москву сжали до 93 МБ. Новый формат данных OpenStreetMap

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

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

В октябре 2025 года разработчики представили новый формат хранения данных GOB («Geo-Object Bundle», пакет геообъектов). Это вспомогательный формат для стандартной библиотеки GOL (Geo-Object Library), которая используется давно. В новом формате реализовано сжатие zlib и другие оптимизации, что позволило существенно уменьшить размер файлов, скорость загрузки и обработки карт. Работа с нашей Землёй стала гораздо быстрее, если можно так сказать.

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

Как и зачем мы разработали систему анализа аномальных логов. Кейс MWS

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

Привет, Хабр! Меня зовут Андрей Басов, я руководитель команды технической поддержки стрима корпоративных продуктов и сервисов в MWS. Вместе со своими коллегами — Тимуром Хабибулиным (data scientist) и Рафисом Ганеевым (senior devops engineer) — занимаюсь технической поддержкой и сопровождением продуктов линейки Partner Experience Platform.

Чтобы улучшить качество наших сервисов, через которые МТС взаимодействует с партнерами, мы вынуждены постоянно внедрять новые решения, растить продукты и развивать их архитектуру, при этом нам важно обеспечивать надежность и стабильность работы ИТ-систем. Это не всегда дается легко, ведь объемы данных растут, и их нужно эффективно обрабатывать. Одной из основных проблем становится анализ логов — текстовых записей. В нашем случае они фиксируют события в работе систем, которые созданы за 25+ лет работы компании, а еще у них различные стеки и архитектурные подходы. 

Объемы данных настолько велики, что проанализировать вручную (например, в OpenSearch/Kibana) даже один продукт практически невозможно, иначе нам пришлось бы просматривать миллионы строк логов каждый день. Поэтому мы решили разработать систему, которая позволила бы автоматически выявлять в логах аномалии — события, не свойственные нормальному функционированию системы. Например, это могут быть следы багов, вызванных новыми релизами, или другие непредвиденные происшествия. Что из этого вышло — расскажу дальше. 

Читать далее

Неэффективная эффективность

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

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

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

Читать далее

Более глубокий взгляд на старый UUIDv4 и новый UUIDv7 в PostgreSQL 18

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

UUIDv4 как первичный ключ в PostgreSQL обычно ругают за «случайность» — но за этим словом прячется конкретная физика: сплиты страниц B-дерева, рыхлый листовой уровень, фрагментация и лишний случайный I/O при чтении. В PostgreSQL 18 появился UUIDv7 — и это хороший повод посмотреть на проблему не на уровне вкусов, а на уровне того, как реально устроены индекс и heap: от корреляции и ctid до статистики страниц и плотности листьев.

Читать далее

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

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

Но пока потенциально: разбираем журналистское расследование от Reuters о секретном проекте КНР. Второй материал из цикла торговой войны между США и Китаем.

Читать далее

Игрушка на елку к Новому году

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

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

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

Читать далее

Разбираемся с новой мощной платой Orange Pi 6 Plus на базе Armv9 Cix P1 CD8160

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

Компания Shenzhen Xunlong Software выпустила новую open-source плату на базе 12-ядерного высокопроизводительного процессора Armv9 Cix P1 CD8160. Плата предыдущего поколения Orange PI 5 построена на Rockchip RK3588. Новый процессор Cix P1 состоит из 8 ядер Cortex‑A720 и 4-х Cortex‑A520, и обещает прирост производительности на 300% по сравнению с последним Rockchip RK3588. Ядро Cortex‑A720 было впервые представлено публике в 2023 году и через два года уже готова плата на новых процессорных ядрах. Из коробки работает UEFI/TianoCore EDK II (ED2) с запуском Debian, Android, Windows 11. Под катом разберемся с новой архитектурой Armv9, рассмотрим процессор Cix P1, оценим производительность новой платы и сравним с предыдущим поколением, платой Orange PI 5 Plus.

Читать далее

Конец кремниевой эры: почему квантовые компьютеры — наша последняя надежда

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

Я до сих пор помню тот день, почти два десятилетия назад, когда впервые вскрыла свой системный блок — он начал издавать какой‑то странный шум. Той ночью я сидела, скрестив ноги, на полу своей спальни перед открытым корпусом компьютера и смотрела на крошечные небоскребы, на это подобие города, красиво выстроенное на зеленой плате... Казалось, я наблюдаю за миром, у которого есть свое собственное существование.

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

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

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

Читать далее

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

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

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

Читать далее

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

Архитектурный квиз: костыль или элегантное решение?

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

Отказоустойчивый и масштабируемый энтерпрайз невозможно спроектировать по книжкам. Одно и то же решение может фигурировать и в best, и в bad practice — и, что забавно, иногда переходит из одного списка в другой. Ещё недавно монолиты считались злом, а теперь снова в моде.

Хотите посмотреть, как знакомые паттерны ведут себя в реальном контексте?

Чтобы показать это на практике, я собрала три инженерных кейса. Каждый оформлен в формате детективного квиза: роль, фабула, вопросы на размышление, разбор и выводы. Попробуйте разобраться в проблеме, пройти тест и определить: где костыль, где инженерный компромисс, а где — настоящая best practice.

Читать далее

Под капотом платежей: чем отличаются ПС «Мир» и СБП

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

В этой статье расскажем, чем отличаются ПС «Мир» и СБП и почему именно вместе эти системы делают безналичные расчёты удобными, надёжными и доступными каждому.

Читать далее

Как «ИИ» (не)помогает мне разрабатывать игру Creepy Support

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

Уже год я неторопливо разрабатывают свою небольшую инди-игру Creepy Support, о технической части которой я уже рассказывал на Хабре. И недавно меня в очередной раз спросили, «а ты не пробовал использовать «ИИ» для ускорения разработки»? Я начал писать человеку развёрнутый ответ, и в процессе понял, что текст разрастается до небольшого поста...

Читать далее

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

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

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

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

Читать далее

Изготовление дампера картриджей NES/Famicom

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

В статье расскажу об опыте изготовления и использования дампера NES/Famicom картриджей. Проблемы выбора проекта для реализации, цели и задачи, примеры использования.

Читать далее

Axiom — тестовый фреймворк для Go, которого нам всегда не хватало

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

Axiom — это недостающий тестовый runtime для Go, который добавляет фикстуры, шаги, хуки, retry, плагины, метаданные и структурированное выполнение поверх стандартного testing, оставаясь полностью совместимым с ним. Минимум магии, максимум инфраструктуры.

Читать далее

Снепшот-тестирование SwiftUI View в legacy-проекте: обходим ограничения

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

Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable?

Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.

Читать далее