Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EMPImodul2_empi.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
582.48 Кб
Скачать

32. Що таке рефакторинг?

Рефакторинг — перетворення програмного коду, зміна внутрішньої структури програмного забезпечення для полегшення розуміння коду і легшого внесення подальших змін без зміни зовнішньої поведінки самої системи

Підстави для проведення рефакторингу:

  • Код дублюється.

  • Підпрограма занадто довга.

  • Цикл занадто довгий, або рівень вкладеності тіла циклу занадто великий.

  • Клас має багато обов'язків, слабо пов'язаних між собою.

  • Інтерфейс класу не забезпечує достатній рівень абстракції.

  • Функція має занадто багато параметрів.

  • Потрібно одночасно змінювати кілька паралельних ієрархій класів.

  • Споріднені дані, які використовуються разом, не організовані в клас.

  • Клас не виконує ніяку роботу самостійно, а тільки передоручає обов'язки іншим класам.

  • Назва класу чи методу має ім'я, яке недостатньо точно відповідає змісту.

  • Клас має занадто багато відкритих (public) членів.

  • Нестатичний клас складається тільки з даних або тільки з методів.

  • В ланцюжку викликів методів передається багато зайвих даних.

- Занадто поширене використання глобальних змінних.

33. Які дані можна отримати після проведення вимірювань в Visual Studio?

За допомогою Visual Studio можна отримати значення 5-и метрик

Опис метрик:

  1. Maintainability Index - комплексний показник якості коду. Цей показник розроблений фахівцями з Carnegie Mellon Software Engineering Institute.

HV - Halstead Volume , обчислювальна складність . Чим більше операторів , тим більше значення цієї метрики ;

CC - Cyclomatic Complexity . Ця метрика описана нижче ;

LoC - кількість рядків коду.

Ця метрика може приймати значення від 0 до 100 і показує відносну складність підтримки коду. Чим більше значення цієї метрики , тим легше підтримувати код .

Visual Studio позначає методи/класи зеленим кольором , якщо значення метрики знаходиться в межах від 20 до 100, жовтим кольором , якщо значення знаходиться в межах від 10 до 20, і червоним кольором, коли значення менше 10.

  1. Cyclomatic Complexity - показує структурну складність коду, тобто кількість різних гілок в коді. Чим біль ше цей показник, тим більше тестів має бути написано, для повного покриття коду.

  2. Depth of Inheritance - глибина успадкування. Ця метрика показує для кожного класу, який він по рахунку в ланцюжку успадкування. Наприклад, є 3 класа A, B, C, B успадкований від А, а С успадкований від В, то значення цієї метрики для класів A, B і C буде дорівнює відповідно 1, 2 і 3.

  3. Class Coupling - показує ступінь залежності класів один з одним. У розрахунок беруться унікальні класи з параметрів, локальних змінних, повертаючого типу, базового класу, атрибутів. Хороший дизайн програмного забезпечення передбачає невелику кількість пов'язаних класів. Чим їх більше, тим складніше надалі перевикористати цей клас, а також підтримувати, тому що існує дуже багато залежностей.

  4. Lines of Code - показує кількість рядків коду. Цей показник показує не точну кількість рядків у вашому файлі, так як підрахунок заснований на IL- коді. У розрахунок не беруться порожні рядки, коментарі, оголошення типів і просторів імен. Велика кількість рядків у методі/класі може показувати на помилки в проектуванні і на те, що цей код можна розділити на кілька частин.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]