Обновить

Разработка

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

Cloud Native LVM: как автоматизировать поиск и разметку локальных дисков в Kubernetes

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров460

Всем привет, меня зовут Александр Зимин, я руковожу разработкой подсистемы хранения данных в Deckhouse. Сегодня хочу поговорить о хранении данных на локальных дисках в Kubernetes и поделиться тем, как мы автоматизируем их поиск и разметку для администраторов и пользователей.

Читать далее

Переезд с Nuxt 2 на Nuxt 3: почему для крупного интернет-магазина мы выбрали рерайт, а не миграцию

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров400

Пять лет назад мы запустили интернет-магазин на Nuxt 2. За это время он превратился в классический монолит: вносить правки стало дорого, а сайт начал «задыхаться» под нагрузкой. Когда вышел Nuxt 3, перед нами встал выбор: пытаться оживить проект через Nuxt Bridge или переписать всё с нуля.

Мы проанализировали код и поняли: плавная миграция для нас — это путь к созданию «зомби-проекта». Слишком много фундаментальных отличий: Options API против Composition API, Vuex против Pinia, смена логики роутинга и несовместимость ключевых библиотек.

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

Внутри кейса:
4 технических «фаталити», которые делают миграцию легаси-монолита невозможной.
Архитектура FSD + Nuxt 3: как мы подружили фронтенд с бэкендом на Symfony и навели порядок в зависимостях.
Паттерн «Фабрика»: как упростить сложную логику доставки в Composition API.
Бонус: почему благодаря правильному старту недавнее обновление с Nuxt 3 до Nuxt 4 заняло у нас минимум времени, в отличие от мучений с Nuxt 2.

Если вы всё еще поддерживаете проекты на второй версии и боитесь подступиться к обновлению — этот опыт для вас.

Читать далее

CI/CD и непрерывное тестирование (управление рисками в условиях постоянных изменений)

Время на прочтение3 мин
Количество просмотров261

Я уже писал, что всестороннее тестирование является критической необходимостью для обеспечения киберустойчивости. Сейчас хотел бы показать, как этот принцип применяется в условиях, когда ИТ-системы развиваются с беспрецедентной скоростью, а изменения вносятся постоянно. Возникает парадокс: чем быстрее мы внедряем новое, тем выше риск сбоев. Аналитики отмечают, что общее количество инцидентов в критически важных сервисах неуклонно растет. Как же управлять этим "хаосом изменений" и обеспечить стабильность 24/7?

Читать далее

Как не проспать дейли: Реализуем планировщик задач внутри Python-процесса

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

В потоке кода легко пропустить дейли, забыть проверить бэкапы или закоммитить задачи перед уходом. Сторонние планировщики часто избыточны и потребляют лишние ресурсы, а самописные скрипты на while True: time.sleep() — это архитектурный тупик, блокирующий потоки и создающий временной дрейф.

В этом туториале напишем свой легковесный фоновый сервис на Python. Разберем, как отправлять нативные системные уведомления (Windows/Linux/macOS) через библиотеку Plyer, настроим гибкое расписание с помощью Schedule и научимся запускать скрипт в режиме демона без висящего окна терминала.

Читать далее

Как Python помог «разобрать» 10 000 сообщений из Telegram для суда: практическое руководство для юристов

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

Представьте: в вашем деле — 10 000 сообщений в Telegram, и суд просит показать, кто, когда и что именно писал за конкретный период. Вручную это неделя рутинной работы, море скриншотов и высокий риск пропустить важное сообщение или перепутать даты. С помощью Python и библиотеки Telethon ту же задачу можно решить за несколько минут, при этом сразу заложив фундамент для доказательства целостности данных в суде.

В этой статье разберём:

почему суды принимают переписку из мессенджеров как доказательство;

как технически выгрузить чат из Telegram с помощью Telethon;

как отфильтровать данные, рассчитать хеш-суммы и оформить результат для дела;

какие юридические риски нужно учесть и как их минимизировать.

Читать далее

Почему ChatGPT не знает ваших внутренних данных и как это исправить: простое объяснение RAG

Время на прочтение3 мин
Количество просмотров3.7K

Вы думаете, ChatGPT стал идеальным? Может «загуглить» любой факт, анализировать документы, даже писать код? Попробуйте спросить его про внутренние API вашей компании, корпоративные гайдлайны или правила код-ревью. Он молчит — и не зря. Ведь около 80 % рабочего времени программист тратит на поиск информации во внутренних системах.

