Как стать автором
Обновить
160.72
Рейтинг

Анализ и проектирование систем *

Анализируй и проектируй

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Микросервисы. Не всё то золото, что хайп

Блог компании e-Legion Анализ и проектирование систем *Проектирование и рефакторинг *Микросервисы *

Привет, меня зовут Владимир Кустиков, я — архитектор решений в e-Legion. И сегодня я хотел бы рассказать вам про микросервисы.

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

Читать далее
Всего голосов 65: ↑60 и ↓5 +55
Просмотры 19K
Комментарии 87

Как мы собирали мозаику из разнородных отчётных данных

Блог компании Московская Биржа Высокая производительность *Oracle *Анализ и проектирование систем *

Привет! Мы уже рассказывали в блоге о том, как работаем с данными на Мосбирже. Но задач, связанных с data, равно как и её разновидностей, настолько много, что одной публикацией точно не обойтись. К примеру, мы – Кирилл Хомутов и Дмитрий Польских – в составе команды ИТ-Финансы обрабатываем данные, которые используются для формирования финансовой отчетности. Сегодня поделимся опытом, как мы научились регулярно получать, агрегировать и «приводить к общему знаменателю» миллионы транзакций из различных ИТ-систем компаний Группы «Московская Биржи».

Не все знают, но Московская биржа – это одна из компаний группы, которая занимается организацией торгов разными классами активов, учетом активов, расчетами. В группу также входят Национальная Товарная Биржа (НТБ), Национальный клиринговый центр (НКЦ), Национальный расчетный депозитарий (НРД) и несколько небольших компаний, которые выполняют узкоспециализированные сервисные функции.

Все участники группы находятся под разным регулированием, по-разному ведут бухгалтерский учёт и сдают разную отчетность. Биржи ведут учёт по стандартам для некредитных финансовых организаций (НФО). НКЦ и НРД ведут учёт уже как банки, закрывая операционный день и т.п.. А сервисные компании ведут учёт по РСБУ в соответствии с требованиями Минфина.

Нам нужно было собрать все эти «разношёрстные» учетные данные и свести в единую модель, чтобы сформировать консолидированную внешнюю отчетность по международным стандартам (МСФО). Добывать информацию приходилось из очень разных источников. Как мы это делали — читайте дальше.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 586
Комментарии 2

Имитационное моделирование в фарминдустрии: кейсы зарубежных компаний

Анализ и проектирование систем *Бизнес-модели
Из песочницы

Имитационное моделирование в фарминдустрии: кейсы зарубежных фармкомпаний на платформе AnyLogic.

Цифровизация компаний фарминдустрии в России стремительно набирает обороты.  Один из ее основных трендов — имитационное моделирование бизнес-процессов. Западные фармкомпании успешно используют его в своей работе в противовес осторожному отечественному фармацевтическому рынку. Разберемся в причинах и перспективах данного направления. Использование в бизнесе компьютерного моделирования определяется дороговизной или длительностью проведения экспериментов на реальной системе. Имитационное же моделирование отличается от физического, компьютерными технологиями с использованием алгоритмов и уравнений. Имитационная модель позволяет просматривать анимацию в 2D- или 3D- формат, проводить аналитику в динамике, что невозможно в других случаях, например, при использовании Excel или линейного программирования. Для наиболее эффективного анализа работы системы и оперативного решения поставленной задачи пользователь изучает процессы и вносит изменения в имитационную модель непосредственно в ходе работы в удобном режиме, благодаря наглядности, простоте понимания и проверки.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 805
Комментарии 0

Устойчивость JS-кода к изменениям

JavaScript *Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *

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


В этой публикации я пытаюсь поразмышлять на следующие вопросы: из каких элементов состоит JavaScript-код? каким образом эти элементы взаимодействуют друг с другом? можно ли как-то повысить устойчивость кода к изменениям?

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 2.9K
Комментарии 2

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

Блог компании Pixonic Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *

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

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

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

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

В воздухе чувствовалось нарастающее напряжение. Руководитель заговорил, и я почувствовал себя, словно на гильотине. 

Произошло действительно страшное: мне предстояло путешествие по удивительному миру legacy-кода в старом корпоративном сервисе.

Читать далее
Всего голосов 30: ↑25 и ↓5 +20
Просмотры 6K
Комментарии 12

Соседняя очередь всегда движется быстрее

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Анализ и проектирование систем *Клиентская оптимизация *Tarantool *

Вы не используете очередь? Вы просто не умеете её готовить. Но прежде чем этому научиться, нужно разобраться, что это вообще такое и где это применяется. Потому что большинству достаточно 10 000 запросов в секунду, а это дает любой брокер. Но если вам нужно больше, придется погрузиться в очереди достаточно глубоко.

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

Читать далее
Всего голосов 45: ↑44 и ↓1 +43
Просмотры 7.1K
Комментарии 1

3. Частотные характеристики звеньев и систем автоматического управления. 3.9 Изодромное звено (изодром)

Анализ и проектирование систем *Математика *Промышленное программирование *Matlab *Визуальное программирование *
Tutorial

