View
206
Download
4
Category
Preview:
DESCRIPTION
Открытый семинар для студентов в компании custis (7 ноября 2012). Лектор: Павел Спесивцев, ведущий разработчик php. Аннотация: На семинаре будут рассмотрены особенности заключения бизнес-логики в эффективные структуры и алгоритмы, незыблемые, актуальные и набирающие обороты подходы к проектированию бизнес-приложений, а также выигрышные пути оптимизации высоконагруженных информационных систем. Вы узнаете, можно ли на пути к совершенству архитектуры решений обойти известные подводные камни и от чего можно застраховаться на этапе проектирования. Видеозапись семинара: https://vimeo.com/53314724
Citation preview
Автоматизация бизнес-процессов: проектирование архитектуры конкурентных решений
Павел Спесивцев Ведущий разработчик
7 ноября 2012 года
I object to doing things that computers can do.
Olin Shivers
2/15
Цели Разработать подход к проектированию
IT-решений для бизнеса
Выявить критические абстракции
Обозначить наиболее важные аспекты цикла существования программного продукта
Разобраться, что такое «бизнес-логика» и что о ней надо знать разработчику
3/15
Бизнес-«нелогика»
Идея!
4/15
Задачи IT через призму бизнеса Нет полного видения модели предметной
области в перспективе, даже если все уверены в обратном
Сервисные задачи не интересуют «бизнес-логику»
Сделать «это» очень просто!
«Это» нужно вчера
5/15
Эра «стартапов» Поиск надежной бизнес-модели, НИОКР
в области интернет-рынков
Быстрый рост на начальных инвестициях
Быстрое падение
«Патентный троллинг»
Слияние и поглощение
6/15
Предел гибкости Переусложнение неизбежно?
Что забыли учесть?
Закон Завинского
Что потеряет проект в ближайший месяц, если не сможет читать почту завтра?
7/15
Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.
Предел сложности решений Насколько интенсивно будет меняться
продукт в ближайшее время?
Какова квалификация вовлеченной группы разработчиков?
Сколько времени понадобится разработчику с опытом от трех лет, чтобы погрузиться в проект?
8/15
Предел масштабируемости Будем ли мы продавать услуги клиентам
из соседних галактик?
Сделаем все многопоточным?
Что тяжелее – вычисления или данные?
RDBMS vs NoSQL
9/15
Инструмент для задачи, а не задача для инструмента (маркетинговые ловушки) Западня универсальных систем
(«миллионы мух не могут ошибаться»)
Насколько готовое решение решает задачи ближайших 6 месяцев?
Какова стоимость результатов работы ближайших 6 месяцев?
Риски vs страховка
10/15
Без чего жить программировать нельзя Логов много не бывает
Простота интеграции и миграции – не путать с легкостью переключения на другие СУБД (насколько нужна последняя?)
Ввода/вывода мало не бывает
Кэш и его инвалидация
Насколько просто это тестировать?
11/15
Перманентный рефакторинг
рабочий прототип
элегантное решение оптимизация
12/15
О чем можно забыть и потом сильно пожалеть Отказоустойчивость и устойчивость к взлому Простота диагностики «Ломка» при смене ключевых разработчиков
(«Кто это писал?») Эффективность одновременной работы
большого числа людей над общим проектом Степень надежности проноса новых версий Инкапсуляция (неинкапсулированные решения
влекут затратный и болезненный рефакторинг) 13/15
Эффективность кода
DRY!
Документация
Эксплуатация общепризнанных паттернов (только достоверно необходимых для конкретной задачи абстракции)
Экономия «на спичках»
Единый согласованный стиль кода и абстракций для всех участников команды
14/15
Recommended