C # видаляти чи не видаляти невикористовувані using директиви

Особливих суперечок з цього приводу немає, але щоб розставити всі крапки на "Е" поговоримо на цю тему.

Є кілька причин для видалення невикористаних директив using:

1. Процес компіляції

Видалення дозволяє прискорити процес компіляції. Якщо ви видалите невикористані директиви using, то проект (рішення) зможе швидше компілюватиметься за рахунок того, що компілятору не буде потрібно шукати використовувані namespace'и в додатку в невикористовуваних збірках. Це особливо важливо для C # 3.0, тому що для методів розширення компілятор повинен шукати у всіх збірках для можливо кращої відповідності узагальненим (generic type) інтерфейсів і лямбда виразах (lambda expressions) включаючи узагальнені типи (generic types).

2. Збіги назв класів

Виключити потенційні збіги імен namespace. У великих проектах найчастіше трапляється так, що назви деяких класів в різних збірках збігаються. Та й найменування своїх свобственних класів часто безпосередньо конкурує з назвою класів з FCL (Framework Class Library) знову ж якщо дотримуватися правил іменування класів (General Naming Conventions). Так ось видалення невикористаних директив, допомагає виключити можливе збіги.

3. Списки автозавершенням

При видаленні невикористаних директив using списки автозавершення (autocomplete intellisense) значно зменшуються. Та й перід їх формування і випадання істотно скорочується. Також чуствуется різниця при пошуку збігів при наборі символів. Знову ж таки, це особливо важливо для C # 3.0.

Варто також уточнити, що дані факти в більшості своїй прийнятні для розробки в середовищі Visual Studio, хоча і не варто заперечувати той факт, що і інші IDE працюю за схожим з Visual Studio принципом. Також, хочу зазначити, що мова йде про продуктивність в IDE для великих проектів.

Видалення невикористаних директив жодним чином не вплине на:

  • Роботу компілятора - швидкість компіляції, якість, кількість і т.д. бо збірки необхідні для компіляції завантажуються на вимогу (on-demand).
  • На працездатність програми (додатки) - швидкість роботи, швидкість завантаження, продуктивність і т.д.

Видалення невикористаних директив Ніяк не вліеяет на результуючу збірку (assembly).

Невже розкрутити і продати свою програму складніше, ніж її створити?