Лекции по курсу «Управление Техническими Системами» читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки» факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность!

Данные лекции готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика приветствуется. В предыдущих сериях:

1. Введение в теорию автоматического управления.
2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13.
3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ РЕГУЛИРОВАНИЯ.
3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ.
3.2. Типовые звенья систем автоматического управления регулирования. Классификация типовых звеньев. Простейшие типовые звенья.
3.3. Апериодическое звено 1–го порядка инерционноезвено. На примере входной камеры ядерного реактора
3.4. Апериодическое звено 2-го порядка
3.5. Колебательное звено
3.6. Инерционно-дифференцирующее звено
3.7. Форсирующее звено
3.8. Инерционно-интегрирующее звено (интегрирующее звено с замедлением).

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

А так же узнаем что такое "астатизм" и почему это не лечится.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.7K
Комментарии 32

Построение архитектуры проекта при работе с PySpark

Блог компании X5 Group Python *Анализ и проектирование систем *Big Data *Data Engineering *

В настоящее время уже сложно найти крупную компанию, которая не использовала бы возможности накопления и использования больших данных. Меня зовут Никита Сурков и я работаю в проекте ценообразования "Пятёрочки" X5 Group. Проект является ярким примером использования больших данных, так как Пятёрочка -- это 18000 магазинов по всей стране. Чтобы построить систему ценообразования в такой сети требуется обработка миллиардов строк информации из чеков, данных по остаткам, себестоимостей и многих других данных. Для всего этого преимущественно используется PySpark, как один из популярных инструментов для работы с расперделёнными системами. В данной статье будет представлен один из методов написания кода на PySpark таким образом, чтобы он был более читаем, легко тестируем и поддерживаем. Сразу оговорюсь, что не представляю здесь единственное правильное решение, но оно доказало свою жизнеспособность на примере того проекта, в котором я работал.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 1.9K
Комментарии 9

Типичные ошибки архитектора, или Как перестать бояться и полюбить RFC

Блог компании Dodo Engineering Анализ и проектирование систем *Управление разработкой *Управление проектами *Читальный зал

Всем привет! С вами Женя, разработчик Dodo Engineering и один из ведущих подкаста «Читаем вместе». Он посвящен IT-книгам. В каждом сезоне мы планируем читать и разбирать одну книгу. Уже подходит к концу первый сезон, который мы посвятили книге Fundamentals of Software Architecture. Она написана архитекторами для архитекторов, но разработчикам, особенно тем, которые интересуются, как создавать работающие системы, тоже может быть очень интересна и полезна.

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

Не можете найти концов, почему было принято то или иное решение? Рассказываете коллегам по сто раз одно и то же? Обсуждения в мессенджерах превращаются в срачи на десятки сообщений?

Знакомо? Нам тоже. Но мы смогли победить эти проблемы.

Под катом выжимка из главы и нашего выпуска, а также практический опыт Dodo Engineering, как правильно оформлять и хранить архитектурные решения.

Читать далее
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 6.1K
Комментарии 5

Архитект Проггер и кабинет приемной комиссии

PostgreSQL *Анализ и проектирование систем *Администрирование баз данных *Микросервисы *

Этим летом абитуриентам было жарко, МГУ по проходному баллу почти превратился в ПТУ, а кто-то успешно поступил в вооруженные силы РФ, сам того не желая. Отсутствие автоматизации в 2021 году, способной обработать распределение абитуриентов по учебным заведениям, а так же необходимость написать продолжение предыдущей статьи, описывающей основы теории о Распределенной Авторизации (РА) побудило решить эту детскую задачу автоматизации. Посмотрим, сколько же рпс нам в этом раз отсыпет антилопа.

Шалить нельзя думать
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.7K
Комментарии 11

Код без багов и сломанное авто: как мы нетривиально проверяли Заправки 2ГИС

Блог компании 2ГИС Программирование *Анализ и проектирование систем *Разработка мобильных приложений *Управление разработкой *

Машина кружит по заправочной станции на окраине Питера. Подъезжает к колонке, доливает пару литров, отъезжает в парковочный карман, стоит минуту — и всё повторяется снова.

Разомлевший на жаре (на улице июньские 34 градуса!) заправщик у соседней колонки лениво смотрит на происходящее. Кажется, его не удивляет, что два человека в салоне с ноутбуками постоянно что-то кричат третьему — и тот как будто делает всё по команде. Есть ещё один, четвёртый — он бегает и снимает это на телефон.

Но после третьего круга не выдерживает оператор на кассе. «Двенадцатая колонка, оплачивать будете?» — доносится из динамика.

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

Читать далее
Всего голосов 45: ↑45 и ↓0 +45
Просмотры 7.4K
Комментарии 42

На шаг ближе к Open Banking с WSO2 API Manager

Блог компании Росбанк Информационная безопасность *Анализ и проектирование систем *API *

