Рубрика «Анализ и проектирование систем» - 27

Привет!

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

22 ноября, Москва — AnalyzeIT MeetUp №3 - 1

Кратко:

  • Про нашу Школу системного анализа.
  • Ликбез по профессии аналитика.
  • Confluence — упорядочиваем документы.
  • Измеряем soft skills идеального кандидата на собеседовании.

А теперь подробнее.
Читать полностью »

C++ — язык запутанный, и существенным его недостатком является сложность создания изолированных блоков кода. В типовом проекте всё зависит от всего. Эта статья показывает, как писать высокоизолированный код, который минимально зависит от конкретных библиотек (включая стандартные), имплементаций, сведя зависимость любого куска кода к набору интерфейсов. Помимо этого будут предложены архитектурные решения по параметризации кода, которые могут заинтересовать не только программистов на C++, но и программистов на Java. И что важно, предложенное решение весьма экономично по времени разработки.
Читать полностью »

Год назад Максим Аршинов (marshinov) выступил с докладом "Быстрорастворимое проектирование". Отличный доклад, харизматичный спикер, полезные материалы в конце. Этот доклад изменил моё понимание того что я делал — кто из нас не пытался интуитивно применить pipeline-архитектуру? А тут ещё элегантные решения помноженные на DDD! С этого начался мой путь евангелиста предметно-ориентированного проектирования.

Скоро DotNext 2019 Moscow. Как всегда, ждём обзора новых фичей, обмена опытом, best practies, архитектурных решений — за это мы все и любим конференции. В списке докладов вокшоп "Блеск и нищета предметной модели", который обратил моё внимание. Цитата со страницы:

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

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

Читать полностью »

Предисловие

За всё время работы программистом, я сталкивался с различными задачами по доработке сайтов. И отметил одно: функций много, по разных файлам разбросанно, общей картины пространства имён не видно, где то (например в yii) нужно ещё инициировать проект, чтобы через phpmyadmin увидеть актуальные таблицы… я не говорю уже о контроле созданного проекта, который не централизован вовсе (if,elseif где попало). А перевод на git технологии перевёл код на уровень: построили из того что было под рукой.

Не желавши такого, совсем, тянувшись к геометрии и балансу, я начал восстанавливать исконный подход к программированию, да так, чтобы можно было легко сдать сайт другому программисту на доработку, со всем необходимым.
Читать полностью »

Томными зимними вечерами, когда солнце лениво пробегало сквозь пелену дней — я нашел в себе силы заняться реализацией давней мечты: разобраться как же устроены процессоры. Эта мечта привела меня к написанию формально спецификации RISC-V процессора. Проект на Github

imageЧитать полностью »

Расставляем стандартные ячейки (заметки постороннего) - 1

Натолкнувшись на статью “Уничтожим монополию …”, автор, как человек пусть от EDA очень далёкий, но от природы любознательный, не поленился пройтись по ссылкам и невольно поймал себя на мысли, что одно из основных технических решений — использование рядов стандартных ячеек (standard cell layout) — выглядит довольно спорно.

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

И конечно же возник вопрос, нет ли альтернативных решений, … вот что если …
Читать полностью »

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

Проблема разрозненного планирования

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

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

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

Выстраивание бизнес-процесса

Думаю важно подходить к вопросу с позиции создания отлаженной бизнес-технологии.

Как правило, планирование является регулярным процессом (часто ежемесячным или еженедельным), при котором происходит согласование и корректировка плана продаж и взаимосвязанных планов (например, поставок и производства).

(Часто используют термины: S&OP — Sales and Operations Planning, IBP — Integrated Business Planning).

В процессе планирования должны быть четко определены участники и их роли, конкретные задачи и сроки. Например, продавцы предоставляют планы клиентов (или каналов). Маркетинг проверяет ассортимент и сообщает о новинках и т.д.
Читать полностью »

В ноябре 2018 года в ЛитРес создали отдел информационного обеспечения и пригласили руководить Андрея Юмашева. Последний год отдел помогает компании работать и развиваться и держит под контролем всю инфраструктуру. Но так было не всегда. Перед тем, как наладить работу, Андрей столкнулся с руинами: полуживой Nagios, условно живой Cacti и коматозный Puppet, мертвая Вики на 120 страниц, несвязные таблицы с задачами и списком железа, устаревшая архитектура, 340 бездействующих ядер, 2 Тбайта оперативной памяти и 17 Тбайт дискового пространства, которые почему-то не были записаны в инвентарных таблицах. Планы, которые не работают, сроки, которые срываются, рабочее окружение и инструменты, которых нет — все это ждало Андрея в новом проекте.

Основы DevOps. Вхождение в проект с нуля - 1

На DevOpsConf 2019 Андрей выступил с докладом, в котором на живых примерах показал, что стоит, а что не стоит делать, когда входишь в проект, которого еще не видел или плохо знаешь. Под катом дополненная версия рассказа — как правильно анализировать спектр проблем и выстроить план деятельности, как правильно рассчитать KPI и когда следует вовремя остановиться.
Читать полностью »

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

image
Читать полностью »

Работа с ошибками в Go 1.13 - 1

В последнее десятилетие мы успешно пользовались тем, что Go обрабатывает ошибки как значения. Хотя в стандартной библиотеке была минимальная поддержка ошибок: лишь функции errors.New и fmt.Errorf, которые генерируют ошибку, содержащую только сообщение — встроенный интерфейс позволяет Go-программистам добавлять любую информацию. Нужен лишь тип, реализующий метод Error:

type QueryError struct {
    Query string
    Err   error
}

func (e *QueryError) Error() string { return e.Query + ": " + e.Err.Error() }

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js