Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

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

Мифы об ИТ-архитектуре, из-за которых ваш проект стоит дороже

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

Всем привет. Меня зовут Александр Виноградов, я главный архитектор Ви.Tech – ИТ-дочки ВсеИнструменты.ру. Последние 9 лет занимаюсь ИТ-архитектурой и менеджментом в архитектуре, и сегодня бы хотел поделиться с вами своим топом заблуждений про эту самую архитектуру из серии: «если бы мне каждый раз давали рубль, когда я слышу...». 

Кому будет полезна эта статья:

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

Вы узнаете, что:

— Не существует «правильных» технологий (и postgres не лучше mysql).
— Архитектор не должен писать код (и почему).
— Что покупка коробочных решений не избавляет от проблем.

Читать далее

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

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

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

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

Читать далее

Психанул на неудобный драйвер pgx и написал свою библиотеку. Все как по канонам гошников ) — Golang

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

После месяцев рутинного сканирования строк в структуры я решил: «Хватит это терпеть!» и психанув, создал обертку, которая:

✔ Автоматизирует скан — никаких rows.Scan(), просто передаете структуру
✔ Работает с любыми вложенностями — даже сложные JSON-поля парсятся без боли
✔ Не тормозит — минимальные накладные расходы, вся мощь pgx сохраняется
✔ Подходит для любого проекта — можно внедрять постепенно

👉 Это не просто библиотека — это мой ответ на боль всех gopher'ов!

Читать далее

Как мы создали продукт BC4 с новой платформой

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

Привет, Хабр! Меня зовут Дима, я заместитель директора по техническому развитию в IPTRONIC, и вот уже 6 лет занимаюсь персональными видеорегистраторами. В процессе работы с этим сегментом рынка мы с командой постоянно натыкались на одну и ту же проблему: отсутствие полноценного российского программного обеспечения, которое могло бы эффективно выполнять различные специальные функции для клиентов. Уверен, что и мои коллеги по отрасли не раз сталкивались с этой же проблемой.

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

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

Что же мы сделали дальше?

Читать далее

Практический CQRS и Event Sourcing на Go

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

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

Читать далее

Когда State уже не спасает: путь к Statechart

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

В мире разработки программного обеспечения управление состоянием объекта - одна из фундаментальных задач. Когда поведение объекта должно меняться в зависимости от его внутреннего состояния, разработчики часто обращаются к паттерну State. Однако здесь и возникает путаница: его нередко отождествляют с более общей концепцией — State Machine (Конечный автомат), а то и вовсе не видят разницы.

Погрузимся в мир управления состояниями — от простого к сложному!

Читать далее

Deep-dive, или когда обновиться недостаточно

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

Разбираем метод глубокого анализа уязвимостей (Deep-dive), когда простая рекомендация из SCA-отчета не решает проблему, и нужно копать глубже — вплоть до кода библиотеки, контекста использования и ручной проверки уязвимости.

Читать далее

LLMops дома: быстрое разворачивание и настройка инфраструктуры с помощью Langfuse

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

Задумывались ли вы о том, как сделать трассировку в ML/LLM‑пайплайнах? А может, сталкивались с ситуацией, когда хотелось быстро понять, почему система сработала не так, как ожидалось, и в каком месте всё пошло не так? Мы вот задумались и сталкивались, поэтому расскажу о том, что пробуем сейчас.

В этой статье поделюсь нашим опытом использования Langfuse - мощного инструмента для трассировки и оценки пайплайнов, построенных на больших языковых моделях. Мы рассмотрим ключевые возможности Langfuse, особенности интеграции с Python SDK, покажем, как развернуть инфраструктуру локально, и подключим локальную LLM‑модель из Ollama для анализа результатов.

Читать далее

Как не увидеть то, что не хотелось бы видеть, чтобы потом не нужно было развидеть

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

Приветствую! Хочу рассказать про свой мини pet‑проект «Just Skip It!», который я разработала (и надеюсь буду развивать), чтобы автоматически пропускать нежелательные сцены в видео.

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