Привет! Меня зовут Сергей Кривонос, я Solution Architect платформы WSO2 в Росбанке. Если вкратце, то WSO2 API Manager — это комплексная, интуитивно понятная и масштабируемая платформа, предназначенная для создания и управления API. Она примечательная тем, что является опенсорсной при сопоставимой с энтерпрайз-решениями функциональности. В статье я немного расскажу о самой платформе и поделюсь опытом Росбанка в работе с продуктами WSO2 — в целом, весьма позитивным.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.7K
Комментарии 10

Java.  The composite pattern on Game Server

Java *Анализ и проектирование систем *Разработка игр *Дизайн игр *Софт

Паттерн Компоновщик - так же известен как Дерево, Composite.

Суть паттерна

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

Проблема

Использование шаблона Composite имеет смысл только тогда, когда базовая модель вашего приложения может быть представлена в виде дерева.

Например, представьте, что у вас есть два типа объектов: конфигурация награды и конфигурация сундука. Сундук может содержать несколько Наград, а также несколько Сундуков меньшего размера. Эти маленькие сундуки также могут содержать некоторые награды или даже сундуки меньшего размера и т. Д.

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

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

Читать далее о паттерне Компановщик
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.7K
Комментарии 0

Kubernetes и моделирование на minizinc

Системное администрирование *Программирование *Анализ и проектирование систем *
Tutorial

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 1.9K
Комментарии 25

Архитектор решения / инжиниринг

Блог компании OTUS Анализ и проектирование систем *
Перевод

Я не трачу свое время на рассуждения о высоких концепциях; я трачу свое время на решение инженерных и производственных проблем".

- Илон Маск, главный инженер/конструктор SpaceX

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.5K
Комментарии 1

PlantUML — инструмент продуктового разработчика

Блог компании QIWI Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *UML Design *

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

С одной стороны, решение работающее. С другой, буквально через неделю-две я уже начинал сомневаться, достаточно точно ли я «перевел» с кода на русский язык? И тогда вспомнил про UML-диаграммы. И вместо того, чтобы записывать текст, стал визуализировать его и исписал неимоверное количество тетрадей. 

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

Давайте вспомним, что такое Unified Modeling Language. Чаще всего в университете UML используется для описания диаграммы классов.

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 5.4K
Комментарии 18

Построение простого flow в IBM App Connect (Integration Bus)

Анализ и проектирование систем *XML *
Из песочницы

Make legacy great again.

Когда я только начинал работать на IBM Integration Bus, руководств по построению приложений я толком найти не мог, тем более на русском, в том числе и на Хабре. Пора это исправлять. Наша цель - построить простой сервис, который на вход будет принимать JSON с одной цифрой и возвращать её инкремент. Данное руководство работает как в десятой версии интеграционной шины, так и в одиннадцатой.

Читать далее
Рейтинг 0
Просмотры 437
Комментарии 4

Как мы искали экспериментальный полигон для свежих идей и разработали новую торговую платформу

Блог компании Московская Биржа Высокая производительность *Анализ и проектирование систем *IT-инфраструктура *Управление продуктом *

Биржевая ИТ-инфраструктура исторически включает в себя несколько торговых платформ. Три года назад мы создали еще одну. Зачем было инициировать новую разработку при многообразии существующих систем? Рассказывают Александр Стриковский и Александра Кузнецова из Блока развития торгово-клиринговых систем.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 771
Комментарии 0

Умный аналитик – глупый разработчик vs. глупый аналитик – умный разработчик

Анализ и проектирование систем *Управление разработкой *

Или как понять, когда остановиться

Как-то раз мой коллега, лид разработки, после затяжного спора о том, что должно быть в системной спецификации, подошел ко мне и спросил:

— Скажи, а зачем нам вообще нужны аналитики?

— И действительно, зачем? – подумал тогда я и написал заявление

Вопрос этот, как бы крамольно он ни звучал, очень правильный. Системный анализ, как фаза разработки приложения, присутствует всегда (даже если это системы класса «Hello, world»), а вот системный аналитик, как выделенная роль – нет. Выделение отдельной специальной роли работает точно так же, как и разделение труда в обычном производстве: для маленьких задач не целесообразно, для больших задач – оправданно. При таком разделении  системный аналитик забирает на себя часть задач и функций некоего «универсального» исполнителя задачи. Однако, подобное разделение труда имеет свою цену: это потеря знаний при коммуникации, более сложное управление процессом и др. В этой статье я хочу поделиться своим опытом: описать минусы крайностей и дать рекомендации по распределению обязанностей между системными аналитиками и разработчиками.

Итак, нам нужен системный аналитик, который формирует требования и разработчик, который эти требования реализует в коде.

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

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

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 9.2K
Комментарии 24

18 сентября — One Day Offer для системных аналитиков

Блог компании Альфа-Банк Анализ и проектирование систем *Карьера в IT-индустрии

Привет!

Мы продолжаем проводить One Day Offer, в эту субботу на очереди системные аналитики.

Мы ждём тех, кто хотел бы заниматься этим делом в крупнейшем частном банке страны. Так как это ускоренная процедура, есть ряд ограничений — например, мы рассматриваем только специалистов уровней middle и senior.

От желающих получить оффер за сутки мы будем ждать вот этого набора навыков:

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 2K
Комментарии 4

Вклад авторов