Сегодня расскажу о технологии, которая решает эту проблему — Retrieval Augmented Generation (RAG).

Читать далее

Рецензия на книгу «Инжиниринг платформ: техническое и управленческое руководство»

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

На календаре 2025 год, и термин platform engineering прочно вошел в лексикон всех инженеров и менеджеров, занимающихся вопросами ИТ-инфраструктуры предприятий — примерно так же, как когда-то «DevOps», а еще раньше «Agile». К слову, предыдущие тренды порой превращались в модный хайп, под которым каждая компания понимала свое видение процессов разработки и развертывания. Но платформенная инженерия сегодня — это не просто набор практик, а системный ответ на тот уровень сложности, к которому индустрию привели облака, микросервисы, CI/CD, SRE и бесконечный поток обновлений в экосистемах OSS (Open Source Software, мир open-source инструментов).

Читать далее

Продуктовые метрики для аналитика данных: памятка для собеседований

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров317

Бывало ли, что для решения бизнес-кейса на собеседовании вам не хватило знания какой-нибудь метрики из предметной области? Это частая ситуация — например, в маркетплейсах всюду говорят про GMV, а в маркетинговой аналитике не обойтись без LTV.

Привет, Хабр! Меня зовут Рафаэль Сайфутдинов, но обычно меня зовут просто Раф. Я работаю аналитиком ценообразования в Авито (а раньше — в Яндекс Лавке), преподаю машинное обучение в Центральном университете, окончил факультет компьютерных наук в НИУ ВШЭ и прошёл курс «Специалист по Data Science» в Яндекс Практикуме. Делюсь памяткой для аналитиков — сохраните, чтобы не провалить собеседование из-за незнания продуктовых метрик.

Читать далее

StructPadding

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

Представляю свою библиотеку для обнуления байт выравнивания (padding) в unmanaged структурах.

Обнуление байт паддинга (padding) обеспечивает детерминированное состояние памяти, что критически важно для двоичного сравнения или вычисления хэша. И не менее важно при бинарной сериализации.

Читать далее

Превратили PVS-Studio в город

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

Вы когда-нибудь хотели взглянуть на свой код под новым углом? Например, увидеть, как бы выглядела ваша кодовая база, будь она городом? Звучит как что-то невероятное. Давайте вместе заглянем в город PVS-Studio и просмотрим, какие тайны он в себе хранит :).

Читать далее

Go profiling lifecycle: от разработки до прода. Инструменты и практики

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

Ваш Go-сервис жрёт память в проде, а на тестовом стенде всё идеально?

Разбираем пошагово: как находить и диагностировать утечки ресурсов в Go-приложениях.

Что внутри:

Теория: GC, планировщик, модель памяти - минимум для понимания проблемы

Практика: pprof профили всех типов (heap, goroutine, allocs, block)

Инструментарий: как читать дампы горутин и системную диагностику

Готовые скрипты для воспроизведения и анализа утечек

Runtime tracing для сложных случаев

Реальный пример из статьи:
Зависшие горутины в одном месте -> stw паузы выросли с 1ms до 50ms -> api деградировал.

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

Для тех, кто хочет научиться находить утечки ДО того, как они попадут в prod.

Читать далее

Чтение на выходные: «Как построить машину. Автобиография величайшего конструктора “Формулы-1”» Эдриана Ньюи

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

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

Эдриан Ньюи сейчас — управляющий технический партнер Aston Martin и акционер гоночного коллектива. Однако его путь — это уникальная хроника триумфов с командами, приведших к множеству чемпионских титулов. На протяжении своей инженерной карьеры он работал в Fittipaldi Automotive, March Engineering, Leyton House, Williams, McLaren и Red Bull Racing. О том, что сопровождало его на пути к славе, пожалуй, никто не расскажет лучше, чем он сам.

Читать далее

Сшивая миры: как гибридный метод позволяет заглянуть в недра Земли с высокой точностью

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

Коллектив ученых из МФТИ и НИИ системных исследований РАН разработал и успешно протестировал новый гибридный вычислительный метод для моделирования распространения сейсмических волн в геологических структурах со сложной, произвольно искривленной формой.

Читать далее

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

Меня позвали в крутой проект, спасибо, Хабр

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

