В продолжении предыдущей публикации по теме Domain Driven Design, где Николай Гребнёв последовательно свёл тему проектирования при помощи DDD к необходимости использования языка предметной области, — в данной публикации будет обсуждаться практика проектирования и разработки как самих языков, так и программирование на них (опыт компании JetBrains).
Как и обещал, начинаю выкладывать вторую часть «методички». В этом фрагменте общие принципы и подходы, на которые я опираюсь во всех дальнейших размышлениях и выводах. Построение эффективных бизнес-систем. Глава 1: Введение
В прототипной модели данных объекты создаются на основе других объектов. В этом случае у объекта имеется прототип, его ещё можно назвать эталоном или наследуемым объектом. В такой модели данных отсутствуют типы и классы. Объекты можно различать по тому, кого прототипируют, но эта задача второстепенная. Прототипирование, в первую очередь, применяется для повторного использования существующих структур из объектов.
В этой статье я не буду касаться технических вопросов и не приведу примеров кода. Эта статья призвана дать понятие, что такое Rule Engine, для чего эта штука и что она умеет. Если вас заинтересует такой подход к построению систем, то вы без проблем найдете Rule Engine на ваш вкус и цвет.
Итак, зачем же эта штука нужна. Возьмем какое нибудь предприятие, которое живет в весьма быстром ритме. Например один из крупнейших аэропортов, где каждые несколько минут происходит посадка или взлет.
Вопросы и ответы
Задайте себе вопросы:
Кто, как и на основании чего решает, в каком порядке самолеты садятся и взлетают?
Какова может быть цена неверного решения?
Второй вопрос проще, поэтому ответим сначала на него. Минимальная цена это несколько десятков тысяч евро, а вот максимальная несколько сотен человеческих жизней. А теперь к первому вопросу.
Итак, кто? Ответ: в большинстве случаев люди. Не без помощи компьютеров конечно, но все таки люди. Теперь вопрос: как? Есть список возможных вариантов, человек из них выбирает. Вариантов дается немного, поэтому в принципе особых мук выбора нет. И последний вопрос: на основании чего? Есть правила, их нужно придерживаться и по возможности выполнять. Например, задержка вылета более чем на полчаса весьма нежелательна. Ну и главный вопрос: а причем тут Rule Engine?
Есть такая конференция ADD (Application Developer Days) на которой любят всякие архитектурные штуки для разработки ПО обсуждать, обычно эти штуки заканчиваются тоже на xDD — DDD, TDD, MDD и т.д.
Вот к примеру на прошлой конференции задались вопросом, а что такое DDD (Domain Driven Design)?
А Николай Гребнев из CUSTIS — встал и ответил.
Готовя очередную Служебную записку своему руководителю, я немного перестарался. Служебка вышла на 30 страниц с таблицами, схемами и графиками. Озаглавлен этот документ «Как создать в компании эффективную систему». Кому-то это может показаться банальным и неинтересным, но многие, мне кажется, смогут найти в этом что-то полезное для себя или своего бизнеса.
В предыдущей статье я рассказал о том, почему считаю неэффективной разработку с применением Content Management System. В этой статье, я расскажу о том, какой подход использую в построении веб-приложений.
После того, как суперкомпьютер Watson победил двух бессменных чемпионов американской интеллектуальной игры Jeopardy! и начал работать в сфере здравоохранения не только со страховыми компаниями, но и с научно-исследовательскими лабораториями по всему миру, ему нашлось еще одно применение — в этот раз в банковской сфере.
IBM и один из крупнейших финансовых институтов мира — Citibank, договорились о том, что Watson будет обрабатывать неструктурированные финансовые данные компании для того, чтобы лучше управлять рисками, а также анализировать пожелания клиентов банка, с целью выстраивания наиболее современной и продвинутой системы электронного банкинга.
Что делать, если разработка ТЗ не самого сложного проекта занимает пару месяцев? Какие шаги при разработке ТЗ могут уберечь от рисков и ошибок? В данной статье мы рассмотрим проблему не содержания документа, а методологию его разработки.