SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
11 апреля 2015 года
Практика применения
Enterprise Architect и T4-шаблонов
для разработки системы
на Microsoft SQL Server
Павел Музыка
Технический лидер, группа компаний CUSTIS
О себе
 В промышленной разработке
с 2005 года
 В CUSTIS c февраля 2012 года
 Специализируюсь на создании
Desktop-приложений
 Сертифицированный разработчик
.NET, MS SQL, WinForms и WPF
2/30
О компании
Проектирование
и заказная разработка
систем Enterprise-
масштаба
Для крупных банков,
торговых сетей,
предприятий госсектора
Oracle + Java
Oracle + C#,
Desktop-приложения
на WinForms и WPF
3/30
План
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
4/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
5/30
Реальная задача
 Система в Microsoft SQL Server 2008 R2
 …полностью
 Три внешних источника данных
 …после полугода разработки появился
четвертый
 Математически сложные алгоритмы
обработки данных внутри системы
 Ежедневное формирование отчетов
 Адаптация к существующей системе
автоформ
6/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
7/30
Слагаемые успеха. Процессы
 Model First + кодогенерация
 Автотесты для базы данных
 Доработки и исправления
в стиле TDD
 Continuous Integration +
Delivery = выпуск версии
занимает 10 минут
8/30
Слагаемые успеха. Инструменты
 Enterprise Architect для Model First
 Шаблоны T4:
 Отделение инфраструктуры от логики
 Дешевое внесение изменений
в инфраструктуру
 Удобная навигация по исходному коду
 Excel для подготовки тестовых данных
аналитиком
 + =
9/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
10/30
Model First
Трансформация
Физическая модельЛогическая модель
11/30
Model First
Трансформация
Физическая модель
Magic
Логическая модель
11/30
 Enterprise Architect как инструмент
моделирования
 Множество нотаций и представлений
 Трансформация представлений
 Генерация DDL-скриптов
 Хранение моделей в Subversion
или в базе данных + версионирование
 Возможность писать плагины
12/30
Тюнинг Enterprise Architect
Трансформация
Физическая модель
Magic
Логическая модель
13/30
Доработка трансформации
 Создание колонок для первичного
и внешнего ключей, констрейнтов
 Создание фискальных и служебных
колонок для всех таблиц
 Трансформация перечислений
как особый вид трансформации
14/30
Magic
Magic
Тюнинг Enterprise Architect – 2
Физическая модель
15/30
Плагин для Enterprise Architect
 Генерация вспомогательных классов
для поддержки IntelliSense в T4-шаблонах
 Генерация перечислений
для перечислений
16/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
17/30
Шаблоны T4
 T4 = Text Template Transformation Toolkit
 Файл с расширением *.tt или *.ttinclude
 Встроенный в Visual Studio
(начиная с 2008) движок кодогенерации
 Позволяет писать логику шаблона на C#
или VB.NET
 Позволяет генерировать любой код
 Шаблоны могут быть переиспользуемыми
(наследование, включение)
18/30
Простейший шаблон T4
Шаблон T4
Результат
19/30
Пример с бизнес-правилами
 Выглядит как C#...
 …это и есть C#
 Отсутствуют инфраструктурные подробности
 Результат – сгенерированный фрагмент
хранимой процедуры
20/30
21/30
21/30
21/30
Перекладывание данных
 Полуавтоматический маппинг колонок
 Опять нет инфраструктурного кода
 Фокусировка только на бизнес-логике
 Результат – опять простыня SQL-кода
22/30
23/30
23/30
Использование констант
24/30
Использование констант
24/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
25/30
Автотесты
 Автотесты на C#
 Excel как источник эталонных данных
 Данные готовит аналитик
 Выполняются на сервере CI на каждый
коммит
 Smoke-тесты для публичного интерфейса
26/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integration + Delivery
27/30
Continuous Integration + Delivery
 Крупные коммиты (законченные блоки
функционала)
 TeamCity – сервер для процессов CI и CD
 На каждый коммит прогоняется пакет