Но я облажался...

Блин я даже в школе столько правил по русскому не читал, какой же наш язык сложный, а что бы реализовать все проверки, что бы правила корректно отрабатывали, проще застрелиться... Пришлось гуглить информацию по ЕГЭ 2025 года и ковыряться на НКРЯ. Много нового узнал =)

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

Читать далее

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

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

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

Со временем я понял, что выбрал тему не случайно - это реально актуальная задача для производства, где качество пайки напрямую влияет на работоспособность устройств, а ещё отличный шанс пройти весь цикл Computer Vision проекта от сбора данных до обучения моделей.

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

Статья будет полезна:

Читать далее

Как тревожность пациентов ломает UX медицинских сервисов — и что с этим делать дизайнеру

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

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

Но есть одна особенность, которую часто недооценивают дизайнеры, продуктовые команды и разработчики:

Читать далее

Зоопарк строк в вашем C++ коде?

Время на прочтение26 мин
Количество просмотров11K

CryEngine2 использовал класс собственный CString для реализации работы со строками и немного использовал строки из стандартной строковой библиотеки Windows. Насколько я помню, последняя версия CryEngine всё ещё использует те же самые CString, она кардинально поменялась внутри, но как дань истории название класса менять не стали, зато сильно расширили функционал. Я не на 100% уверен, применялся ли CString только в редакторе или в рантайме игры тоже, вы можете сами это посмотреть в исходниках, которые все еще доступны на гитхабе. Это один подход к работе со строками, довольно распространенный в мире игростроя - когда мы все нужное пишем сами, не оглядываясь... хотя, тут больше уместно слово поглядывая, на существующие реализации и утаскивая в проект все самое лучшее.

Есть и другой подход... Я работал в команде над некоторым проектом, который должен был выйти на консолях, и в какой‑то момент на проект пришел эффективный тимлид, который хорошо умел в красивые презентации, и продавил использование std::string из sdk. Все очень опытные программисты, синьоры и руководство важно кивали на совещании и согласились всё перевести на std::string… не такие уж они оказались опытные, как выяснилось. В итоге мы заменили большую часть CString на std::string. Не сказал бы, что это сильно повлияло на время компиляции — плюс‑минус минута к проекту, который собирается двадцать минут, особой погоды не делают, но это также превратило наш довольно понятный базовый код в запутанный кошмар. Возможно, для переносимости это было лучше, но ни наш проект, ни CryEngine2 Editor так и не были портированы ни на Linux, ни на какую‑либо другую платформу.

Прошло десять лет, я вижу ровно туже ситуацию на текущем проекте — новый тимлид решил перевести местный MySuperPupeString на std::string, уже предчувствуя «нижней чуйкой» последствия — запасаюсь попкорном и беру отпуск на следующий месяц после принятия решения. Но не это интересно, а то — какие вообще строки могут быть в вашем с++ коде.

Строка, на строке и строкой погоняет

Как мы постепенно идём к «умному» центру администрирования СУБД

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

Что общего у массового применения конфигураций, встроенной поддержки OpenTelemetry и управления HA-кластерами в пару кликов? Всё это — части пазла, который мы собираем, чтобы сделать администрирование PostgreSQL по-настоящему удобным и безопасным. Выход версии Postgres Pro Enterprise Manager (PPEM) 2.3 стал важной вехой в развитии нашего графического интерфейса. Мы добавили поддержку пользовательских пресетов, переработали систему алертинга и усилили RBAC-модель управления доступом. Разбираем ключевые нововведения релиза, которые помогут навести порядок в зоопарке конфигураций и спать спокойно, зная, что система сама предупредит о проблемах.

Читать далее

Docker для начинающих: что это такое и как пользоваться

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

Статей про Docker много не бывает.

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

Освоить рабочую базу Docker →

БД без боли: моя шпаргалка для собесов в Java. Часть 4

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

Всем привет!


Я Senior Java Developer в банке, и за эти годы мне довелось пройти немало собеседований. Где-то было спокойно, где-то — как в допросной, с каверзными вопросами, странными задачами и вечным «а почему так, а не иначе?». В процессе я собрал целую коллекцию тем, которые всплывают снова и снова, особенно когда дело касается баз данных.

Сегодня хочу поделиться этим опытом и разобрать вопросы, которые чаще всего задают именно по SQL-базам.

Читать далее