Pull to refresh
261.45

System Analysis and Design *

Analyze and project

Show first
Rating limit
Level of difficulty

Отправляем заказчика в одиночное плавание

Level of difficultyMedium
Reading time6 min
Views153

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

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

И ещё. Предлагается не NoCode или LowCode, а скорее, оченьдаже-Code. В общем, это – другое!

Читать далее

News

Cтатистика для UX-исследователей. Часть 2 — Сравнение удовлетворенности пользователей

Level of difficultyMedium
Reading time6 min
Views142

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

Читать далее

Jaeger v2

Reading time7 min
Views962

Появилась у меня задача по мониторингу и оценке производительности проекта на микросервисной архитектуре. Для решения был выбран Jaeger. Он давно на рынке, активно развивается (не так давно вышла версия 2, в которой упростилось развертывание и появилась интеграция OpenTelemetry). На мой взгляд, Jaeger – отличное решение для трейсинга, но документация ощущается как не до конца собранный пазл: важные вещи разбросаны, а для понимания приходится обращаться к исходному коду или искать примеры в GitHub-репозиториях.

Цель данной статьи показать на практике, как внедрить Jaeger в продукт на микросервисах.

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

Читать далее

Базы данных. Как выбрать идеальное решение? Полный гид по SQL, NoSQL и не только

Level of difficultyMedium
Reading time11 min
Views5K

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

Меня зовут Кирилл, и на протяжении последних двух лет я мечтал научиться проходить System Design интервью. Но только недавно взялся за дело всерьёз.

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

Читать далее

Kafka, RabbitMQ, NATS в 2025

Level of difficultyMedium
Reading time5 min
Views1.6K

Всем привет, 

Команда devhands.io сделала с Владимиром Перепелицей интервью, посвященное сравнению наиболее популярных решений в области очередей и брокеров сообщений — Kafka, RabbitMQ, NATS.

Владимир — эксперт по большим проектам, очередям и Tarantool, Solution Architect в Exness, создатель S3 в VK Cloud, регулярный спикер и член ПК конференций Highload. А мы, R&D-центр devhands.io, разрабатываем образовательные программы по хайлоаду, перформансу, архитектуре, базам данных и другим направлениям.

Под катом – расшифровка интервью.

Читать далее

А так ли хорош TOGAF?

Reading time7 min
Views1.5K

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

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

Читать далее

Проектирование Информационных систем. Часть 10. Разработка требований 10.2. Формирование спецификаций требований

Level of difficultyMedium
Reading time15 min
Views496

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

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

Для чего это необходимо делать?

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

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

Читать далее

Domain-Driven Design: ошибки, которые не описаны в книгах

Level of difficultyMedium
Reading time13 min
Views6.9K

Всем привет! Меня зовут Андрей, уже несколько лет я работаю тимлидом/техлидом в разных компаниях и различных проектах. В последнее время подход Domain Driven Design у всех на слуху. Хотя этот подход развивается уже много лет (с 2003), только сейчас на него обращают активное внимание и многие команды пробуют внедрять его у себя.

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

Читать далее

Как мы с помощью FreeSwitch сделали IP-телефонию по принципу Lego и с ассистентами вместо человечков

Level of difficultyMedium
Reading time7 min
Views2K

Привет, Хабр! Меня зовут Илья Волынкин, я CTO платформы МТС Exolve. Когда мы говорим про VoIP-телефонию, первая ассоциация — Asterisk. Это open-source ПО захватило рынок и его аналоги не так популярны. На True Tech Day я рассказал про наш опыт с FreeSwitch — инструментом, решающим гораздо более масштабные задачи. 

Благодаря ему мы смогли построить платформу, которая позволяет реализовывать сложные сценарии, добавлять разные модули (например, с AI под капотом), и собирать себе системы телефонии по принципу Lego. Под катом: рассказ про то, как сейчас усложнилась инфраструктура для звонков, какие есть варианты реализации VoIP и как это может развиться в будущем. 

Читать далее

Галопом по архитектуре. Часть 3. Когда руки чешутся все переделать

Level of difficultyHard
Reading time24 min
Views4.4K

Как вы думаете, нужно ли архитектуру на вашем текущем проекте подвергнуть масштабному пересмотру и исправлению? Ставлю на то, что большинство читателей ответят положительно. И эта часть именно про это. В ней мы рассмотрим:

1. Когда сложившаяся архитектура подлежит масштабным изменениям.

2. Что не менее важно, когда лучше оставить, как есть.

3. Ключевые признаки проблем в архитектуре.

4. Основные способы исправления таких проблем.

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

1. Что техническая реализация заметно влияет на успехи бизнеса, хоть и не очень критично;

2. Что из всех аспектов технической реализации наибольший вклад в успех вносит именно архитектура;

3. Что самое важное свойство архитектуры — максимальная независимость команд друг от друга;

4. Что это свойство вытекает напрямую из двух фундаментальных характеристик программного обеспечения: coupling и cohesion, где coupling — характеристика связи двух точек системы/кодовой базы; а cohesion — характеристика того, насколько плотно упакованы такие связи в компоненты.

Во второй части мы уже перешли к практике построения архитектуры с нуля. Мы узнали:

1. Что попытки угадать с архитектурой до старта проекта обычно проваливаются.

2. Что маленькие команды работают буквально в разы эффективнее, чем большие.

3. Что лучший способ разделить софт между командами - делать это постепенно. Начать с одной команды и уже затем дробить систему по обнаруженным в процессе разработки границам.

Теперь перейдем к вопросу, что же делать, если «все уже украдено до нас».

Читать далее

Не корми Яндекс: зачем мы сделали свою метрику

