Автоматизация бизнес-процессов: проектирование...

15
Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений Павел Спесивцев Ведущий разработчик 7 ноября 2012 года

description

Открытый семинар для студентов в компании custis (7 ноября 2012). Лектор: Павел Спесивцев, ведущий разработчик php. Аннотация: На семинаре будут рассмотрены особенности заключения бизнес-логики в эффективные структуры и алгоритмы, незыблемые, актуальные и набирающие обороты подходы к проектированию бизнес-приложений, а также выигрышные пути оптимизации высоконагруженных информационных систем. Вы узнаете, можно ли на пути к совершенству архитектуры решений обойти известные подводные камни и от чего можно застраховаться на этапе проектирования. Видеозапись семинара: https://vimeo.com/53314724

Transcript of Автоматизация бизнес-процессов: проектирование...

Page 1: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Павел Спесивцев Ведущий разработчик

7 ноября 2012 года

Page 2: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

I object to doing things that computers can do.

Olin Shivers

2/15

Page 3: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Цели Разработать подход к проектированию

IT-решений для бизнеса

Выявить критические абстракции

Обозначить наиболее важные аспекты цикла существования программного продукта

Разобраться, что такое «бизнес-логика» и что о ней надо знать разработчику

3/15

Page 4: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Бизнес-«нелогика»

Идея!

4/15

Page 5: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Задачи IT через призму бизнеса Нет полного видения модели предметной

области в перспективе, даже если все уверены в обратном

Сервисные задачи не интересуют «бизнес-логику»

Сделать «это» очень просто!

«Это» нужно вчера

5/15

Page 6: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Эра «стартапов» Поиск надежной бизнес-модели, НИОКР

в области интернет-рынков

Быстрый рост на начальных инвестициях

Быстрое падение

«Патентный троллинг»

Слияние и поглощение

6/15

Page 7: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Предел гибкости Переусложнение неизбежно?

Что забыли учесть?

Закон Завинского

Что потеряет проект в ближайший месяц, если не сможет читать почту завтра?

7/15

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

Page 8: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Предел сложности решений Насколько интенсивно будет меняться

продукт в ближайшее время?

Какова квалификация вовлеченной группы разработчиков?

Сколько времени понадобится разработчику с опытом от трех лет, чтобы погрузиться в проект?

8/15

Page 9: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Предел масштабируемости Будем ли мы продавать услуги клиентам

из соседних галактик?

Сделаем все многопоточным?

Что тяжелее – вычисления или данные?

RDBMS vs NoSQL

9/15

Page 10: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Инструмент для задачи, а не задача для инструмента (маркетинговые ловушки) Западня универсальных систем

(«миллионы мух не могут ошибаться»)

Насколько готовое решение решает задачи ближайших 6 месяцев?

Какова стоимость результатов работы ближайших 6 месяцев?

Риски vs страховка

10/15

Page 11: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Без чего жить программировать нельзя Логов много не бывает

Простота интеграции и миграции – не путать с легкостью переключения на другие СУБД (насколько нужна последняя?)

Ввода/вывода мало не бывает

Кэш и его инвалидация

Насколько просто это тестировать?

11/15

Page 12: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Перманентный рефакторинг

рабочий прототип

элегантное решение оптимизация

12/15

Page 13: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

О чем можно забыть и потом сильно пожалеть Отказоустойчивость и устойчивость к взлому Простота диагностики «Ломка» при смене ключевых разработчиков

(«Кто это писал?») Эффективность одновременной работы

большого числа людей над общим проектом Степень надежности проноса новых версий Инкапсуляция (неинкапсулированные решения

влекут затратный и болезненный рефакторинг) 13/15

Page 14: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Эффективность кода

DRY!

Документация

Эксплуатация общепризнанных паттернов (только достоверно необходимых для конкретной задачи абстракции)

Экономия «на спичках»

Единый согласованный стиль кода и абстракций для всех участников команды

14/15

Page 15: Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений

Спасибо! Вопросы?

Павел Спесивцев [email protected]

15/15