resharper 8.0 или магия продуктивной разработки
TRANSCRIPT
ReSharper 8.0 или магия
продуктивной разработки
Тимур Рахматиллаев
ByndyuSoft
twitter.com/eskat0n
7-я конференция .NET разработчиков
22 сентября 2013
www.dotnetconf.ru
2Магия продуктивной разработки, Тимур Рахматиллаев
Что привело к созданию
программирования?
ЛЕНЬ!
3
4Магия продуктивной разработки, Тимур Рахматиллаев
Не ленью единой…
5Магия продуктивной разработки, Тимур Рахматиллаев
Наша цель
• Делать меньше
• Получать больший результат
6Магия продуктивной разработки, Тимур Рахматиллаев
Мы…
• Пишем код?
• Разрабатываем?
• Реализуем алгоритмы?
НЕТ!
7
8Магия продуктивной разработки, Тимур Рахматиллаев
Мы…
Набираем код
ОптимизируемПишем тесты
Запускаем тесты
Рефакторим
«Причесываем»
Делимся опытом
Вырабатываем стильЭкспериментируем
Копируем
Ищем
Организуем
Делаем код понятнееПереименовываем
Ищем ошибки
Собираем
Отлаживаем
РеализуемСтроим архитектуру
ПЬЕМ КОФЕПЬЕМ КОФЕ
9Магия продуктивной разработки, Тимур Рахматиллаев
Извечные вопросы
• Кто виноват в том, что мы делаем это
медленно или неэффективно?
• Что делать, чтобы делать все это
эффективнее и быстрее?
10Магия продуктивной разработки, Тимур Рахматиллаев
Автоматизация рутинных
операций
• ReSharper
• CodeRush
• T4
• Встроенные средства VisualStudio 2012
11Магия продуктивной разработки, Тимур Рахматиллаев
Автоматизация рутинных
операций
• ReSharper
• CodeRush
• T4
• Встроенные средства VisualStudio 2012
12Магия продуктивной разработки, Тимур Рахматиллаев
Возможности ReSharper’а
• Анализ кода
• Навигация по коду и поиск
• Помощь в кодинге (ускорение)
• Рефакторинги
• Генерация кода
• Шаблонизация кода
• Форматирование и стандартизация
• Модульное тестирование
13Магия продуктивной разработки, Тимур Рахматиллаев
Возможности ReSharper’а
• Анализ кода
• Навигация по коду и поиск
• Помощь в кодинге (ускорение)
• Рефакторинги
• Генерация кода
• Шаблонизация кода
• Форматирование и стандартизация
• Модульное тестирование
14Магия продуктивной разработки, Тимур Рахматиллаев
Возможности ReSharper’а #2
• Поддержка работы с ASP.NET и ASP.NET MVC (ускорение, генерация, анализ)
• Поддержка XAML (ускорение, генерация, анализ)
• Помощь в интернационализации приложения
• Подсветка и автодополнения для скриптов сборки NAnt и MSBuild
• Расширяемость с помощью плагинов 0_о
15Магия продуктивной разработки, Тимур Рахматиллаев
Работа с ReSharper’ом
Show Must Go On!
17Магия продуктивной разработки, Тимур Рахматиллаев
Инспекции в ReSharper’е
• Error
• Warning
• Suggestion
• Hint
Могут быть solution wide
18Магия продуктивной разработки, Тимур Рахматиллаев
Structural Search and
Replace• Возможность задавать шаблоны для
поиска и замены в кодe
19Магия продуктивной разработки, Тимур Рахматиллаев
Structural Search and
Replace• Возможность задавать шаблоны для
поиска и замены в кодe
20Магия продуктивной разработки, Тимур Рахматиллаев
Structural Search and
Replace• Возможность задавать шаблоны для
поиска и замены в кодe
• Возможность параметризовывать
шаблоны
• Возможность накладывать на шаблоны
ограничения с использованием знаний
ReSharper’а об AST
21Магия продуктивной разработки, Тимур Рахматиллаев
Structural Search and
ReplaceШаблоны можно использовать для
создания собственных инспекций и quick
fix’ов!
22Магия продуктивной разработки, Тимур Рахматиллаев
ReSharper – инструмент
Инструмент в полном смысле слова!
23Магия продуктивной разработки, Тимур Рахматиллаев
Наш идеал - никакой мышки
24Магия продуктивной разработки, Тимур Рахматиллаев
Святая клавиатура
25Магия продуктивной разработки, Тимур Рахматиллаев
Зачем мне ReSharper?
• Ваше время дорого
• Не только вашему начальнику или
заказчику
• Ваше удобство, а следовательно и
нервы, тоже дороги
• Вам
• Ваш код станет профессиональнее, а
стиль чище
• Это круто
26Магия продуктивной разработки, Тимур Рахматиллаев
Переход на ReSharper
• Это смена образа мышления
• Поначалу ваша скорость работы,
скорее всего, упадет
27Магия продуктивной разработки, Тимур Рахматиллаев
Ломайте себя!
28Магия продуктивной разработки, Тимур Рахматиллаев
Практики
• Сделал без ReSharper’а
• Одумался
• Ctrl+Z, Ctrl+Z, Ctrl+Z
• Переделал с использованием функций ReSharper’а
• Каждый раз!
• …
• PROFIT
29Магия продуктивной разработки, Тимур Рахматиллаев
30Магия продуктивной разработки, Тимур Рахматиллаев
Практики
• Распечатать и повесить плакат со
списком горячих клавиш рядом с
монитором
• Отключить мышку от копьютера (sic!)
• Если вы думаете, что что-то можно
сделать с помощью ReSharper’а –
погуглите
• «вот было бы хорошо»-принцип
31Магия продуктивной разработки, Тимур Рахматиллаев
Один в поле не воин
32Магия продуктивной разработки, Тимур Рахматиллаев
ReSharper для команды
• Общий стиль кодирования – обмен
конфигурацией правил
форматирования через инструменты
импорта/экспорта в XML
• Общие принципы реализации типовых
моментов – обмен шаблонами SSR
через импорт/экспорт в XML
33Магия продуктивной разработки, Тимур Рахматиллаев
Практики
• Храните шаблоны SSR в репозитории
проекта
• Храните настройки cleanup’а и
форматирования в файле настроек
solution’а в репозитории проекта
• Храните архишаблоны в репозитории
компании
34Магия продуктивной разработки, Тимур Рахматиллаев
ReSharper 8.0
• Графическое представлении иерархии
зависимостей в проекте
• Рефакторинги в масштабе solution’а
• Полноценная поддержка инспекций в
XAML’е
• Улучшения в поддержке CSS
• Версия в виде консольного приложения
35Магия продуктивной разработки, Тимур Рахматиллаев
Нужно больше ReSharper’а!
• Функциональные возможности
ReSharper’а:
http://bit.ly/resharper_features
• Новые возможности ReSharper 8:
http://bit.ly/resharper8
• Написание плагинов для ReSharper’а с
использованием Open API:
http://bit.ly/resharper_sdk
36Магия продуктивной разработки, Тимур Рахматиллаев
Обзор плагинов
• AgentJohnson – дополнительные рефакторинги и контекстные действия
• AgentMulder – упрощает работу (навигация, анализ) с DI-контейнерами
• ForTea – добавляет поддержку языка шаблонов T4
• TestCop – новые инспекции и навигационные возможности при работе с модульными тестами
37Магия продуктивной разработки, Тимур Рахматиллаев
Материалы доклада
http://bit.ly/dotnetconf7-resharper
38Магия продуктивной разработки, Тимур Рахматиллаев
Спасибо за внимание
Тимур Рахматиллаев
ByndyuSoft
twitter.com/eskat0n