Обновить

Разработка

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

Гайд по форматированию строк в Python: от % до f-строк и обратно

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

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

За годы развития Python прошел путь от C-style форматирования (%) до мощных f-строк (Python 3.6+). Но означает ли это, что о старых методах можно забыть?

Читать далее

OWASP Top Ten: как оценивали веб-угрозы 20 лет назад и сейчас

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

Первый список OWASP Top Ten был выпущен в 2004 году. И с того момента появилось 7 обновлений, последнее из которых представлено в ноябре 2025 (пока в статусе Release Candidate). Эксперты WMX проанализировали все выпуски, чтобы разобраться, как с каждым годом и даже десятилетием менялась оценка угроз.

Путь осы

Benchmark Driven Development: почему мы перестали верить чужим бенчмаркам

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

В этой статье расскажем, как мы пришли к подходу, который внутри называем Benchmark Driven Development (BDD) — разработка, движимая бенчмарками на своих данных.
(Да, мы знаем, что BDD — это ещё и Behavior Driven Development, тут у нас своя расшифровка 🙂)

Читать далее

LangGraph + Cursor CLI + MCP для автоматической генерации документации: кейс из BI-аналитики

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

Как автоматизировать создание технической документации для сотен мер в OLAP-проекте? Рассказываю про систему, которая связывает LangGraph, MCP-сервер и Cursor CLI в единый конвейер генерации спецификаций.

Агент извлекает список мер через локальную LLM (с фалбэком на regex), последовательно обрабатывает каждую через циклический граф состояний и автоматически трассирует поток данных от Power BI мер через DWH представления до хранимых процедур.

Практический кейс из BI-аналитики: от 15-20 минут ручной работы на меру до полной автоматизации. В статье — эволюция архитектуры от простого MCP-сервера до продакшн-решения с детальным логированием каждого шага.

GitHub репозитории прилагаются.

Читать далее

Методы массивов. Часть 1

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

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

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. Сегодня мы поговорим о методах массивов. Если коротко, вы узнаете, как легко и элегантно работать со списками данных, не используя громоздкие циклы. Детали внутри.

Читать далее

Рецензия на книгу «Современные фронтенды на базе HTMX»

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

Фронтенд переживает очередной виток переосмысления технологий. После десятилетия доминирования SPA-подхода, React-подобных экосистем и инструментального «комбайна» из Webpack/Vite/TypeScript/Redux появляются идеи возврата к простоте. Это о том, чтобы минимизировать JavaScript, отдать больше задач на сервер и перестать городить frontend + backend там, где это не нужно. В этом контексте библиотека HTMX стала одним из заметных феноменов последних лет.

Читать далее

Опыт ВТБ по миграции SAP BW/4 HANA: что помогло уложиться в сроки и сохранить функциональность

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

Импортозамещение аналитических систем остаётся одной из наиболее трудоемких задач в корпоративной ИТ-среде. Особенно когда речь идёт о платформах уровня SAP BW/4 HANA: больших объемах данных, сложной архитектуре, множестве отчетов и строгих нефункциональных требованиях. В подобных проектах важны не только выбор стека и корректная миграция хранилища, но и организационные решения, планирование и работа с пользователями.

Всем привет! Меня зовут Михаил Синельников, я лидер кластера импортозамещения аналитической отчетности в ВТБ. Вместе с моим коллегой Владимиром Ведяковым, ИТ-лидером проекта со стороны компании «Сапиенс Солюшнс», мы описали в этой статье перенос системы аналитической отчетности SAP BW/4 HANA на импортонезависимый стек. В этом материале представлен наш практический опыт: ключевые решения, подходы к планированию, особенности реализации и выводы, которые могут быть полезны командам, работающим с аналогичными задачами.

Читать далее

Увольте своих программистов. Или спросите их…

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

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

В этом и есть суть современной разработки: бесконечный ремонт, замаскированный под «инновации».

Читать далее

Запуск WPF-приложений в Docker: Экспериментальный подход с Wine

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

Запуск WPF на Linux долгое время казался невозможным. Но благодаря связке Docker и Wine теперь это реальность. Рассказываю о своем практическом опыте, как заставить эксклюзивную технологию Microsoft работать вне Windows.

Читать далее

Не Кафкой единым: как наладить асинхронный обмен сообщениями между микросервисами

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

Всем привет! Меня зовут Сергей Бунатян, я руководитель службы в Техплатформе Городских сервисов Яндекса. 

На сегодняшний день существует довольно много брокеров сообщений. Наиболее часто используемыми в индустрии, пожалуй, будут те, которые, реализуют парадигму очереди сообщений. Самых известных представителей вы наверняка знаете, — Apache Kafka и RabbitMQ, а внутри Яндекса широко используется Logbroker. И, тем не менее, как нетрудно догадаться из этого вступления, мы зачем‑то решили написать свой брокер сообщений.

Сегодня я расскажу про нашу систему, которая называется STQ — Sharded Tasks Queue. По названию системы можно было бы подумать, что это ещё один сервер очередей, однако это будет не совсем верно. STQ — это скорее message broker. 

В этой статье я постараюсь рассказать о том, какие задачи перед нами стояли и как это нас привело к решению написать что‑то своё. А заодно поделюсь опытом эксплуатации нашей системы и расскажу про влияние STQ на опыт разработчиков.

Читать далее

Анимированный UI: как улучшить взаимодействие с пользователем

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

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

