JavaRush /Курсы /Java Collections /IDEA: refactoring

IDEA: refactoring

Java Collections
9 уровень , 7 лекция
Открыта

— И снова здравствуйте.

— Привет!

— Сегодня я расскажу тебе про рефакторинг(re-factoring). Рефакторинг – это изменение кода проекта без изменения его функционала.

— А как такое может быть?

— Ну, в самых простых случаях – мы переименовываем переменные и/или методы. От переименования переменных программа ведь по-другому работать не станет?

— Нет, конечно.

— Вот, затем можно разбить большие методы на несколько отдельных.

Можно вынести повторяющиеся куски кода в отдельный метод.

Некоторые функции обозначить как static, а затем вынести их в утилитные классы.

Но это рефакторинг в узком смысле.

Иногда под рефакторингом понимают переписывание (улучшение) архитектуры проекта, без добавления новой функциональности. Это рефакторинг в широком смысле.

Intellij IDEA стала самой популярной IDE (среда разработки) именно потому, что первая внедрила очень мощные средства рефакторинга.

— Что же это за волшебные штуки такие-то?

Волшебство первое – изменение имени метода.

— Представь, что в твоем коде есть метод, который вызывается из 100-500 других мест. И ты решил сменить его имя на более читаемое. Скажем, было run(), а стало runDownloadTaskAsync(). Насколько быстро это сделать?

— Ну, сначала надо поменять имя этого метода, затем искать в программе все места, где этот метод вызывается, и менять его имя там.

— А как ты будешь его искать?

— Я бы просто запустил программу, и Intellij IDEA бы выдала все ошибки, где вызывается метод, которого нет.

— Хорошо, а допустим, у тебя у каждого метода есть поясняющий комментарий (JavaDoc), в котором написано что делает этот метод, и там написано его старое имя.

— Я поменяю и комментарии.

— А ведь могут еще быть переменные, название которых связано с именем метода, хорошо бы и их поменять тоже:

Было Стало
Task task = manager.run();
Task asyncTask = manager.runDownloadTaskAsync();

— Да, хорошо бы поменять имена и этим переменным. Не помешало бы.

— Так вот, это все можно сделать с помощью Intellij IDEA за пару секунд!

Становишься курсором на имя метода (или кликаешь по нему мышкой), затем жмешь Shift+F6 и просто начинаешь вводить нужное имя метода.

Пример: редактирование имени метода.

Начало редактирования:

IDEA: refactoring - 1

Указали новое имя:

IDEA: refactoring - 2

Просто вводишь новое имя, жмешь enter и все. Все вызовы данного метода в проекте переименованы.

Intellij IDEA также обычно дополнительно спрашивает – надо ли переименовывать переменные и имена методов в комментариях. Достаточно просто нажать «да», и она все сделает.

При этом если до рефакторинга проект компилировался, будет и после.

— Звучит очень многообещающе.

— Кстати, имена переменных можно поменять так же. Стал на имя, просто жмешь Shift+F6 и все – можешь вводить новое имя, и везде, где используется эта переменная, оно поменяется.

Если переменная была полем класса и у нее были getter и setter, они тоже сменят имя, чтобы соответствовать новому имени переменной.

— Попробовал с переменными. Все работает, как ты и говоришь, Элли. Рефакторинг — это круто!

— Ты думаешь – это весь рефакторинг? Да там столько всего, что мы и десятой части не коснулись.

— Ого. И что же там еще?

Волшебство второе – вынос переменной.

— Иногда в коде часто повторяются некоторые выражения, что аж хочется вынести их в отдельную переменную. Пример:

Код
public void printInfo(User user)
{
 System.out.println(user.getProfile().getName());
 System.out.println(user.getProfile().getAddress().getState());
 System.out.println(user.getProfile().getAddress().getCity());
 System.out.println(user.getProfile().getAddress().getStreet());
 System.out.println(user.getProfile().getAddress().getHomeNumber());
}
Как хочется сделать, глядя на него:
public void printInfo(User user)
{
 Address address = user.getProfile().getAddress();

 System.out.println(user.getProfile().getName());
 System.out.println(address.getState());
 System.out.println(address.getCity());
 System.out.println(address.getStreet());
 System.out.println(address.getHomeNumber());
}

— Ага.

— А ведь бывает и куда более сложный код, в котором очень много повторяющихся частей.