Так и родился проект «Just Skip It!». В предлагаемой мной реализации, я использовала медиаплеер VLC, и утилиту на Python, которая управляет плеером через его RC‑интерфейс.

Читать далее

Тестируем Kafka с Testcontainers

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

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

Сегодня мы рассмотрим, как протестировать Kafka с помощью Testcontainers.

Testcontainers — это библиотека, которая из JUnit-теста запускает Docker-контейнеры как обычные Java-объекты. Вы пишете пару строк — а на фоне поднимается полноценная инфраструктура: база, брокер, Redis, что угодно. После теста контейнер гарантированно останавливается, поэтому окружение всегда чистое, а CI не засоряется процессами.

Kafka в Testcontainers запускается теми же двумя строками. Получаем реальный брокер, который ничем не отличается от продакшен-копии, но живёт ровно столько, сколько идёт тест.

Читать далее

Как мы внедряли Service Mesh и не утонули в сложностях: реальный кейс Orion soft

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

Артём Еремин, системный инженер Nova Container Platform в Orion soft.

Всем привет! Недавно я выступал на мероприятии СНОВА О КУБЕРЕ и рассказывал о Service Mesh. Тема достойна и поста на Хабре, потому что Service Mesh стал распространенной фишкой, но при этом не самой простой. 

Мы в Orion soft решили внедрить ее в нашу платформу оркестрации Nova Container Platform, и по пути столкнулись с целым рядом «подводных камней»: от выбора самого решения до нюансов настройки MTLS и организации точек входа трафика в наш кластер. В этой статье я расскажу, как мы выбирали реализацию для Service Mesh, почему остановились на Istio, какие вопросы решали и что из этого получилось.

Читать далее

Трендовые уязвимости первой половины 2025 года

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

Киберугрозы продолжают эволюционировать, а мы в Positive Technologies продолжаем их анализировать и отбирать трендовые уязвимости. Это уязвимости, которые активно используются в атаках или с высокой степенью вероятности будут использоваться в ближайшее время. Пришло время посмотреть с какими результатами мы подошли к первой половине 2025 года.

Итак, за весь 2024 год мы отнесли к трендовым 74 уязвимости. А с начала 2025 года до 30 июня отнесли к трендовым 37 уязвимостей. Отсюда можно сделать предположения, что в этом году к трендовым будет отнесено примерно столько же уязвимостей, что и в прошлом году.

Что же это были за уязвимости?

Читать

Docker, compose и Testcontainers в процессе разработки

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

Вы все еще разрабатываете и тестируете в общем окружении, пересылаете в мессенджерах файлы конфигов для запуска приложения на рабочей машине, провели половину спринта в ожидании ресурсов для новой: бд, очереди, etc.? Знайте - вы не одиноки. Но бывает по-другому.

Если вы еще здесь, полагаю, что все же хочется “по-другому”. На самом деле это вовсе не значит, что сейчас плохо. Просто жизнь такая.

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

Читать далее

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

Роботы не покупают эклеры

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

Вам знакомо такое выражение: 1 доллар — тому кто придумал, 2 — тому кто сделал и 10 — тому кто продал? Думаю, каждый прочувствовал на себе все «прелести» капитализма и у каждого есть мнение на этот счет. Реалистичный, взрослый взгляд на все это состоит в понимании простой истины: мир — это рынок, а идеи и их реализация — все это убытки до тех пор пока нет продаж. Но на самом деле продажи — это просто наука и как любая наука она обладает внутренними, очень глубокими проблемами и очень сильными противоречиями. Обо всем этом и пойдет речь в данной статье.

Купить эклер

Как разрабатывать AI-агенты безопасными — свежие рекомендации OWASP

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

28 июля фонд OWASP выпустил руководство по защите агентных приложений. Работа над ним шла несколько месяцев, большую часть времени заняло рецензирование от специалистов из ведущих организаций: Microsoft, Oracle, NIST, Еврокомиссия, Robust Intelligence, Protect AI и других.