автотестов
 После каждого удачного коммита система
готова к выпуску очередной версии
 PowerShell-скрипты для развертывания
версии
28/30
Основные ресурсы
 Enterprise Architect:
 Описание на официальном сайте
 Шаблоны T4:
 Architecture of Text Templates
 Oleg Sych Blog
 Q&A at stackoverflow.com
 Google Search
 Семинар про T4 (Реальная кодогенерация):
 Видео на vimeo
 Исходники на github
29/30
Спасибо за внимание!
Павел Музыка
pmuzyka@custis.ru
30/30

Contenu connexe

Tendances

DDD — эффективный способ работы в условиях системной сложности
DDD — эффективный способ работы в условиях системной сложностиDDD — эффективный способ работы в условиях системной сложности
DDD — эффективный способ работы в условиях системной сложностиCUSTIS
 
Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovMaxim Tsepkov
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUPSQALab
 
Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)Anton Konstantinov
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]Alex V. Petrov
 
Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?ngrebnev
 
DDD requirements AnalystDays-2014 Tsepkov
DDD requirements AnalystDays-2014 TsepkovDDD requirements AnalystDays-2014 Tsepkov
DDD requirements AnalystDays-2014 TsepkovMaxim Tsepkov
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системCUSTIS
 
ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]Alex V. Petrov
 
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...Alex V. Petrov
 
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...Alex V. Petrov
 
Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...Andrew Chuprina
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]Alex V. Petrov
 
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...DEVTYPE
 
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проектеОмские ИТ-субботники
 
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]Alex V. Petrov
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проектеLuxoftTraining
 

Tendances (20)

DDD — эффективный способ работы в условиях системной сложности
DDD — эффективный способ работы в условиях системной сложностиDDD — эффективный способ работы в условиях системной сложности
DDD — эффективный способ работы в условиях системной сложности
 
Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkov
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUP
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
SECON'2014 - Максим Цепков - DDD: от требований до кода
SECON'2014 - Максим Цепков - DDD: от требований до кодаSECON'2014 - Максим Цепков - DDD: от требований до кода
SECON'2014 - Максим Цепков - DDD: от требований до кода
 
Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
 
Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?
 
DDD requirements AnalystDays-2014 Tsepkov
DDD requirements AnalystDays-2014 TsepkovDDD requirements AnalystDays-2014 Tsepkov
DDD requirements AnalystDays-2014 Tsepkov
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных систем
 
ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]
 
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
 
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
 
Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
 
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
 
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
 
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проекте
 

Similaire à Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Практика применения Enterprise Architect и T4-шаблонов для разработки системы...
Практика применения Enterprise Architect и T4-шаблонов для разработки системы...Практика применения Enterprise Architect и T4-шаблонов для разработки системы...
Практика применения Enterprise Architect и T4-шаблонов для разработки системы...GoSharp
 
Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Sergey Orlik
 
Software People 2010
Software People 2010Software People 2010
Software People 2010Sergey Orlik
 
Редактор-симулятор бизнес процессов TUTO. МедиуМ
Редактор-симулятор бизнес процессов TUTO. МедиуМРедактор-симулятор бизнес процессов TUTO. МедиуМ
Редактор-симулятор бизнес процессов TUTO. МедиуМСообщество eLearning PRO
 
TUTO Active Process
TUTO Active ProcessTUTO Active Process
TUTO Active ProcessVikiviki1
 
ПО Vertex для всего цикла ЛСТК бизнеса
ПО Vertex для всего цикла ЛСТК бизнесаПО Vertex для всего цикла ЛСТК бизнеса
ПО Vertex для всего цикла ЛСТК бизнесаVertex Systems Россия
 
Laf2014 тренды в бизнес и системном анализе
Laf2014 тренды в бизнес и системном анализеLaf2014 тренды в бизнес и системном анализе
Laf2014 тренды в бизнес и системном анализеDmitry Bezuglyy
 
О.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделированииО.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделированииAnatoly Levenchuk
 