Программисты так не специально пишут. Но часто случается, что надо в метод что-то дописать, потом еще что-то, и со временем количество избыточных частей зашкаливает.

К тому же, создавая отдельную переменную, мы может дать ей правильное имя и улучшить читабельность кода.

Например, в примере выше, речь может идти не об адресе проживания, а об адресе, куда можно обратиться в случае, если с человеком что-то случится. Тогда можно назвать переменную не address, а, скажем, supportAddress. Тогда, программисту, который видит этот код в первый раз, будет понятнее, что тут происходит.

— Да, согласен, добавление таких переменных имеет смысл.

Так как это сделать?

— Вынести какое-то выражение в отдельную переменную очень просто.

Шаг 1 – выделяем мышкой выражение.

IDEA: refactoring - 3

Шаг 2 – нажимаем Ctrl+Alt+V

IDEA: refactoring - 4

Появляется окно, где Intellij IDEA нас спрашивает – заменить только одно выделенное выражение или заменить все выражения (4 шт.)?

Выбираем второй пункт – заменить все вхождения (Replace all 4 occurrences)

Шаг 3 – нажимаем Enter.

IDEA: refactoring - 5

Intellij IDEA предлагает ввести имя переменной. И сразу предлагает свой вариант имени. Не так уже он и плох, да?

— Ага. В самую точку. Мы тоже собирались назвать переменную address. А как она догадалась?

— По имени последнего метода в выражении – он возвращает адрес, значит, скорее всего, в переменной хранится именно адрес.

— Отлично получилось. Классная штука, Элли.

Волшебство третье – вынос кода в отдельный метод.

— А ведь можно было сделать и по-другому. Можно было объявить новый метод, например, printAddress и вынести весь этот код в него.

Давай, так и попробуем сделать.

Шаг 1 – выделяем 4 строчки кода, которые используют переменную address:

IDEA: refactoring - 6

Шаг 2 – нажимаем Ctrl+Alt+M

IDEA: refactoring - 7

Intellij IDEA сама определила, какие переменные будут нужны этому методу, и предлагает нам, как он будет выглядеть. Осталось только ввести имя метода.

Шаг 3 – вводим имя метода — printAddress и жмем Enter.

IDEA: refactoring - 8

Как тебе результат?

— Это офигенно. Intellij IDEA не только вынесла код в отдельный метод, она еще и добавила туда все нужные переменные. Так еще и имена угадала правильно.

Комментарии (42)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anemon Уровень 13 Expert
25 апреля 2025
Очень правильно что в конце снова напомнили многое и подсказали новые фишки. На старте это всё абсолютно не так ощущалось и было мало понятно. Сейчас же всё это буквально чувствуется как сила Богов. Спасибо большое)
Kurama Уровень 50
23 апреля 2023
Я б уже тогда в отдельную переменную не выносил, оставил бы так:

public void printInfo(User user) {
    System.out.printin(user.getProfile().getName());
    
    printAddress(user.getProfile().getAddress());
}

