Содержание
- 2. План Качество Какие способы достичь качества Качество кода в аспекте проектирования Принципы ООП/ООД Метрики кода NDepend
- 3. Зачем качество?
- 4. Холиворная тема
- 5. “Железный треугольник” Железный треугольник, или треугольник менеджмента. Его смысл в том, что ограничения на объём работ,
- 6. “Железный треугольник” Качественное ПО получается в результате баланса между объемом работ, сроками и бюджетом Качество http://www.intuit.ru/department/se/msd/4/3.html
- 7. К чему эти треугольники?
- 8. Ценности качественного кода
- 9. Какие есть способы? Организационные XP (eXtreme Programming) Code review Project management, methodology, Utilities: StyleCop, FxCop, Code
- 10. Какие есть способы? Внешние – программистские практики Парное программирование Статический анализ кода Code review , Unit-tests,
- 11. Сode Review Организационные способы
- 12. Статический анализ кода StyleCop, FxCop, Code Analysis, Ndepend Цель автоматизировать review кода и обратить внимание на
- 13. Методологии и управление Управление проектом напрямую влияет на результаты и удовлетворенность от работы Хаотическое управление =
- 14. Extreme programming Парное программирование Всесторонний code review Юнит-тесты на весь код (TDD) YAGNI, не пишем того,
- 15. Обучение Никакие утилиты стат. анализа не заменят людей Позволяет писать качественные код Повышает коммуникации Улучшает команду
- 16. Юнит-тесты, TDD Юнит-тесты – позволяют контролировать соответствие кода задуманному поведению. ТDD – подход к написанию кода
- 17. Рефакторинг Технические способы
- 18. Защитное программирование Defensive programming Использование ассертов (asserts) Использование контрактов кода (code contracts) Ассерты или контракты как
- 19. Технический долг К его появлению приводит быстрая и бездумная разработка Когда мы понимаем, что можем написать
- 20. Ценности, принципы и паттерны
- 21. Принципы ООП/ООД Принципы SOLID Принципы GRASP KISS = Keep it simple DRY = Don’t repeat yourself
- 22. Метрики кода Это количественные показатели, которые можно измерить и которые могут дать представление о качестве кода
- 23. NDepend. Dependency graph
- 24. NDepend. Dependency graph
- 25. Ndepend. Dependency matrix
- 26. Ndepend. Metrics view
- 27. CQL Query Explorer
- 28. NDepend. CQL SQL подобный синтакс Запросы к базе кода (code base), чтобы полу- чить метрики SELECT
- 29. Метрики
- 30. Coupling Efferent coupling (Ce): внутренняя связанность, число типов внутри сборки, которые зависят от типов из вне
- 31. Instability (I) Instability (I): отношение внутренней связанности(Ce) к общей связанности, индикатор устойчивости к изменениям. I =
- 32. Abstractness (A) Abstractness (A): абстрактность, отношение числа внутренних абстрактных типов к числу внутренних типов. A=0 –
- 33. Relational Cohesion (H) Relational Cohesion (H): относительная сцепленность, среднее число внутренних отношений на тип: H =
- 34. Coupling, Cohesion, Abstractness and Instability metrics on example Се = внутренняя связанность, Са – внешняя, I
- 35. Lack of cohesion (LCOM) Принцип SRP утверждает, что класс должен иметь не более чем одну причину
- 36. Cyclomatic Complexity (CC) Число следующих выражений в методе: if, while, for, foreach, case, default, continue, goto,
- 37. Distance from main sequence: zone of pain and zone of uselessness Main sequence в терминах NDepend,
- 38. Cсылки и источники Msug http://msug.vn.ua/Posts/Details/4199 - NDepend http://msug.vn.ua/Posts/Details/4221 - GRASP NDepend http://www.ndepend.com/ http://www.ndepend.com/GettingStarted.aspx Метрики NDepend http://www.hanselman.com/blog/content/binary/NDepend%20metrics%20placemats%201.1.pdf
- 40. Скачать презентацию