Содержание
- 2. О чем Почему нужно бороться со сложностью Откуда берется Кто и как может с ней бороться
- 3. Управление сложностью каждый день Команда должна понимать и дописывать код (хотя бы в текущем проекте) Сложность,
- 4. «Протекание» и смешение уровней абстракции Неправильное именование Слабая связанность, сильная связность Отсутствие unit-тестов Не применяются SOLID,
- 5. Сложность предметной области Что мешает развитию системы, в которой в общем-то все неплохо Сложность, внесенная разработчиком
- 6. Желание решить задачу выше своих компетенций Недостаточное понимание задачи Чаще встречается у молодых разработчиков Оверинжиниринг
- 7. Желание использовать модный фрэймворк/подход Желание развить компетенции Чаще свойственно разработчикам среднего уровня Желание написать «классно»
- 8. Гибкий и качественный код Продуманные точки расширения Сложные алгоритмы Гений
- 9. CodeReview для всех Отдельный пункт CodeReview – «проверить понятность», Управление творческой энергией разработчика
- 10. Практики из SCRUM Не давать задачу «целиком» Force collective code ownership Коммуникации
- 11. DI/IoC AOP DDD и Enterprise-паттерны Асинхронность/многопоточность Обобщенные классы и алгоритмы Использование готовых компонентов Функциональный стиль …
- 12. IL Code Нативный код .NET Sources Nuget lib sources Common Code Module common code Business logic
- 13. Enterprise Locator Layer Service Repository Broker ActiveRecord Tier Bus Interceptor ServiceWrapper Adapter Microservices
- 14. Уровень классов
- 15. Уровень методов
- 16. Что делать? Написать как обычно «А не рано ли принимается решение»
- 17. #1 #2
- 18. Ограничение набора инструментов Знать возможности используемого фрэймворка Предпочитать встроенные инструменты Бюрократия при добавлении новых библиотек –
- 19. Непреодолимая сложность Требования к производительности Сложность предметной области Компромиссы и ограничения фрэймворка, библиотек и бизнес-требований
- 20. #1 Просто код
- 21. #1 Контекст
- 22. #1 Документация и комментарии
- 23. #2 Просто код
- 24. #2 Комментарии
- 25. Документация, комментарии Описание сложного алгоритма (возможно со ссылками) «Почему так» Контекст
- 26. Валидация графа Алгоритм Поиск «треугольников» Упрощение графа с использованием шагов: Убрать «петли» Сократить пути, относящиеся к
- 28. Изоляция/Инкапсуляция Сложность не отражается на публичных интерфейсах От сложности ничего не зависит Сложность сконцентрирована в одном
- 30. Скачать презентацию