Содержание
- 2. DevOps итоги Узкими местами потока создания ценности являются: Тестирование Большое время обратной связи «разработка–>тест-> дефект» Много
- 3. Развитие функционала Время Функции Релиз Потеря контроля Этап 1(разработка) Этап 2 (эксплуатация) Этап 3 (загнивание) Качество
- 4. Качество кода Качество кода – достаточно сложное понятие. Мы рассмотрим 3 параметра: Работоспособность – способность выполнять
- 5. Запахи плохого дизайна архитектуры Жесткость Жесткость – это характеристика программы, затрудняющая внесение в нее изменений, даже
- 6. Ненужная сложность Дизайн попахивает ненужной сложностью, если содержит элементы неиспользуемые в текущий момент. Это часто случается,
- 7. Методы борьбы с ухудшением качества кода Рефакторинг – изменение внутренней структуры ПО без изменения его поведения.
- 8. Рефакторинг на уровне минимальных «единиц» кода Разработка кода Тестирование Рефакторинг Тестирование Анализ кода Работоспособный код Работоспособный
- 9. Выводы Основной причиной загнивания проекта является ухудшение качества кода и «размытие» архитектуры. Признаками «размытия» архитектуры являются
- 10. Архитектура ПО Архитектура ПО – это внутренний атрибут качества ПО и разрабатывается она в зависимости от
- 11. Границы Границы отделяют программные элементы друг от друга и избавляют их от необходимости знать, что находится
- 12. Зависимости Функции (классы) считаются зависимыми если одна функция вызывает другую функцию. Зависимость обозначается стрелкой направленной в
- 13. Уровень абстракции Уровень абстракции — один из способов сокрытия деталей реализации определенного набора функциональных возможностей. Применяется
- 14. Гексагональная архитектура В приложении выделяют основные слои: Внешние интерфейсы – обеспечивают взаимодействие приложения с внешним миром
- 15. Гексагональная архитектура ПО на различных уровнях Классы, компоненты и границы из которых состоит приложение на различных
- 16. Принципы построения ПО по гексагональной архитектуре Бизнес логика не должна иметь внешних зависимостей Бизнес логика должна
- 17. Принципы SOLID SRP Принцип единой ответственности – каждый модуль должен иметь только одну причину для изменения.
- 18. Принцип единой ответственности Оригинальное описание: «У класса должна быть только одна причина для изменения.» Другими словами
- 19. Принцип открытости/закрытости (OCP) Оригинальное звучание: Программные сущности (классы, модули, функции и т. п.) должны быть открыты
- 20. Принцип подстановки Лисков (LSP) Оригинальное описание: Должна быть возможность вместо базового типа подставить любой его подтип.
- 21. Принцип инверсии зависимости (DIP) в ООП Оригинальное звучание: Модули верхнего уровня не должны зависеть от модулей
- 22. Принцип инверсии зависимости (DIP) в Си Еще можно разделить зависимости с помощью указателей на функции. Из
- 23. Шаблоны проектирования Pattern design – наборы типовых решений часто встречающихся задач при разработке ПО. Их также
- 24. Пример Задача: По внешнему тактовому сигналу (inStrob = 1) считать значение с портов А, В, С.
- 25. Пример решение1 Функция Handle_ABC() выполняет 5 действий
- 26. Переход к гексагональной архитектуре Ввод / вывод PORTA PORTB PORTC inStrob Led_Green Led_Yellow Led_Red Контроллер Бизнес
- 27. Модуль ввода /вывода (hal_un.c)
- 28. Бизнес логика (logic.c)
- 29. Контроллер
- 30. Граф вызовов функций Handle_ABC_Contr getStrobState hal_GetStrob() hal_getA() hal_getB() hal_getC() Logic LogicCheckInterval LogicCalc HandleShow hal_HideAll() hal_Show_GR() hal_Show_YL()
- 31. Устойчивость к изменениям в требованиях Что изменится если произойдут изменения в требованиях… Изменения в входных /
- 32. Разработка архитектуры ПО шаг 1 Построение дерева функционала Адаптер СУЛ Взаимодействие с БЛ Опрос входов Определение
- 33. Разработка архитектуры ПО шаги 2..n 2. Укрупненное разбиение на классы (по функционалу) 3. Вводятся дополнительные классы
- 34. Выводы о применении гексагональной архитектуры Минусы Разработка архитектуры требует затрат времени Реализация ПО в соответствии с
- 36. Скачать презентацию