ReSharper
-
Медіафайли у Вікісховищі
ReSharper (R#) — додаток (add-on), розроблений компанією JetBrains для збільшення продуктивності роботи та автоматизації рефакторингу в середовищі Microsoft Visual Studio (підтримуються версії: 2003, 2005, 2008, 2010, 2012, 2013, 2015, 2017).
Здійснює миттєвий статичний аналіз коду (без потреби компіляції), передбачає додаткові засоби автозаповнення, навігації, пошуку, виділення синтаксису, форматування, оптимізації та генерації коду, надає близько 40 автоматизованих рефакторингів, спрощує модульне тестування в середовищах MSTest та NUnit.
Остання версія ReSharper 2016.1 для Visual Studio 2015, 2013, 2012 and 2010 була випущена в 2016. Забезпечено підтримку мов C# 6.0, VB11, JavaScript, CSS, HTML, ASP.NET, ASP.NET MVC, Razor, XML, XAML, WinRT, сценаріїв MSBuild та NAnt.
ReSharper є комерційним програмним продуктом. З 2015 року пропонується за підпискою. Мінімальна вартість щомісячної платні $12.9 для індивідуальних розробників. Однак, JetBrains надає можливість завантаження пробної версії програми на 30 днів.
Вступ
ReSharper - поширений інструмент для підвищення продуктивності роботи, що дозволяє істотно збільшити функціональність Microsoft Visual Studio. Тисячі .NET розробників по всьому світу використовують ReSharper для перевірки коду, здійснення автоматичного рефакторингу та одержання допомоги в написанні якісного програмного коду. В даній статті наведено основні рекомендації щодо використання даної програми при розробці сучасних програмних продуктів.
Функції ReSharper
Аналіз якості коду
В арсеналі ReSharper передбачено понад 1300 перевірок коду. Програма підкреслює знайдені помилки просто у вікні редактора Visual Studio, і додатково відображає їх за допомогою відповідних маркерів. Індикатор у верхній частині панелі маркерів змінює свій колір та значок, якщо досліджуваний файл містить помилки або проблеми.
Помилки та попередження
Помилки в програмі ReSharper відстежуються в режимі реального часу та виділяються червоним шрифтом або хвилястим підкресленням. Якщо навести вказівник миші на помилку, її опис буде виведено за допомогою відповідної підказки.
Крім того, ReSharper здійснює детектування ділянок коду, що не стають на заваді компіляції, але можуть суттєво знижувати якість розробленого продукту та перетворювати його на "бидлокод". Наприклад, ReSharper показує інформацію про посилання на простори імен та складання що не використовуються, неправильний формат рядків, оголошені, але не використані змінні тощо. Відповідні конструкції позначаються сірим кольором.
Рекомендації
У цьому випадку ReSharper здійснює більш глибокий аналіз коду. За даними з офіційного сайту, ReSharper лише привертає увагу розробника до тих конструкцій, які потенційно можуть бути покращені. Наприклад, ReSharper може запропонувати перетворити цикл до LINQ-виразу, використати ключове слово "var" та ін. Відповідні рекомендації виділяються зеленим кольором.
Поради
Найменш надокучливими та помітними повідомленнями ReSharper є поради. На відміну від помилок, попереджень та рекомендацій, вони лише показують можливі шляхи збільшення якості програмних конструкцій.
Швидкі виправлення
ReSharper надає можливість швидкого усунення більшості помилок, та дозволяє розв'язувати всі можливі проблеми миттєво. Швидкі виправлення представлено червоними (для помилок) та жовтими (в інших випадках) лампочками, які з'являються автоматично ліворуч від обраного рядка коду. Натиснувши на символ лампочки або ввівши комбінацію Alt + Enter, обираємо необхідну позицію зі списку і проблему буде вирішено в найбільш зручному вигляді:
Рефакторинг
Набір функцій ReSharper для рефакторингу значно перевищує за кількістю та зручністю використання вбудовані засоби середовища Visual Studio. У програмі забезпечено можливість відповідного покращення коду в мові C #, переважна більшість рефакторингів також доступні в VB.NET, деякі в JavaScript, XAML та інших підтримуваних мовах. Для здійснення рефакторингу необхідно лише навести курсор на відповідний блок коду. Деякі з підтримуваних рефакторингів наведено далі:
Зміна сигнатури методу
Цей рефакторинг дозволяє змінити сигнатуру методу у такі способи:
- Додавання, видалення, перейменування або зміна порядку параметрів;
- Зміна типу результату, що повертається;
- Зміна типів параметрів;
- Перейменування методу.
Після зміни сигнатури методу, ReSharper оновлює всі його виклики, реалізації та перевизначення, підтримуючи працездатність коду.
Перетворення інтерфейсу до абстрактного класу і навпаки
За допомогою даного рефакторингу всі відповідні перетворення будуть зроблені. Перед його пристосуванням автоматично виконується перевірка на наявність конфліктів. Наприклад, перед застосуванням рефакторингу "Перетворити інтерфейс для абстрактного класу" маємо:
Після його пристосування, відповідно, маємо:
Перетворення непорожнього методу до властивості і навпаки
Існує можливість перетворення властивості до пари методів за допомогою програми ReSharper. Наприклад, маємо:
Виділення класу, суперкласу та інтерфейсу
За допомогою виділення класу можна розкласти складний клас на окремі, простіші структури. ReSharper допоможе Вам вибрати методи і поля, щоб перейти від старого до нового класу. Він також буде попереджати про будь-які порушення залежностей і проблеми доступності, запропонує варіанти розв'язання конфлікту.
За допомогою рефакторингу виділення суперкласу можна створити базовий клас для наявних у програмі класів. Для цього слід лише помістити курсор на оголошення класу, обрати члени для виділення і запустити рефакторинг. Особливо корисним може бути його використання при переміщенні деякої спільної логіки для окремих класів.
Автоматична генерація програмного коду
В ReSharper існує можливість використання методу, властивості, поля змінної або навіть класу, перш ніж відповідні елементи будуть оголошені в програмному коді. ReSharper спритно запропонує виправити та доповнити створені автоматично блоки для таких структурних елементів. Наприклад, при автоматичному створенні методу з використанням ReSharper, необхідно додатково визначити тип результату що повертається, а також типи його параметрів.
Недоліки ReSharper
- Повільна робота та більш тривале завантаження середовища Visual Studio після встановлення програми;
Слід зазначити, що за замовченням ReSharper визначає правило іменування приватних змінних за зразком "_х" з використанням символу підкреслення, що в мові C# не рекомендується. Для коректного налаштування середовища ReSharper слід обрати вкладку "Options":
Далі відкриваємо вузол Code Editing/C#/C# Naming Style. Обираємо необхідне правило іменування і вилучаємо символ підкреслювання в полі "Name Prefix":
Подібні програми
BugAid for Visual Studio
За допомогою цього плагіна можливе істотне полегшення процесу відладки в мові C#. Надає можливості пошуку комплесних об'єктів, візуалізації комплексних виразів тощо.
Visual Assist X
Visual Assist X — плагін для Microsoft Visual Studio, розроблений Whole Tomato. В основному даний плагін доповнює роботу IntelliSense та підсвітку синтаксису коду.
CodeRush
CodeRush здійснює статичний аналіз коду (миттєве виявлення помилок без потреби компіляції), підтримує додаткові можливості виявлення та корекції помилок, автозавершення коду, навігацію, пошук, підсвітку синтаксису, форматування, створення та оптимізацію коду, виконує більше 180 автоматичних покращень, спрощене модульне тестування за допомогою NUnit, XUnit, MbUnit та MSTest, а також інші функції.
Refactor! Pro for Visual Studio
Поширена система автоматизації та спрощення рефакторингу.
Література
- Офіційний сайт Jetbrains [Архівовано 30 грудня 2012 у Wayback Machine.]
- Аналоги програми ReSharper[недоступне посилання з червня 2019]
- Можливі рефакторинги в програмі ReSharper [Архівовано 16 січня 2013 у Wayback Machine.]
- Огляд функцій програми ReSharper [Архівовано 6 січня 2013 у Wayback Machine.]
- ReSharper. Керівництво користувача
- ↑ Other Versions