resharper 8.0 или магия продуктивной разработки

38
ReSharper 8.0 или магия продуктивной разработки Тимур Рахматиллаев ByndyuSoft twitter.com/eskat0n 7-я конференция .NET разработчиков 22 сентября 2013 www.dotnetconf.ru

Upload: timur-rakhmatillaev

Post on 12-Jul-2015

1.219 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: ReSharper 8.0 или магия продуктивной разработки

ReSharper 8.0 или магия

продуктивной разработки

Тимур Рахматиллаев

ByndyuSoft

twitter.com/eskat0n

7-я конференция .NET разработчиков

22 сентября 2013

www.dotnetconf.ru

Page 2: ReSharper 8.0 или магия продуктивной разработки

2Магия продуктивной разработки, Тимур Рахматиллаев

Что привело к созданию

программирования?

Page 3: ReSharper 8.0 или магия продуктивной разработки

ЛЕНЬ!

3

Page 4: ReSharper 8.0 или магия продуктивной разработки

4Магия продуктивной разработки, Тимур Рахматиллаев

Не ленью единой…

Page 5: ReSharper 8.0 или магия продуктивной разработки

5Магия продуктивной разработки, Тимур Рахматиллаев

Наша цель

• Делать меньше

• Получать больший результат

Page 6: ReSharper 8.0 или магия продуктивной разработки

6Магия продуктивной разработки, Тимур Рахматиллаев

Мы…

• Пишем код?

• Разрабатываем?

• Реализуем алгоритмы?

Page 7: ReSharper 8.0 или магия продуктивной разработки

НЕТ!

7

Page 8: ReSharper 8.0 или магия продуктивной разработки

8Магия продуктивной разработки, Тимур Рахматиллаев

Мы…

Набираем код

ОптимизируемПишем тесты

Запускаем тесты

Рефакторим

«Причесываем»

Делимся опытом

Вырабатываем стильЭкспериментируем

Копируем

Ищем

Организуем

Делаем код понятнееПереименовываем

Ищем ошибки

Собираем

Отлаживаем

РеализуемСтроим архитектуру

ПЬЕМ КОФЕПЬЕМ КОФЕ

Page 9: ReSharper 8.0 или магия продуктивной разработки

9Магия продуктивной разработки, Тимур Рахматиллаев

Извечные вопросы

• Кто виноват в том, что мы делаем это

медленно или неэффективно?

• Что делать, чтобы делать все это

эффективнее и быстрее?

Page 10: ReSharper 8.0 или магия продуктивной разработки

10Магия продуктивной разработки, Тимур Рахматиллаев

Автоматизация рутинных

операций

• ReSharper

• CodeRush

• T4

• Встроенные средства VisualStudio 2012

Page 11: ReSharper 8.0 или магия продуктивной разработки

11Магия продуктивной разработки, Тимур Рахматиллаев

Автоматизация рутинных

операций

• ReSharper

• CodeRush

• T4

• Встроенные средства VisualStudio 2012

Page 12: ReSharper 8.0 или магия продуктивной разработки

12Магия продуктивной разработки, Тимур Рахматиллаев

Возможности ReSharper’а

• Анализ кода

• Навигация по коду и поиск

• Помощь в кодинге (ускорение)

• Рефакторинги

• Генерация кода

• Шаблонизация кода

• Форматирование и стандартизация

• Модульное тестирование

Page 13: ReSharper 8.0 или магия продуктивной разработки

13Магия продуктивной разработки, Тимур Рахматиллаев

Возможности ReSharper’а

• Анализ кода

• Навигация по коду и поиск

• Помощь в кодинге (ускорение)

• Рефакторинги

• Генерация кода

• Шаблонизация кода

• Форматирование и стандартизация

• Модульное тестирование

Page 14: ReSharper 8.0 или магия продуктивной разработки

14Магия продуктивной разработки, Тимур Рахматиллаев

Возможности ReSharper’а #2

• Поддержка работы с ASP.NET и ASP.NET MVC (ускорение, генерация, анализ)

• Поддержка XAML (ускорение, генерация, анализ)

• Помощь в интернационализации приложения

• Подсветка и автодополнения для скриптов сборки NAnt и MSBuild

• Расширяемость с помощью плагинов 0_о

Page 15: ReSharper 8.0 или магия продуктивной разработки

15Магия продуктивной разработки, Тимур Рахматиллаев

Page 16: ReSharper 8.0 или магия продуктивной разработки

Работа с ReSharper’ом

Show Must Go On!

Page 17: ReSharper 8.0 или магия продуктивной разработки

17Магия продуктивной разработки, Тимур Рахматиллаев

Инспекции в ReSharper’е

• Error

• Warning

• Suggestion

• Hint

Могут быть solution wide

Page 18: ReSharper 8.0 или магия продуктивной разработки

18Магия продуктивной разработки, Тимур Рахматиллаев

Structural Search and

Replace• Возможность задавать шаблоны для

поиска и замены в кодe

Page 19: ReSharper 8.0 или магия продуктивной разработки

19Магия продуктивной разработки, Тимур Рахматиллаев

Structural Search and

Replace• Возможность задавать шаблоны для

поиска и замены в кодe

Page 20: ReSharper 8.0 или магия продуктивной разработки

20Магия продуктивной разработки, Тимур Рахматиллаев