private void printAddress(Profile.Address address) {
    System.out.printin(address.getState());
    System.out.printin(address.getCity());
    System.out.printin(address.getStreet());
    System.out.printin(address.getHomeNumber());
}
NacWay Уровень 37
24 марта 2023
А есть горячие клавиши чтобы на работу сразу устроится?
И. Ж. Уровень 41
28 февраля 2024
Работа, то мираж, иллюзии, сказки, как бы где то есть, но и не существует.. Вечное изучение, да и все... Так для хобби, развития да, а там авось и пройдет где то..
Макс Дудин Уровень 41
5 августа 2022
Да блин.... и только сейчас..... уже столько раз бы мог...
Ilia lenskii Уровень 32
22 сентября 2022
Этим фсё равно никто не пользуется, потому что это не встречается в коде
Kotamadeo Уровень 51
11 января 2023
Скорее в коммерческой разработке не пользуются мышью от слова совсем хд
Anemon Уровень 13 Expert
25 апреля 2025
О да, сверх полезные штуки, которыми пользуются все и везде. И теперь мы тоже о них знаем)
Алексей Мирный Уровень 41
20 января 2021
Очень понравилась статья
Konstantin Уровень 41
18 сентября 2020
1. Волшебства в IT нет. 2. Инструменты рефакторинга стандартны для большинства IDE. P.S. Сделали из Идеи неподражаемый фетиш. Радужный единорог б@@@@.
Тот кто в танке Уровень 1
2 ноября 2020
справедливости ради, IDEA мощная штука.
Konstantin Уровень 41
2 ноября 2020
Вопрос не в мощности, а в том что из Идеи сделали гламурный фетиш, считая что она единственная и неподражаемая в своём роде IDE. Это не так. Учитывая что это проприетарный продукт, то его просто разрекламировали маркетологи компании JetBrains. Более того, всем новичкам пихают на всех учебных курсах, подсаживая как наркоманов на "единственно-правильную" мощную IDE.
Тот кто в танке Уровень 1
2 ноября 2020
какую IDE порекомендуете? Курс тут я заканчиваю уже, вполне можно свой проект на другой попробовать. Сравнить с высоты своего небольшого опыта так сказать)
Konstantin Уровень 41
2 ноября 2020
Я использую Eclipse и вполне доволен. Некоторые вещи, как по мне, реализованы сильно удобнее чем в Идее, например подключение Tomcat и т.п. серверов. Установить или скачать "Eclipse for JavaEE Developers" - это предсобранный пакет для работы как с Java SE, так и Jave EE. Но для успешной работы с затменькой нужно поучиться и подключить плагины. Плагины, думаю разберётесь какой за что отвечает: checkstyle darkest dark pmd eclipse-pmd jboss-tools (можно также посмотреть плагин по freemarker от jboss, но это когда нужно будет разбираться с freemarker-ом) spotbugs spring-tools 4 - ставить после 3-ей версии, иначе будет конфликт spring tools 3 addon for spring tools 4 - ставить перед 4-ой версией, иначе будет конфликт markdown text editor jacoco(already installed) infinitest dbeaver ANSI Escape on Console ResourceBundle Editor https://www.eclipse.org/mat/ - анализатор дампов кучи полученных с помощью visualVM - https://visualvm.github.io/ Enhanced Class Decompiler - декомпилятор grep console - парсит вывод в консоль. Удобно для раскрашивания логов выводимых в консоль. Lombok - полезная штука упрощающая написание шаблонного кода Курс, который мне понравился - "Learning Path: Beginning Java, 2nd Edition" . Найдёте на каком-нибудь треккере. Там в составе идёт курс по Eclipse. Книг не читал, поэтому сами что-то ищите. Сразу хочу оговорить, чтобы потом не было вопросов - проблемы с установкой и обновой плагинов бывают довольно часто(гарантировано голова болеть будет всегда). Например я некоторые плагины не мог установить потому что версия JDK была 11, а когда поставил 14-ую, то проблема ушла. Также обновлять клиент придётся вручную и переустанавливать плагины(по крайней мере у меня это регулярная проблема). Этот процесс можно упростить добавив нужные плагины в Favorites и сохранив их список в аккаунте на сайте eclipse.org. В дальнейшем в Eclipse Marketplace можно будет выбрать для установки сразу все, ну или почти все плагины пачкой. Просто не будет, но оно того стоит.
Тот кто в танке Уровень 1
2 ноября 2020
спасибо!
Konstantin Уровень 41
3 ноября 2020
Пожалуйста. Вот ещё ссыль на доку по разным плагинам, включая базовый интерфейс - https://help.eclipse.org/2020-09/index.jsp . И ещё один плагин для работы с UML-диаграммами - Papyrus. Устанавливать лучше на отдельный клиент для JavaEE Developer-ов. Одной из удобных фич Papyrus-а является возможность реверс-инжиниринга исходного кода проекта в UML-диаграммы, и что более интересно из UML-диаграмм в код :) (в теории, при определённой практике, можно упростить генерацию исходников начального проекта). Очень помогает в понимании структуры проекта. А вообще - Eclipse - швейцарский нож. В нём столько свободного функционала, который проприетарным IDE и не снился, в том числе и Идее, что можно изучать годами. Кроме того, если мне нужен будет инструмент под другую задачу, то я его просто скачаю, а не буду покупать очередной пакет от проприетарной компании. Успешного освоения.
Тот кто в танке Уровень 1
3 ноября 2020
Konstantin Уровень 41
3 ноября 2020
Пожалуйста.
Justinian Уровень 41 Master
6 января 2021
// считая что она единственная и неподражаемая в своём роде IDE классика манипуляции. Самому придумать утверждение, самому опровергать и используя его обвинять кого-то. Отлично. Лично я не встречал ни одного человека, который считал Идею "единственной ИДЕ, волшебным единорогом". Фетишем? Возможно. Как нож является фетишем для повара, а авто является фетишем для водителя, меч для самурая и тд. Это нормально профессионалу относится с уважением к своему инструменту Кей Хорстман, Роберт Мартин, Мартин Фаулер, Евгений Борисов , сотни авторов книг, тысячи докладчиков на крупнейших джава конференциях, десятки тысяч синиоров, техлидов и архитектов, подавляющее большинство отрасли использует Идею, это просто факт. Доля эклипса неуклонно снижается с годами. При этом, эклипс имеет свои преимущества, большую гибкость в расширениях, там где нетривиальные задачи на джаве, там с помощью джавы сделать расчеты симуляции ядерного взрыва или еще что, в основном в научной сфере, или в коммерческих специфических кейсах, то да, Эклипс может быть хорошим выбором. Но большинство джавистов будут на работе использовать Идею, она для веб энтерпрайза безальтернативно удобная. Идея, Эклипс, Нетбинс и еще с десяток ИДЕ, это лишь инструменты. Для каждой задачи есьт свой инструмент. Web проекты и BE enterprise это Интеллидж Идея, и маркетологи здесь не причем, бизнес считает деньги, если бы Эклипс был бы хоть даже на 10-15% хуже Идеи, никто бы Идею не пользовался, бизнес (клиенты) бы сказал разработчикам "используйте Эклипс!". Но разрыв гораздо больше, поэтому те ктосчитает деньги, и знает что за одно и то же время, разработчики на эклипсе сделают меньше чем те, кто на Идее, и начал внедрять Идею, которая продолжает увеличивать долю на рынке. Не благодаря маркетологам, а благодаря своим потребительским качествам. Я использовал и то и то, для стандартных задач и для веба Идея на порядок удобней, я использую то что удобней. Станет завтра Эклипс удобней буду использовать его.
Konstantin Уровень 41
6 января 2021
Не будете вы использовать Eclipse. Потому что считаете IDEA лучше, о чём так горячо писали. В попытке обвинить меня в манипуляции, вы сами отманипулировали предлагая в качестве подтверждения свои слова о миллионах пользователей, которые безусловно пользуют IDEA, потому что она выгоднее для бизнеса. Хотя вот этот отрывок меня удивил - "если бы Эклипс был бы хоть даже на 10-15% хуже Идеи, никто бы Идею не пользовался". Т.е. если Eclipse хуже чем нынешняя IDEA, то IDEA никто бы не пользовал? Или что-то не так или одно из двух. Да и проценты видимо среднепотолочные. Все IDE одинаковые и имеют в большинстве своём одинаковый функционал, где-то больше, где-то меньше. Они даже плагины имеют одни и те же. IDEA проприетарный продукт и он рекламируется в том числе через обучающие курсы вроде этого, предоставляя новичкам, как наркоманам, первую дозу-ключик на полгода бесплатно. Это действия маркетологов, а не самураев. Маркетологи у проприетарной компании есть и продукт они свой делают не за ради красивых отзывов, а за бабло. А в капиталистическом обществе, в котором погрязла вся планета, бабки это единственный достойный внимания фетиш и ценность. А потому IDEA будут продвигать всему доступными способами, вкладывая в умы, что это "люччая" IDE, а потому достойная оплаты. Ведь если вы не будете считать что она "люччая" вы ведь не заплатите за неё деньги? Или заплатите? Ну тогда вы платите за плохой продукт, просто потому что... что? Зачем вы платите за плохой продукт? Платить можно только за "люччее". (Продолжение следует)
Konstantin Уровень 41
6 января 2021
Я обучался на трёх проектах и все они втюхивают только IDEA, даже не предлагая вариантов. Просто размазывают сопли о том что она лучше. Самое интересное мне всегда было интересно узнать, а какие аргументы будут приведены в пользу IDEA. Ответы прям парад лени и гламура: 1. На первом месте конечно же для любого - "Alt+Enter" - режим отключения мозга. Особенно падки юные падаваны. 2. На втором месте - "потому что мерседес". Тут сразу же надо предположить что высказывающийся является счастливым обладателем гламурного фетиша - макбук от компании Огрызок. 3. На третьем - "я считаю IDEA лучше потому что привык и мне в других IDE, в частности Eclipse неудобно". Ну так это - если тяжко выучить другое расположение кнопочек, так это не инструмент гавно, а элементарная лень понять как он работает. А потом, когда новички привыкнут к Alt+Enter, потому что так проще, а не "лучше", как вы выразились, когда IDE сама пишет за них код, то начинают бегать по интернету за следующей дозой-ключиком, потому что платить не хочется, а условный рефлекс нажимания Alt+Enter выработался. А если, вдруг, возникнет вопрос о переходе на другую IDE, то ничего не произойдёт. Знаете почему? А потому что лень. Я таких примеров ленивого разума видел немало, когда у человека начинается истерика и паника когда он видит другие кнопочки. Потому и работодатели предпочитают IDEA - потому что она стандартизирует код за программиста. А программисты превращаются в кнопкодавов. Хотя профессия программиста уже давно стандартизирована и настоящие программисты пишут языки, а не фреймворки, а тем более не пользуются фреймворками. Моё мнение - наркоманы пусть бегают за дозой дальше. Те же кто понимает язык и продолжает в нём развиваться будут писать хороший код даже в блокноте. (Продолжение следует)
Konstantin Уровень 41
6 января 2021
Вот например, если JavaRush наконец-то запилит плагин для задач не только для IDEA, но и хотя бы для Eclipse и таким образом можно будет делать выбор, вот тогда можно будет поговорить о непредвзятости. Но этого не будет. Знаете почему? Потому что курсу 8 лет, а они его до сих пор обновить не могут. Как пример - до сих пор не могут доделать висящие в ветке квестов "SQL+Hibernate" и "JSP+Servlets". С чем это связано - только им известно, хотя конечно предположения есть. Если вы добрались до конца текста, не перепрыгивая в конец, и смогли его осилить с начала и до конца, то поздравляю. Надеюсь я смог донести свои мысли по данному поводу и вы не посчитаете что я пробовал вами манипулировать и поднять революцию из одного поста под никому неизвестной статьёй о проприетарной IDE. Хотя как знать - "Из искры возгорится пламя" :). Что врядли, не те люди, не то время. Спасибо за внимание.
Justinian Уровень 41 Master
6 января 2021

