"За" и "против" дополнений для VisualStudio.
Обзор возможностей CodeRush.
Как использовать Шаблоны для ускорения разработки.
Рефакторинг, статический анализ.
Roslyn, VS 2014 и CodeRush.
Преимущества создания кроссплатформенных приложений с использованием Phone ga...
Программируем быстрее с CodeRush
1. Программируем быстрее с
CodeRush
Александр Захаров
https://www.devexpress.com
Developer Express Inc.
2. О КОМАНДЕ
• Разработка дополнений для VisualStudio
• CodeRush (CR) - наш основной продукт
• Цель - удобный иснтрумент для
эффективной ежедневной разработки
4. ЗА И ПРОТИВ ДОПОЛНЕНИЙ ДЛЯ VS
• Новые возможности
• Повышение эффективности
• Удобство использования
• Влияние на IDE (память,
производительность, стабильность)
• Нарушение привычек разработки
5. ОБЗОР ОСНОВНЫХ ВОЗМОЖНОСТЕЙ CR
• Работа в редакторе
• Шаблоны кода
• Рефакторинг
• Навигация
• Статический анализ
• Работа с тестами
• Инструменты отладки
6. РАБОТА В РЕДАКТОРЕ
• Tab to Next/Prev Reference (Tab, Shift + Tab)
• Selection Expand/Reduce (Ctrl+W,
Ctrl+Shift+W)
• Selection Comment (‘, /)
• Camel Case Left/Right (Alt+Left, Alt+Right)
• Camel Case Select Left/Right (Shift+Alt+Left,
Shift+Alt+Right)
• Paste Replace Word (Ctrl+B)
7. ШАБЛОНЫ КОДА
c - class
i - interface
s - struct
d - delegate
m - method
p - property
a - auto property
r - readonly property
w - write only property
f - field
v - variable
8. ДИНАМИЧЕСКИЕ ШАБЛОНЫ
v - void
o - object
by - byte
sh - short
i - int
c - char
s - string
b - bool
u - uint
l - long
f - float
d - double
de - decimal
d8 - DateTime
ip - IntPtr
19. VISUAL STUDIO 2015, CODERUSH
• Roslyn - cервис компиляторов C# и
VisualBasic
• API доступный в Visual Studio
• То на чем работает Visual Studio
• Меньше потребление памяти
• Производительность
Добрый день, меня зовут Александр Захаров, я представляю компанию DevExpress.
В своем докладе я расскажу вам про CodeRush и как можно программировать быстрее с его использованием.
Сначала несколько слов о компании DevExpress и команде.
Наша компания занимается разработкой UI компонентов - это основное направление нашей деятельности.
Мы начинали с VCL рынка, а сейчас основные наши платформы это WinForms, WPF, ASP.NET.
Также компания работает над продуктами для мобильной разработки и для JavaScript разработчиков.
Помимо UI компонентов, мы разрабатываем еще и дополнения для Visual Studio
Моя команда трудится над CodeRush.
Это отдельное направлеине разработки нашей компании.
CodeRush - это дополнение для VisualStudio.
Цель продукта - предоставить разработчикам удобный инструмент для повышения эффективности при решении ежедневных задач программирования.
Мы начинали еще с поддержки VisualStudio 2003.
CodeRush неоднократно отмечался раличными призами и наградами.
Иллюстрация - визуальные элементы, которые добавляются после установки CodeRush в VisualStudio.
Зачем нужны дополнения для VisualStudio?
Есть свои “за” и “против”.
У нас в компании есть разработчики, которые используют дополнения для VisualStudio
и в то же время есть те, кто очень ревностно относится к своей IDE и никогда ничего не устанавливает.
Аргументация при этом разная.
Те кто не использует дополнения говорят:
Это влияет на мою IDE
Потребление памяти может быть больше.
Время запуска может увеличиваться.
Стабильность может нарушаться.
Дополнения добавляют непонятно что и я неузнаю свою IDE.
Но в то же время разработчиков, которые хотели бы получить дополнитльные функции в IDE значительно больше.
Они хорошо осознают и видят на практике, что дополнения - это новые возможности.
Новые возможности дают прирост эффективности.
Такие люди сами ищут пути улучшения своей работы.
И они всегда задаются вопросом, что и как можно улучшить.
Ради таких разработчиков мы и работаем.
Что же мы можем предложить?
Время доклада не позволяет рассмотреть все, поэтому я расскажу об основных возможностях продукта.
Итак, CodeRush это:
Улучшения при наборе кода
Шаблоны кода
Инструменты рефакторинга
Навигация
Статический анализ
Работа с тестами
Инструменты отладки
Часто возникает задача быстро найти и посмотреть все места где используется тот или иной символ
CodeRush позволяет это сделать непосредственно из кода нажав Tab или Shift + Tab когда каретка находится на идентификаторе
Для расширения или уменьшения выделенного кода можно использовать Ctrl+W и Ctrl+Shift+W
Для того чтобы закоментировать часть кода, можно нажать ‘ или /
Навигация по частям идентификаторов и выделение частей - Alt+Left, Alt+Right, Shift+Alt+Left, Shift+Alt+Right
Вставка сразу с заменой текущего слова - Ctrl+B
Шаблоны кода это одна из больших и мощных возможностей CodeRush.
Шаблоны позволяют быстро добавить конструкции кода, которые очень часто набираются в повседневной работе.
Например: декларация типов, полей, методов, свойств, событий, переменных и параметров.
Для декларации типов (классов, структур, интерфейсов и делегатов) используются шаблоны
c - декларация класса
i - декларация интерфейса
s - декларация структуры
d - декларация делегата
Для декларации элементов типов есть следующие шаблоны:
m - метод
p - свойство
r - readonly свойство
w - writeonly свойтво
f - поле
v - переменная
В CodeRush есть динамические шаблоны.
В динамических шаблонах часть мнемоники шаблона может менятся и выбираться из заранее определного списка.
Динамические шаблоны в принципе по внешнему виду ничем не отличаются от обычных шаблонов.
С динамическими шаблонами можно работать для декларации элементов с определенными возвращаемыми типами.
Например если нам нужно объявить метод, который возвращает тип string, то в этом случае мы набираем
m затем s - и нажимаем клавишу раскрытия шаблона (Пробел)
Таким образом мы раскрыли шаблон ms
В данном случае после мнемоники вторая буква указывает на тип:
s - string,
i - int,
b - bool и т.д.
Здесь наглядно представлены примеры раскрытия шаблонов:
mb, ms, ac, ad8
Заранее определенных шаблонов в CodeRush очень много, и может потребоваться некоторое время,
чтобы в них разобраться.
Но могу сказать, что оно того стоит если вы хотите быстро набирать код.
Можно постепенно изучать один шаблон за другим, тратя на это пару минут в день.
Запомнить на практике основные мнемоники и типы шаблонов.
Это не займет много времени, но потом сэкономит значительно больше.
И уже через неделю можно будет максимально использовать шаблоны при наборе кода.
В CodeRush реализовано более 100 рефакторингов.
Полный список и то как они работают можно найти на нашем сайте.
В CodeRush есть один шорткат для доступа к рефаторингам: Ctrl+~
Очень часто наши пользователи применяют следующие рефакторинги:
Move Type to File
Use String.Format
Introduce Constant
Promote to Parameter
Add Parameter
Иллюстрация работы рефакторинга Move Type to File.
Выбираем тип, нажимаем Ctrl+~, выбираем Move Type to File.
Иллюстрация работы рефакторинга Use String.Format
Здесь мы помещаем каретку на строку, нажимаем Ctrl+~ выбираем Use String.Format.
Есть хинт, который показывает результат применения рефакторинга.
Навигация в коде имеет очень важное значение.
В CodeRush есть несколько возможностей для навигации в проекте.
Для навигации по файлам можно использовать маркеры, для того, чтобы установить маркер нужно нажать Alt+Home
Для того, чтобы вернуться к маркеру, нужно нажать Esc.
Маркеры работают как стек.
Для работы с букмарками используются комбинации
Ctrl+Alt+1 - для того, чтобы установить букмарк
Alt+1 - для того, чтобы перейти к установленному букмарку
Используя Ctrl+~ меню можно снавигироваться на декларацию символа находящегося под кареткой.
Jump To:
Declaration
Descendants
Overrides
Virtual Member Ancestor
Quick Nav и Quick File Nav позволяют быстро снавигироваться к нужному типу или к нужному файлу.
Quick Nav открывается комбинацией Ctrl+Shift+Q
Quick File Nav открывается комбинацией Ctrl+Alt+F
Можно использовать поиск и фильтрацию.
В CodeRush есть статический анализ кода.
Есть много правил для анализа, все их не перечислить, можно ознакомится в документации или на нашем сайте.
Также можно добавлять свои правила проверки, для этого нужно написать плагин.
Система расширений в CodeRush позволяет это сделать.
CodeRush изначально поддерживает расширения, поэтому очень многие вещи можно сделать через плагины.
Наряду со статическим анализом и поиском проблем в коде в CodeRush есть поиск дубликатных участков кода.
Анализ дубликтов работает как на Copy Paste участках кода, так и на участках кода которые были скопированы а потом изменены.
Конечно здесь нельзя говорить о поиске 100% функционально идентичных участках кода.
Проверка прежде всего делается на основе структурной эквивалентности.
Для поиска дублирующихся участков делается нормализация структуры кода.
Т.е. сначала выполняется ряд преобразований кода, и потом происходит сравнение.
Для найденых дублирующихся блоков, если это возможно предалагается возможность объединения
их в один участок кода и измениением всех остальных участков.
Консолидация кода.
CodeRush позволяет запускать и отлаживать тесты непосредсвенно из кода.
Для каждого тестового метода и фикстуры в коде добавляются иконки, при нажатии на которые можно запустить или отладить тест.
Также состояние теста показывается непосредсвенно в коде.
Это очень наглядно и удобно в режиме TDD.
Кроме того есть окно Unit Test Runner где можно увидеть все тесты во всех проектах, запустить их и посмотреть статистику.
Окно тест раннера удобно использовать если нужно запустить все тесты, или провести поиск нужно теста.
Отладка кода - это очень важный этап в программировании, и может занимать время.
Здесь от UI отладчика может зависит очень многое.
Мы в CodeRush постарались упроситить процесс отладки при помощи инструментов визуализации.
В процессе отладки CodeRush показывает значения переменных и параметров непосредсвенно в коде.
Не нужно переключаться и добавлять переменные в окно Watch.
Все необходимые значения сразу видны в коде.
Visual Studio 2015 будет включать в свой состав Roslyn.
Roslyn - это сервис компиляторов C# и VisualBasic.
Нам это очень интересно.
Сейчас мы работает над переводом части основной функциональности CodeRush на API Roslyn.
Ипользование Rolsyn позволит нам сосредоточиться больше на конечной функциональности для разработчиков,
а поддержка новых версий языков C# и VisualBasic и огромного пласта функциональности компиляторов будет осуществляться командой VisualStudio.
Из заметных преимуществ здесь как раз можно отметь то, что мы сможем решить одну из проблем дополнений для VisualStudio о которых я говорил в начале доклада.
Мы значительно уменьшим дополнительное потребление памяти и также сможем сделать CodeRush намного быстрее.
На данный момент версия CodeRush, использующая Roslyn находится еще в ранней стадии.
Мы планируем в следующем году выпустить первую версию.
И дальше будем наращивать набор функционала и постепенно переводить все больше и больше фич из CodeRush.