Reading time10 min
Views6.1K
image

Мы любили Яндекс Метрику. Правда, любили. Издалека.

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

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

Тут-то мы и решили: это пора прекратить, надо делать свою метрику, хватит уже этих граблей. Потому что лоб ещё чесался от предыдущих — self-hosted аналитики PostHog, которая нам доставила изрядно танцев с бубнами. Именно оттуда мы, собственно, и перешли на Яндекс Метрику.

И это была ошибка.
Читать дальше →

Видеть инфраструктуру как хакер: рассчитываем время кибератаки

Level of difficultyMedium
Reading time13 min
Views1.3K

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

Следующий шаг – это оценка опасности найденных маршрутов. В этом случае, метрика времени атаки – это один из ключевых параметров анализа. Чем меньше времени потенциально требуется для реализации атаки, тем больше вероятность, что средства защиты и ИБ-специалисты не смогут вовремя обнаружить злоумышленника и остановить взлом. Что же нам даёт метрика времени?

Читать далее

Прокачаться в data science: блоги и каналы

Reading time7 min
Views4.2K

Делимся блогами, посвященными машинному обучению и data science. Материалы от практикующих дата-сайентистов, программистов, физиков и биоинформатиков будут интересны как начинающим, так и «прожженным» специалистам.

Читать далее

Upcoming events

Как мы внедрили Documentation review

Level of difficultyEasy
Reading time6 min
Views314

Всем привет, с вами Анастасия Жилкина, системный аналитик ГК Юзтех. На данный момент работаю в команде, которая занимается реализацией и развитием онлайн-оплат на сайте. В этой статье хочу рассказать о процессе ревью документации, который мы внедрили в команде, и о том, какие ощутимые плюсы это дало как в качестве итоговых решений, так и в командной работе в целом.

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

Читать далее

10 мифов об A/B-тестировании: как избежать распространённых заблуждений в статистическом анализе

Level of difficultyEasy
Reading time15 min
Views4.1K

В технологических компаниях A/B‑тестирование давно стало основой для принятия решений, основанных на данных. Меня зовут Диля Хакимова, я работаю в команде платформы экспериментов Laba в Яндекс Go, и мы с командой помогаем руководителям и аналитикам быстро получать ценную информацию с помощью A/B‑тестирования.

Мы занимаемся разработкой методологии и помогаем специалистам решать вопросы, связанные с экспериментами и статистическим анализом. За время работы мы заметили: вокруг A/B‑тестирования до сих пор существует множество заблуждений.

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

В этой статье мы разберём 10 распространённых мифов об A/B‑тестировании, поможем разобраться в теме глубже и сделать ваши эксперименты эффективнее.

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views989

Всем привет! Я Савва из Твоего любимого агентства. В этом посте расскажу, как я пытался улучшить UX гильотинного резака в своей выпускной квалификационной работе и почему промышленные интерфейсы — это задача для дизайнеров, а не инженеров.

Читать далее

Больше никаких правок! Или как я сдаю прототипы с первого раза

Reading time8 min
Views2.9K

— Отличная работа, Егор! Я вам на почту правочки прислал по прототипу. Взгляните.

У меня от этой фразы что-то внутри ёкнуло. Захожу в почту, к письму прикреплён вордовский документ (на дворе 2009 год). Открываю… 55 комментариев. Пронумерованных. На четыре страницы.

Пробегаюсь по списку. Часть из них вносятся буквально за пять минут. А часть — перечёркивают мою двухнедельную работу.

Я откинулся в кресле, посмотрел в потолок. «Что не так с этим клиентом?». Нет, неправильный вопрос. «Что я делаю не так?». И, главное, как мне не оказываться в таких ситуациях в будущем?

Сегодня, спустя 15 лет, я знаю ответ на эти вопросы. И сейчас попробую уместить в одну статью почти всё необходимое для того, чтобы клиенты, начальники и коллеги принимали результат работы проектировщика (или дизайнера) с первого раза.

Читать далее

Искусственный интеллект в задаче системного аналитика. Написание SQL-запроса

Level of difficultyEasy
Reading time12 min
Views4.3K

Привет Хабр! Меня зовут Татьяна Ошуркова, я системный аналитик и разработчик. Скажу честно, я не придерживаюсь мнения, что искусственный интеллект заменит реальных специалистов, а также сможет решить все наши проблемы и задачи.

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

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

Читать далее

«Натягивая сову лингвистики на глобус архитектуры ПО: Что я нашел на стыке»

Level of difficultyMedium
Reading time11 min
Views1K

Давно думаю над моделью, в которой есть всего две формулы:

State = Static + Dynamic

и

State = Fact + Delay.

Казалось бы – пора звонить в Спортлото, не стыковались они у меня, хотя по отдельности каждая формула вроде работает. Но заявить, что на все вопросы я готов ответить по этим формулам – такого ощущения не было.

И вот... Сидел я как-то над пиццей, подумал, что прикольно раскидали начинки. «Четыре вкуса» и всё такое. И как бы мысленно (а потом и физически) ее ни резал – всё равно что-то влезет на соседний кусок. Итогом стало это...

Погнали натягивать сову на глобус!

Проектирование Информационных систем. Часть 10. Разработка требований 10.1. Правила формирования требований

Level of difficultyMedium
Reading time22 min
Views1.6K

После того как мы при помощи разнообразных способов «объяснения неопределенности» собрали полную картину об исследуемой предметной области, можно прейти к формированию единого представления, описывающего предмет цифровизации. Для этого все формулировки, модели, алгоритмы и прочие артефакты необходимо систематизировать в виде структуры Требований к системе.

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

Читать далее
1
23 ...

Authors' contribution