Structural Search and

Replace• Возможность задавать шаблоны для

поиска и замены в кодe

• Возможность параметризовывать

шаблоны

• Возможность накладывать на шаблоны

ограничения с использованием знаний

ReSharper’а об AST

Page 21: ReSharper 8.0 или магия продуктивной разработки

21Магия продуктивной разработки, Тимур Рахматиллаев

Structural Search and

ReplaceШаблоны можно использовать для

создания собственных инспекций и quick

fix’ов!

Page 22: ReSharper 8.0 или магия продуктивной разработки

22Магия продуктивной разработки, Тимур Рахматиллаев

ReSharper – инструмент

Инструмент в полном смысле слова!

Page 23: ReSharper 8.0 или магия продуктивной разработки

23Магия продуктивной разработки, Тимур Рахматиллаев

Наш идеал - никакой мышки

Page 24: ReSharper 8.0 или магия продуктивной разработки

24Магия продуктивной разработки, Тимур Рахматиллаев

Святая клавиатура

Page 25: ReSharper 8.0 или магия продуктивной разработки

25Магия продуктивной разработки, Тимур Рахматиллаев

Зачем мне ReSharper?

• Ваше время дорого

• Не только вашему начальнику или

заказчику

• Ваше удобство, а следовательно и

нервы, тоже дороги

• Вам

• Ваш код станет профессиональнее, а

стиль чище

• Это круто

Page 26: ReSharper 8.0 или магия продуктивной разработки

26Магия продуктивной разработки, Тимур Рахматиллаев

Переход на ReSharper

• Это смена образа мышления

• Поначалу ваша скорость работы,

скорее всего, упадет

Page 27: ReSharper 8.0 или магия продуктивной разработки

27Магия продуктивной разработки, Тимур Рахматиллаев

Ломайте себя!

Page 28: ReSharper 8.0 или магия продуктивной разработки

28Магия продуктивной разработки, Тимур Рахматиллаев

Практики

• Сделал без ReSharper’а

• Одумался

• Ctrl+Z, Ctrl+Z, Ctrl+Z

• Переделал с использованием функций ReSharper’а

• Каждый раз!

• …

• PROFIT

Page 29: ReSharper 8.0 или магия продуктивной разработки

29Магия продуктивной разработки, Тимур Рахматиллаев

Page 30: ReSharper 8.0 или магия продуктивной разработки

30Магия продуктивной разработки, Тимур Рахматиллаев

Практики

• Распечатать и повесить плакат со

списком горячих клавиш рядом с

монитором

• Отключить мышку от копьютера (sic!)

• Если вы думаете, что что-то можно

сделать с помощью ReSharper’а –

погуглите

• «вот было бы хорошо»-принцип

Page 31: ReSharper 8.0 или магия продуктивной разработки

31Магия продуктивной разработки, Тимур Рахматиллаев

Один в поле не воин

Page 32: ReSharper 8.0 или магия продуктивной разработки

32Магия продуктивной разработки, Тимур Рахматиллаев

ReSharper для команды

• Общий стиль кодирования – обмен

конфигурацией правил

форматирования через инструменты

импорта/экспорта в XML

• Общие принципы реализации типовых

моментов – обмен шаблонами SSR

через импорт/экспорт в XML

Page 33: ReSharper 8.0 или магия продуктивной разработки

33Магия продуктивной разработки, Тимур Рахматиллаев

Практики

• Храните шаблоны SSR в репозитории

проекта

• Храните настройки cleanup’а и

форматирования в файле настроек

solution’а в репозитории проекта

• Храните архишаблоны в репозитории

компании

Page 34: ReSharper 8.0 или магия продуктивной разработки

34Магия продуктивной разработки, Тимур Рахматиллаев

ReSharper 8.0

• Графическое представлении иерархии

зависимостей в проекте

• Рефакторинги в масштабе solution’а

• Полноценная поддержка инспекций в

XAML’е

• Улучшения в поддержке CSS

• Версия в виде консольного приложения

Page 35: ReSharper 8.0 или магия продуктивной разработки

35Магия продуктивной разработки, Тимур Рахматиллаев

Нужно больше ReSharper’а!

• Функциональные возможности

ReSharper’а:

http://bit.ly/resharper_features

• Новые возможности ReSharper 8:

http://bit.ly/resharper8

• Написание плагинов для ReSharper’а с

использованием Open API:

http://bit.ly/resharper_sdk

Page 36: ReSharper 8.0 или магия продуктивной разработки

36Магия продуктивной разработки, Тимур Рахматиллаев

Обзор плагинов

• AgentJohnson – дополнительные рефакторинги и контекстные действия

• AgentMulder – упрощает работу (навигация, анализ) с DI-контейнерами

• ForTea – добавляет поддержку языка шаблонов T4

• TestCop – новые инспекции и навигационные возможности при работе с модульными тестами

Page 37: ReSharper 8.0 или магия продуктивной разработки

37Магия продуктивной разработки, Тимур Рахматиллаев

Материалы доклада

http://bit.ly/dotnetconf7-resharper

Page 38: ReSharper 8.0 или магия продуктивной разработки

38Магия продуктивной разработки, Тимур Рахматиллаев

Спасибо за внимание

Тимур Рахматиллаев

ByndyuSoft

[email protected]

twitter.com/eskat0n