Не будете вы использовать Eclipse. Потому что считаете IDEA лучше, о чём так горячо писали.
я использую, то что лучше, будут задачи где Эклипс будет лучше, я буду использовать Эклипс. У меня не подгорает от какой-то определенной ИДЕшки, я использую те инструменты, которые больше подходят и более эффективны для той или иной задачи. Так что, твои экстрасенсорные способности - знать кто и что будет использовать здесь дают сбой

Все IDE одинаковые
все автомобили одинаковы. Заз 968. Ока. Мерседес. Бугатти Вейрон. Автобус. Белаз. Они же автомобили, с чего бы им быть разными. Ну ну.

Потому и работодатели предпочитают IDEA - потому что она стандартизирует код за 
программиста. А
ты работодатель? Сколько проектов закрыл, каких масштабов, когда у тебя было IPO, на какой бирже и какие его результаты, сколько и кто у тебя работает? Откуда тебе знать почему и что предпочитают работодатели?

А программисты превращаются в кнопкодавов. 
...
Моё мнение - наркоманы пусть бегают за дозой дальше.
Фаулер, Борисов, Хорстман, Мартин кнопкодавы "наркоманы бегающие за дозой"? М-да уж. Во всем нужен баланс, слепо во что-то верить плохо, но повторюсь, то что ты описываешь существует либо в твоей голове, либо разве что у некоторых только приступивших к изучению джавы, а это не самое страшное, что есть в их головах, и оно со временем уйдет. Я знаю десятки, сотни джавистов, от синиоров и архитектов до очень известных личностей, из всего многообразия, на эклипсе видел несколько преподов 50+ в вузе, +на продакшене 1 кейс знаю, когда клиент захотел эклпис, но что за проект детали не помню. 3 человека из сотен. Идея это всего лишь инструмент. Tools doesn't matters. People do.
Konstantin Уровень 41
6 января 2021
Ну вот опять. Расписал всё подробно, а толку ноль. В ответ только пропаганда "люччего" :). Не будете вы использовать Eclipse, потому что уже пользуетесь "люччим". У меня не "подгорает" от IDE, у меня подгорает от того что из неё сделали гламурный фетиш, а из программистов сделали блондинок рассказывающих какую классную новую IDE они купили. Программисты должны быть оплотом разума и холодного расчёта, а не хипстерами, которых из них делает мода. Не путайте предназначение разных видов машин с понятием самой машины. Писать код можно и в блокноте и в Word-е, а я вам об IDE говорил, а не обо всех видах редакторов текста. Как вы там говорили - подмена понятий, манипулирование? Ну-ну. А вы работодатель? Раз можете так свободно рассуждать о том что выгодно бизнесу? Думаю если бы были работодателем, то врядли зашли на этот ресурс под эту тему. У работодателя есть более интересные занятия чем разъяснять о преимуществах "самой люччей". Даже не знаю откуда вам известно какими IDE пользуются перечисленные люди. но даже если и так, то почему я должен их считать авторитетами в пользовании IDE? Я посмотрел не один десяток курсов в которых IDEA встречалась 1 из 10. И что теперь? Эти четверо круче всех остальных? Подмена понятий. Вы всё ещё пытаетесь манипулировать начав с этого эту дискуссию. А за дозой бегают как раз новички. Подсевшие её просто покупают без бега. Баланс будет только при одинаковых условиях распространения IDE. А без этого только дисбаланс. Так что не надо делать из себя помимо программиста ещё и психиатора или экстрасенса и пытаться заглянуть мне в голову. Заблудитесь. Десятки, сотни "от синиоров и архитектов"... МИЛЛИОНЫ! и "Имя им Легион" :). Пафосно, но может для детей сойдёт :). В остальном скучно с вами. Вы ни в чём меня не убедите. Аргументов не хватит. Вы и те что имели по второму кругу пустили и использовали мои слова извратили не поняв. Не смею вас отвлекать от ваших более продвинутых сотен сеньоров и архитекторов :).
Андрей Уровень 41
14 декабря 2021
Думал как раз об альтернативе идее, но мне не нравится, когда голова болит.
LuneFox Уровень 41 Expert
18 марта 2022
1. Волшебства в IT нет.
Тогда зачем у меня лежит бубен перед компом?...
aDuVaN4Ik Уровень 42
29 декабря 2022
Спустя год всё же допилили. Однако даже упражнений нет, сплошной текст. Хотя за эти года могли и доделать SQL квест
skrskr Уровень 39
5 февраля 2020
Для понимания насколько мощные инструменты рефакторинга в Intellij IDEA. Ходил я в 2019 году на конференцию для джавистов JPoint, там была куча докладов, которые я наполовину понимал (Про Jenkins, Kafka, Netflix Eureka, Spring и тд). Один из докладчиков был действующим разработчиком Intellij IDEA, и его доклад был на тему рефакторинга в нашей ide. Суть примерно такая - Intellij IDEA позволяет вам делать рефакторинг только горячими клавишами или инструментами ide на 95%+, то есть вы практически не пишите новый код ручками, максимум имена переменным или методам даёте. Так что хорошее знание внутренних инструментов вам сильно поможет.
Jaroslav Melnychenko Уровень 41
15 мая 2020
Оно? https://www.youtube.com/watch?v=C5eD-K8AO3o
skrskr Уровень 39
27 мая 2020
Да, всё верно
Илья Уровень 24
3 ноября 2021
Отличное видео!)Частью фич уже пользовался, но узнал для себя много нового и полезного)
ivan Уровень 40
23 июля 2023
Andrey Morozov Уровень 40
20 ноября 2018
Выделяем кусок кода, ПКМ > Refactor > Extract > и там указаны все варианты с горячими клавишами (которые почему-то не всегда отрабатывают, так что через контекстное меню надежнее)
Павел Х. Уровень 41 Expert
20 декабря 2018
Советую поставить плагин Key Promoter X. Он будет подсказывать горячие клавиши.
Вадим Уровень 40
22 февраля 2018
Это всё уже было когда проходили рефакторинг
NodeOne Уровень 41 Expert
27 марта 2019
эх... мне бы вашу паять, да хоть половинку(
Ro Do Уровень 40
13 декабря 2017
Полезно.