Углубленное программирование на языке С/С++. Лекция 9. Основы рефакторинга и качество исходного кода. Стандарты кодирования и методологии обработки ПО. Петров Алексей

1519

Петров Алексей рассказывает об объектно-ориентированных идиомах языка С++  и управлении памятью. Говорит о статическом анализе и рефакторинге исходного кода, анти-шаблонах, логических и семантических ошибках и о «техническом долге» проекта. Раскрывает понятия, факторы и метрики качества исходного кода, его оформление и документирование. Рассказывает о методах промышленной обработки.

  1. Идиома языка программирования?
  2. Пространство идиом C++
  3. Классы или структуры?
  4. Объектно-ориентированные идиомы C++: примеры
  5. Идиомы повышенного уровня сложности
  6. Идиома №1. Контекстно-зависимая перегрузка индексирования
  7. Идиома №2. «Автоматическая» сборка мусора. Подсчет ссылок
  8. Идиома №3. Управление памятью заменой операций new и delete
  9. Создание объектов в пуле динамического размера
  10. Идиома №4. «Конверт/письмо» и делегированный полиморфизм
  11. Делегированный полиморфизм в действии
  12. Рефакторинг исходного кода
  13. Статический анализ и инспекция кода
  14.  Типовые анти-шаблоны и «грязные техники»
  15. Типовые логико-семантические ошибки в программном коде
  16. Вопросы оптимизации
  17. Оптимизация программ по производительности
  18. Оптимизация программ по размеру объектного кода и памяти данных
  19. Актуальность проблем качества
  20. Понятие качества. Что такое «качественное ПО»?
  21. Функциональные и структурные показатели качества кода
  22. Модели качества ПО
  23. Качество ПО по МакКолу
  24. Факторы качества ПО
  25. Модель МакКола: как это работает?
  26. Качество ПО по Боэму
  27. Качество ПО согласно ISO 9126
  28. Желаемые структурные характеристики
  29. Цели в модели качества ISO 9126 и характеристики SQuaRE
  30. Модель SQuaRE: надежность
  31. Модель SQuaRE: эффективность
  32. Модель SQuaRE: безопасность
  33. Модель SQuaRE: удобство сопровождения
  34. Модель SQuaRE: размер кода
  35. Метрики в модели качества ISO 9126
  36. Сложность как атрибут качества ПО
  37. Управление сложностью исходного кода.
  38. Предварительное проектирование и сложность кода
  39.  «Технический долг»: его накопление и снижение «Технический долг»
  40. Стандарты и стили кода
  41. Соглашение о кодировании и его роль в командной разработке
  42. Правила организации и способы записи исходного кода на языке C++
  43. Ортодоксальная каноническая форма класса
  44. Ортодоксальная каноническая форма класса
  45. Комментирование и документирование кода
  46. Жизненный цикл разработки ПО
  47. Каскадная и итеративная модели жизненного цикла ПО
  48. V-модель жизненного цикла разработки программных систем Верификация и валидация
  49. «Гибкие» методологии разработки
  50. Методологии TDD, Scrum Разработка через тестирование
  51. поддерживающие «дисциплины»
  52. Руководство SWEBoK Software Engineering Body of Knowledge