В продакшене анимация всегда балансирует между выразительностью и производительностью. Чем сложнее сцена, тем выше нагрузка на процессор, особенно на мобильных устройствах. Поэтому важно оптимизировать: использовать GPU-дружественные свойства (transform, opacity), избегать тяжёлых reflow, а для сложных эффектов — применять библиотеку, которая работает с отложенным рендерингом, например Framer Motion или GSAP. Это не только повышает плавность, но и снижает энергопотребление, что прямо влияет на опыт пользователя.

Когда команда проектирует систему анимаций, важно фиксировать принципы в дизайн-системе. Это помогает избежать хаоса и гарантирует согласованность между продуктами. Хорошая практика — описывать длительность, кривые ускорения и паттерны движения как переменные, чтобы и дизайнеры, и разработчики говорили на одном языке. Например, motion-tokens, где заданы типовые параметры переходов: fast-out-slow-in, linear-out-slow-in и т.д.

На зрелом уровне анимация становится не надстройкой, а частью архитектуры интерфейса. Она помогает продукту чувствоваться цельным, обеспечивает предсказуемость и ритм, а главное — создаёт ощущение «живого» цифрового опыта. Привет, я Максим, frontend-разработчик в компании SimbirSoft, в этой статье расскажу, как сделать полезный для пользователя UI.

Читать далее

Как мы сделали платформу для собеседований Enterly

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

Привет, Хабр! Я Анжела Большакова, разработчик направления Digital Interview в Т-Банке.

Мы в T активно развиваем внутренние инструменты, а иногда такие проекты перерастают в продукты для внешних пользователей. Так произошло с платформой для интервью, которой занимается моя команда.

Поделюсь опытом создания инструмента: почему мы решили развивать платформу для интервью, что она умеет, как помогает Т-Команде. В конце расскажу о планах развития платформы как полноценного внешнего продукта.

Читать далее

Python + Fortran: Когда numpy уже мало, а C++ ещё страшно. Ускоряем код в 150 раз

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

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

В прошлой статье я рассуждал о том, почему Fortran в 2025 году всё ещё жив и даже растет в рейтингах. В комментариях справедливо заметили: «Философия — это хорошо, но как это применить современному разработчику? Зачем мне Fortran, если я пишу на Python?».

Это правильный вопрос. Сегодня я хочу ответить на него кодом, а не словами.

Я покажу, как использовать Fortran в качестве «числодробилки» для Python. Мы возьмем задачу, на которой интерпретатор Python гарантированно просядет, и ускорим её в ~150 раз, используя инструмент, который уже есть в вашем numpy.

Речь пойдет не о замене Python, а о симбиозе: удобный интерфейс Python + сырая мощь Fortran.

Читать далее

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

Решение головоломки NYTimes Pips с помощью решателя ограничений

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

Кажется, что головоломка NYT Pips — это просто игра с домино и цветными клетками. Но если взглянуть на неё как на задачу удовлетворения ограничений, она превращается в удобный полигон для современных решателей вроде MiniZinc.

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

Читать разбор

SwooleApp: Легковесный фреймворк для Swoole — разбираем пример приложения

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

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

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

Читать далее

Как Nvidia может случайно уничтожить 90% собственного рынка (и даже не заметить этого)

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

В своём последнем обращении к Уолл-стрит Nvidia упомянула Майкла Бьюрри, прославившегося благодаря «Игре на понижение», чтобы опровергнуть его анализ пузыря ИИ и заверить общественность, что «они - не Enron».

Давайте начистоту: если многотриллионная компания вынуждена публично обращаться к одному-единственному финансовому аналитику по имени и заявлять, что она не Enron, - это лучший способ заставить всех думать, что вы и есть новый Enron. Бьюрри ответил на этот довольно забавный выпад в своей статье на Substack, указав, что Nvidia совсем не похожа на Enron, а скорее напоминает Cisco. Это невероятно точное сравнение. Оно прорезает всю словесную шелуху и обнажает гниль в самом сердце пузыря ИИ. Однако я не думаю, что его предупреждение зашло достаточно далеко, потому что у Nvidia есть потенциал стать чем-то гораздо худшим, чем Cisco.

Читать далее

Измерение сложности моделей — Часть 2: Применяем теорию на практике

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

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

Читать далее

Как я подружил WSL, VirtualBox и Ansible, чтобы быстро создавать VM Alpine на Windows

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

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

Я сделал это так, на Windows через WSL установил Alpine сборки minirootfs, затем при помощи Ansible развернул в Oracle VM VirtualBox 3 виртуальные машины на базе Alpine сборки standard. Никаких облаков, только локальный контроль и минимум зависимостей. Для чего всё это? Сейчас всё чаще говорят о минималистичных системах, об оптимизации железа под конкретные задачи, о работе на граничных устройствах, вот и захотелось попробовать всё своими руками.

Читать далее

Специальный таймер для серии докладов

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

Часто в работе возникает потребность жестко выдерживать тайминг при заслушивании серии докладов: при защите проектов, программ развития, дипломных работ и прочее. Если в повестке дня какого-либо мероприятия 10+ докладчиков, то без строгого соблюдения регламента невозможно не выбиться из графика. Как правило, это приводит к тому, что запланированное время мероприятия увеличивается кратно. А докладчикам, выступающим последними, фактически не достаётся должного внимания.

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

Читать далее

Самообучение против курсов для ребенка. В чём сила, брат?

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

Научить нельзя - научиться можно. Привет, меня зовут Максим Иванков, уже 9-ый год я развиваю робототехнику и программирование для детей. В статье хотел поделиться опытом ведения занятий и описать формат обучения к которому пришёл сегодня, где дети самообучаются, а преподаватель не ведёт лекции. Подход отличается от привычного лекционного формата, поэтому как минимум заслуживает внимания)

Читать далее