Если вы иногда задаете себе вопрос: «а всё ли хорошо мне в этот метод приходит?» и выбираете между «а вдруг пронесет» и «лучше на всякий случай проверить», то добро пожаловать под кат… Читать полностью »
Рубрика «Анализ и проектирование систем» - 27
Что не так с валидацией данных и при чем тут принцип подстановки Лисков?
2019-11-17 в 20:43, admin, рубрики: Анализ и проектирование систем, объектно-ориентированный дизайн, ооп, Программирование, Проектирование и рефакторинг, проектирование системАрхитектура компьютерных систем 1 часть. Логические вентили
2019-11-16 в 13:41, admin, рубрики: Go, golang, Анализ и проектирование систем, архитектура компьютера, булева логика, Компьютерное железо, логические вентили, ПрограммированиеЛогические элементы
Доброго времени суток, я начинаю серию статей по написанию виртуальной машины на языке Golang. Я выбрал этот язык так как он прост для чтения и имеет в стандартной библиотеке уже необходимые функции, которые пригодятся в дальнейшем.
Эта статья не несёт в себе абсолютно никакой новой информации для тех, кто умеет составлять таблицы истинности для простых логических вентилей. Если вы это умеете, то не тратьте время и переходите ко второй части.
Читать полностью »
22 ноября, Москва — AnalyzeIT MeetUp №3
2019-11-14 в 9:28, admin, рубрики: AnalyzeIT, Альфа-Банк, Анализ и проектирование систем, аналитика, конференции, системный анализ, Управление продуктомПривет!
Как понятно из названия, у нас опять митап для системных аналитиков. Всё как обычно, вход бесплатный по предварительной регистрации, четыре наших спикера и бургеры.
Кратко:
- Про нашу Школу системного анализа.
- Ликбез по профессии аналитика.
- Confluence — упорядочиваем документы.
- Измеряем soft skills идеального кандидата на собеседовании.
А теперь подробнее.
Читать полностью »
Неопределённая параметризация как универсальный метод построения архитектуры приложения на C++ и Java за минимальн. цену
2019-11-10 в 22:09, admin, рубрики: c++, java, Анализ и проектирование систем, архитектура приложений, ооп, параметризация кода, паттерны приложений, Проектирование и рефакторинг, статическая параметризация, шаблоны c++, шаблоны проектированияC++ — язык запутанный, и существенным его недостатком является сложность создания изолированных блоков кода. В типовом проекте всё зависит от всего. Эта статья показывает, как писать высокоизолированный код, который минимально зависит от конкретных библиотек (включая стандартные), имплементаций, сведя зависимость любого куска кода к набору интерфейсов. Помимо этого будут предложены архитектурные решения по параметризации кода, которые могут заинтересовать не только программистов на C++, но и программистов на Java. И что важно, предложенное решение весьма экономично по времени разработки.
Читать полностью »
Кризис DDD сообщества
2019-11-03 в 10:22, admin, рубрики: .net, comunity, DDD, dotnext, Анализ и проектирование систем, Проектирование и рефакторингГод назад Максим Аршинов (marshinov) выступил с докладом "Быстрорастворимое проектирование". Отличный доклад, харизматичный спикер, полезные материалы в конце. Этот доклад изменил моё понимание того что я делал — кто из нас не пытался интуитивно применить pipeline-архитектуру? А тут ещё элегантные решения помноженные на DDD! С этого начался мой путь евангелиста предметно-ориентированного проектирования.
Скоро DotNext 2019 Moscow. Как всегда, ждём обзора новых фичей, обмена опытом, best practies, архитектурных решений — за это мы все и любим конференции. В списке докладов вокшоп "Блеск и нищета предметной модели", который обратил моё внимание. Цитата со страницы:
Фаулер и Эванс считают анемичную модель антипаттерном. Однако многие кодовые базы, с которыми доводилось работать спикеру, реализованы в стиле «анемичной» модели. Доклад посвящен сравнению сильных и слабых сторон обоих подходов и не очевидным деталям реализации модели предметной области в парадигме ООП и в функциональном стиле.
Сама постановка заставляет задуматься о том, что в развитии DDD движения наметился кризис. Небольшой разбор дисфункций использования и причинах подобных перекосов под катом.
Архитектура проекта или какие компоненты должны присутствовать. Часть 1. PHP
2019-11-02 в 17:38, admin, рубрики: php, Анализ и проектирование систем, оопПредисловие
За всё время работы программистом, я сталкивался с различными задачами по доработке сайтов. И отметил одно: функций много, по разных файлам разбросанно, общей картины пространства имён не видно, где то (например в yii) нужно ещё инициировать проект, чтобы через phpmyadmin увидеть актуальные таблицы… я не говорю уже о контроле созданного проекта, который не централизован вовсе (if,elseif где попало). А перевод на git технологии перевёл код на уровень: построили из того что было под рукой.
Не желавши такого, совсем, тянувшись к геометрии и балансу, я начал восстанавливать исконный подход к программированию, да так, чтобы можно было легко сдать сайт другому программисту на доработку, со всем необходимым.
Читать полностью »
Как я пришел к формальной спецификации RISC-V процессора на F#
2019-11-01 в 13:43, admin, рубрики: .net, .net core, cpu, F#, formal specification, github, risc-v, Анализ и проектирование систем, Процессоры, функциональное программированиеТомными зимними вечерами, когда солнце лениво пробегало сквозь пелену дней — я нашел в себе силы заняться реализацией давней мечты: разобраться как же устроены процессоры. Эта мечта привела меня к написанию формально спецификации RISC-V процессора. Проект на Github
Расставляем стандартные ячейки (заметки постороннего)
2019-10-31 в 15:18, admin, рубрики: CAD/CAM, Hilbert, Алгоритмы, Анализ и проектирование систем, Производство и разработка электроники
Натолкнувшись на статью “Уничтожим монополию …”, автор, как человек пусть от EDA очень далёкий, но от природы любознательный, не поленился пройтись по ссылкам и невольно поймал себя на мысли, что одно из основных технических решений — использование рядов стандартных ячеек (standard cell layout) — выглядит довольно спорно.
Да, такое расположение интуитивно понятно, ведь мы пишем и читаем похожим образом, кроме того, технологически просто располагать ячейки именно рядами, так удобно стыковать шины VDD и GND. С другой стороны, при этом возникает непростая комбинаторная задача, требуется разрезать схему на линейные куски и расположить эти куски таким образом, чтобы (грубо) минимизировать общую длину соединений.
И конечно же возник вопрос, нет ли альтернативных решений, … вот что если …
Читать полностью »
Как построить бизнес-технологию планирования продаж в единой системе
2019-10-30 в 12:36, admin, рубрики: big data, Business Intelligence, Анализ и проектирование систем, машинное обучение, планирование, управление запасами, управление проектами, хранилища данныхВ данной статье я бы хотел поделиться опытом построения системы планирования продаж и рассказать о практических шагах по ее внедрению.
Проблема разрозненного планирования
Зачастую в компаниях складывается следующая ситуация: У каждого подразделения возникает своя, уникальная версия плана продаж. Такие планы используют в работе, например, отделы маркетинга, продаж, финансисты и логистика.
Эти планы имеют разные формат, разную степень детализации, и, что самое важное, разные и противоречащие друг другу цифры.
Возникает закономерный вопрос, как выстроить в компании систему интегрированного планирования и что для этого нужно.
Выстраивание бизнес-процесса
Думаю важно подходить к вопросу с позиции создания отлаженной бизнес-технологии.
Как правило, планирование является регулярным процессом (часто ежемесячным или еженедельным), при котором происходит согласование и корректировка плана продаж и взаимосвязанных планов (например, поставок и производства).
(Часто используют термины: S&OP — Sales and Operations Planning, IBP — Integrated Business Planning).
В процессе планирования должны быть четко определены участники и их роли, конкретные задачи и сроки. Например, продавцы предоставляют планы клиентов (или каналов). Маркетинг проверяет ассортимент и сообщает о новинках и т.д.
Читать полностью »
Основы DevOps. Вхождение в проект с нуля
2019-10-30 в 8:42, admin, рубрики: devops, devopsconf, KPI, Анализ и проектирование систем, Блог компании Конференции Олега Бунина (Онтико), инфраструктура, системное администрированиеВ ноябре 2018 года в ЛитРес создали отдел информационного обеспечения и пригласили руководить Андрея Юмашева. Последний год отдел помогает компании работать и развиваться и держит под контролем всю инфраструктуру. Но так было не всегда. Перед тем, как наладить работу, Андрей столкнулся с руинами: полуживой Nagios, условно живой Cacti и коматозный Puppet, мертвая Вики на 120 страниц, несвязные таблицы с задачами и списком железа, устаревшая архитектура, 340 бездействующих ядер, 2 Тбайта оперативной памяти и 17 Тбайт дискового пространства, которые почему-то не были записаны в инвентарных таблицах. Планы, которые не работают, сроки, которые срываются, рабочее окружение и инструменты, которых нет — все это ждало Андрея в новом проекте.
На DevOpsConf 2019 Андрей выступил с докладом, в котором на живых примерах показал, что стоит, а что не стоит делать, когда входишь в проект, которого еще не видел или плохо знаешь. Под катом дополненная версия рассказа — как правильно анализировать спектр проблем и выстроить план деятельности, как правильно рассчитать KPI и когда следует вовремя остановиться.
Читать полностью »