Давайте посмотрим, чем с нами решили поделиться специалисты со всего мира и какие рекомендации они приводят.

Читать далее

Не понял тему геймджема? Разберемся

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

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

Читать далее

Security Week 2531: подробности атаки ToolShell

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

Обнаруженная в середине июля атака ToolShell стала одним из самых серьезных событий в сфере корпоративной IT-безопасности этого лета. Не до конца пропатченные уязвимости в Microsoft SharePoint привели к взлому большого количества standalone-инсталляций, до того как производитель ПО выпустил патч. За восемь дней, прошедших с момента выпуска патчей, исследователи Microsoft зафиксировали множество атак, в ряде случаев приводящих к шифрованию данных с последующим требованием выкупа.

Читать далее

Легитимный язык в руках злоумышленников: декомпиляция ВПО на AutoIt

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

Привет, Хабр! На связи команда UserGate uFactor, и мы снова хотим рассказать о наших исследованиях в области кибербезопасности. Этот материал — продолжение рассказа о вредоносном программном обеспечении, используемом в кибератаках. В прошлый раз мы рассказывали о мощном ВПО DarkWatchman, в этот — рассмотрим не самый сложный вредонос, использующий скомпилированные сценарии на скриптовом языке AutoIt. Злоумышленники часто используют этот язык для создания ВПО.

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

Язык AutoIt прост, внешне схож с Visual Basic и по функциональности близок к языкам общего назначения, но отличается от них наличием встроенных средств, легко предоставляющих доступ к событиям, процессам, элементам графического интерфейса системы и программ. Язык включает GUI-фреймворк, позволяющий использовать в скриптах несложные Windows-формы с типовыми графическими компонентами.

Рассмотрим на примере один из таких образцов ВПО. Подробнее об AutoIt можно почитать на сайте разработчика.

Для анализа PE-файла необходимо сначала получить общую информацию о нем. Для этого можно воспользоваться программным обеспечением Detect It Easy.

Читать далее

Эволюция архитектур больших языковых моделей: от GPT-2 к современным решениям

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

Прошло семь лет с момента разработки оригинальной архитектуры GPT. На первый взгляд, если оглянуться на GPT-2 (2019) и взглянуть вперёд на DeepSeek-V3 и Llama 4 (2024–2025), можно удивиться, насколько эти модели по-прежнему структурно схожи.

Разумеется, позиционные эмбеддинги эволюционировали от абсолютных к роторационным (RoPE), Multi-Head Attention в значительной степени уступил место Grouped-Query Attention, а более эффективная SwiGLU заменила такие функции активации, как GELU. Но если отбросить эти незначительные усовершенствования, действительно ли мы наблюдаем принципиальные архитектурные сдвиги — или просто продолжаем полировать одни и те же фундаментальные конструкции?

Сравнение LLM между собой с целью выявления ключевых факторов, влияющих на их качество (или недостатки), по-прежнему остаётся крайне нетривиальной задачей: датасеты, методы обучения и гиперпараметры сильно различаются и зачастую плохо документированы.

Тем не менее, я считаю, что изучение именно архитектурных изменений остаётся ценным подходом, позволяющим понять, над чем работают разработчики LLM в 2025 году. 

Читать далее

Пока, dual packaging: в каком формате публиковать npm-библиотеки

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

Уже 10 лет в JS-экосистеме воюют два формата модулей: CommonJS и ES Modules. Чтобы и получить плюшки ESM, и не распугать пользователей, npm-пакеты часто используют dual packaging: собирают код в оба формата. Это решает одну проблему, но создает несколько новых.

Сегодня расскажу

Какие проблемы пришли к dual packaging, и не пора ли от него отказаться.

В какой формат паковать npm-библиотеки в 2025 году.

Статься будет полезна и для опенсорса, и для внутренних библиотек, и для простых разработчиков (хотя бы чтобы понимать, откуда у вас в node_modules 2 Гб).

Читать далее