Процессы управления ИТ-архитектурой организации
 Процессы управления ИТ-архитектурой организации Процессы управления ИТ-архитектурой организации
Процессы управления ИТ-архитектурой организацииAlexander Tsimbalistov
 
Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...
Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...
Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...SQALab
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Alexander Babich
 
Ddd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovDdd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovMaxim Tsepkov
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoftKewpaN
 
Собираем кубик Рубика
Собираем кубик РубикаСобираем кубик Рубика
Собираем кубик РубикаCEE-SEC(R)
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...CUSTIS
 
петров антон Short cv2
петров антон Short  cv2петров антон Short  cv2
петров антон Short cv2Anton Petrov
 
Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)
Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)
Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)Максим Смирнов
 

Similaire à Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server (20)

Практика применения Enterprise Architect и T4-шаблонов для разработки системы...
Практика применения Enterprise Architect и T4-шаблонов для разработки системы...Практика применения Enterprise Architect и T4-шаблонов для разработки системы...
Практика применения Enterprise Architect и T4-шаблонов для разработки системы...
 
Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010
 
Software People 2010
Software People 2010Software People 2010
Software People 2010
 
Редактор-симулятор бизнес процессов TUTO. МедиуМ
Редактор-симулятор бизнес процессов TUTO. МедиуМРедактор-симулятор бизнес процессов TUTO. МедиуМ
Редактор-симулятор бизнес процессов TUTO. МедиуМ
 
TUTO Active Process
TUTO Active ProcessTUTO Active Process
TUTO Active Process
 
ПО Vertex для всего цикла ЛСТК бизнеса
ПО Vertex для всего цикла ЛСТК бизнесаПО Vertex для всего цикла ЛСТК бизнеса
ПО Vertex для всего цикла ЛСТК бизнеса
 
Laf2014 тренды в бизнес и системном анализе
Laf2014 тренды в бизнес и системном анализеLaf2014 тренды в бизнес и системном анализе
Laf2014 тренды в бизнес и системном анализе
 
ppt
pptppt
ppt
 
DocTrix Platform 2010/2013
DocTrix Platform 2010/2013DocTrix Platform 2010/2013
DocTrix Platform 2010/2013
 
О.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделированииО.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделировании
 
Процессы управления ИТ-архитектурой организации
 Процессы управления ИТ-архитектурой организации Процессы управления ИТ-архитектурой организации
Процессы управления ИТ-архитектурой организации
 
CV Boganov 02-2016
CV Boganov 02-2016CV Boganov 02-2016
CV Boganov 02-2016
 
Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...
Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...
Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля ка...
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
Ddd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovDdd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkov
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
 
Собираем кубик Рубика
Собираем кубик РубикаСобираем кубик Рубика
Собираем кубик Рубика
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
 
петров антон Short cv2
петров антон Short  cv2петров антон Short  cv2
петров антон Short cv2
 
Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)
Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)
Вебинар: Архитектура в ИТ-проектах (IT Expert 28 апреля 2016)
 

Plus de CUSTIS

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseCUSTIS
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеCUSTIS
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямCUSTIS
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...CUSTIS
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиCUSTIS
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииCUSTIS
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеCUSTIS
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?CUSTIS
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектурыCUSTIS
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисовCUSTIS
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымCUSTIS
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...CUSTIS
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыCUSTIS
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахCUSTIS
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net PerformanceCUSTIS
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьCUSTIS
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыCUSTIS
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетCUSTIS
 
Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...CUSTIS
 
RBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступаRBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступаCUSTIS
 

Plus de CUSTIS (20)

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для Enterprise
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейле
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациям
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революции
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банке
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектуры
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисов
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульным
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net Performance
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектуры
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
 
Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...
 
RBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступаRBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступа
 

Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

  • 1. 11 апреля 2015 года Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server Павел Музыка Технический лидер, группа компаний CUSTIS
  • 2. О себе  В промышленной разработке с 2005 года  В CUSTIS c февраля 2012 года  Специализируюсь на создании Desktop-приложений  Сертифицированный разработчик .NET, MS SQL, WinForms и WPF 2/30
  • 3. О компании Проектирование и заказная разработка систем Enterprise- масштаба Для крупных банков, торговых сетей, предприятий госсектора Oracle + Java Oracle + C#, Desktop-приложения на WinForms и WPF 3/30
  • 4. План  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 4/30
  • 5. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 5/30
  • 6. Реальная задача  Система в Microsoft SQL Server 2008 R2  …полностью  Три внешних источника данных  …после полугода разработки появился четвертый  Математически сложные алгоритмы обработки данных внутри системы  Ежедневное формирование отчетов  Адаптация к существующей системе автоформ 6/30
  • 7. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 7/30
  • 8. Слагаемые успеха. Процессы  Model First + кодогенерация  Автотесты для базы данных  Доработки и исправления в стиле TDD  Continuous Integration + Delivery = выпуск версии занимает 10 минут 8/30
  • 9. Слагаемые успеха. Инструменты  Enterprise Architect для Model First  Шаблоны T4:  Отделение инфраструктуры от логики  Дешевое внесение изменений в инфраструктуру  Удобная навигация по исходному коду  Excel для подготовки тестовых данных аналитиком  + = 9/30
  • 10. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 10/30
  • 13.  Enterprise Architect как инструмент моделирования  Множество нотаций и представлений  Трансформация представлений  Генерация DDL-скриптов  Хранение моделей в Subversion или в базе данных + версионирование  Возможность писать плагины 12/30
  • 14. Тюнинг Enterprise Architect Трансформация Физическая модель Magic Логическая модель 13/30
  • 15. Доработка трансформации  Создание колонок для первичного и внешнего ключей, констрейнтов  Создание фискальных и служебных колонок для всех таблиц  Трансформация перечислений как особый вид трансформации 14/30
  • 16. Magic Magic Тюнинг Enterprise Architect – 2 Физическая модель 15/30
  • 17. Плагин для Enterprise Architect  Генерация вспомогательных классов для поддержки IntelliSense в T4-шаблонах  Генерация перечислений для перечислений 16/30
  • 18. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 17/30
  • 19. Шаблоны T4  T4 = Text Template Transformation Toolkit  Файл с расширением *.tt или *.ttinclude  Встроенный в Visual Studio (начиная с 2008) движок кодогенерации  Позволяет писать логику шаблона на C# или VB.NET  Позволяет генерировать любой код  Шаблоны могут быть переиспользуемыми (наследование, включение) 18/30
  • 21. Пример с бизнес-правилами  Выглядит как C#...  …это и есть C#  Отсутствуют инфраструктурные подробности  Результат – сгенерированный фрагмент хранимой процедуры 20/30
  • 22. 21/30
  • 23. 21/30
  • 24. 21/30
  • 25. Перекладывание данных  Полуавтоматический маппинг колонок  Опять нет инфраструктурного кода  Фокусировка только на бизнес-логике  Результат – опять простыня SQL-кода 22/30
  • 26. 23/30
  • 27. 23/30
  • 30. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 25/30
  • 31. Автотесты  Автотесты на C#  Excel как источник эталонных данных  Данные готовит аналитик  Выполняются на сервере CI на каждый коммит  Smoke-тесты для публичного интерфейса 26/30
  • 32. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 27/30
  • 33. Continuous Integration + Delivery  Крупные коммиты (законченные блоки функционала)  TeamCity – сервер для процессов CI и CD  На каждый коммит прогоняется пакет автотестов  После каждого удачного коммита система готова к выпуску очередной версии  PowerShell-скрипты для развертывания версии 28/30
  • 34. Основные ресурсы  Enterprise Architect:  Описание на официальном сайте  Шаблоны T4:  Architecture of Text Templates  Oleg Sych Blog  Q&A at stackoverflow.com  Google Search  Семинар про T4 (Реальная кодогенерация):  Видео на vimeo  Исходники на github 29/30
  • 35. Спасибо за внимание! Павел Музыка pmuzyka@custis.ru 30/30