Настройка IDEA для чистокодеров

в 22:11, , рубрики: Без рубрики

Я люблю две вещи: Intellij IDEA и чистый код (Clean Code).
IDEA создана для чистого кода. Многие дефалтовые настройки уже стимулируют вас писать как надо.

Настройка IDEA для чистокодеров
Но она всё ещё не идеальна.
Когда я устанавливаю новую копию IDEA, я пробегаю по настройкам и выставляю свои любимые галочки.
Хочу ими с вами поделиться в надежде, что когда-нибудь и они станут дефалтовыми.

Чистый код — это

Для начала напомню, что такое чистый код в моём понимании. Чистый код — это (в том числе)

  • Минимум комментариев. Код должен быть читаем сам по себе.
  • Небольшие функции. Длинные функции должны быть разбиты на несколько маленьких с говорящими именами.
  • Частые коммиты. Каждый коммит должен быть атомарным и делать одно изменение, а не кучу разных.
  • Тесты. Не просто наличие тестов, а предельное внимание к ним.

Давайте посмотрим, что нужно настроить в IDEA, чтобы она способствовала написанию чистого кода.

Мои любимые галочки

Стандартные заголовки

Первым делом я всегда удаляю самый большой буллщит в Intellij IDEA — стандартный заголовок файлов:
Настройка IDEA для чистокодеров

Вся информация об авторах и датах должна храниться в специально отведённом для этого месте — системе контроля версий. Я не хочу захламлять этим код!

Аналогичным образом удаляю стандартные заголовки для некоторых языков:
Настройка IDEA для чистокодеров

Неисключительные исключения

Примерно в том же меню я удаляю надоедливые «throws Exception» в шаблонах для JUnit:

Настройка IDEA для чистокодеров

Настройка IDEA для чистокодеров

Они не нужны в большинстве случаев и только загрязняют код.

Чем меньше кода, не несущего полезной логики — тем лучше!

А там, где они понадобятся, IDEA добавит их на раз.

За чистотой тестов надо следить ещё внимательнее, чем за чистотой кода!

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

Дальше я ставлю галочку «auto import». Когда я пишу в коде новое имя класса, пусть IDEA сама его моментально импортирует. Почему я должен беспокоится о том, что компьютер может сделать за меня? Лучше я не буду отвлекаться от действительно важных мыслей.

Настройка IDEA для чистокодеров

Это аццки удобная фича, попробуйте!

Работа с вкладками

Возможно, это уже дело вкуса и зависит от проекта, но для меня ограничение в 5 табов — просто неприемлимо. 20 как минимум! И когда я закрываю вкладку C, я интуитивно ожидаю, что я окажусь в предпоследнем месте B (откуда я пошёл в C). А когда я закрою и B, мне кажется логичным вернуться в A. Поэтому ставлю галочку «Activate most recently used tab». Варианты «пойти налево» и «пойти направо» — просто нонсенс.

Дорогой Дед Мороз, пожалуйста, убери их вообще из настроек IDEA, а я обещаю вести себя хорошо!

Настройка IDEA для чистокодеров

Show usages

Далее я обязательно назначаю комбинацию клавиш Ctrl+F7 на действие «Show usages». Это очень удобное действие, я его использую, наверное, чаще всех остальных! По умолчанию у него какая-то другая комбинация клавиш, не такая удобная. А Ctrl+F7 по умолчанию делает что-то другое, не такое полезное.

Настройка IDEA для чистокодеров

А действие «Show Usages» показывает все места, где используется данная переменная/метод, прямо тут же, в маленьком всплывающем окошке. Это чертовски удобно, не нужно переключать внимание и переносить взгляд в другое место! По нему можно удобно бегать вверх-вниз стрелками и закрывать простым ESC. Навигация на кончиках пальцев!

Вот как выглядит Show Usages в действии:
Настройка IDEA для чистокодеров

ВерблюжьиГорбы

Важная опция, про которую не все знают — это CamelHumps. Эта опция говорит, как должна вести себя IDEA со словами типа AbstractStudentFactory, где есть несколько заглавных букв. Я лично предпочитаю, чтобы

  • IDEA выделяля всё слово целиков, когда я дважды кликаю на него мышкой, и
  • IDEA бегала между большими буквами, когда я хожу по слову влево-вправо стрелками с нажатым Ctrl.

То есть если курсор стоит в начале слова AbstractStudentFactory, и я нажимаю Ctrl+вправо, я хочу, чтобы курсор скакнул к началу подслова «Student», а не сразу в конец. В IDEA по умолчанию ровно наоборот.

Первый пункт регулируется в Settings -> Editor (самая перва галочка):
Настройка IDEA для чистокодеров

А второй там же, в подменю «Smart keys»:
Настройка IDEA для чистокодеров

Автосохранение файлов

Многие знают (или догадываются), что IDEA автоматически сохраняет файлы, когда ты переключаешься в другую программу. Или когда запускаешь тесты. Это здорово. Не нужно постоянно нажимать Ctrl+S.

Вы не поверите: я до сих пор не могу избавиться от привычки постоянно жать Ctrl+S, хотя пересел с Eclipse на IDEA уже три года назад! Вот какая вредная привычка.

Но ещё было бы полезно, если б IDEA сохраняла файлы и просто так, когда я иду за чаем. Поэтому ставлю галочку «Save files automatically»:
Настройка IDEA для чистокодеров

И благодаря этому могу смело поставить ещё одну галочку, чтобы IDEA не спрашивала меня «Are you sure you want to exit IDEA»?
Настройка IDEA для чистокодеров

Меня не надо об этом переспрашивать. Я не боюсь закрыть IDEA в любой момент, потому что всегда могу открыть её снова, и там будут все мои файлы в целости и сохранности.

Inspections

Автоматические проверки кода — в наше время обязательное умение для IDE. В IDEA их много, полезных и не очень, не буду тут все рассматривать. Но одну я ставлю обязательно, причём строго с приоритетом «Error»: это «Missing @ Override annotation».
Настройка IDEA для чистокодеров

Это не имеет отношения к чистому коду. Просто я однажды провёл несколько вечеров в поиске зловредной неповторяемой баги, которая случалась потому, что кто-то случайно написал в подклассе метод с таким же именем, как в суперклассе (а именно, метод setUp в тесте). С тех пор я ревностно ставлю проверку на отсутствующую аннотацию @ Override.

Частые коммиты

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

Когда я следую этим правилам и коммичу 3 файла из 8 (остальные 5 я собираюсь тут же послать следующим коммитом), IDEA предлагает перенести остальные 5 файлов в другой «changeset». Возможно, это когда-то могло показаться удачной идеей, но в большинстве случаев я всё-таки собираюсь вскоре закоммитить и остальные 5 файлов тоже. Поэтому отключаем эту галочку:
Настройка IDEA для чистокодеров

Далее, когда я сделал несколько маленьких коммитов и хочу это дело запушить (git push), я сталкиваюсь с проблемой, что в IDEA нет комбинации клавиш для Push, а искать эту команду в меню реально неудобно. Делаем свой шорткат Ctrl+Shift+K:
Настройка IDEA для чистокодеров

Это удобно запомнить: Ctrl+K — коммит, Ctrl+Shift+K — пуш.

Дорогой Санта, добавь Ctrl+Shift+K в IDEA по умолчанию?

Учите, учите и ещё раз учите шорткаты!

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

Но один плагин я ставлю обязательно. Это Key Promoter plugin — надоедливый подсказчик, заставляющий меня учить шорткаты. Каждый раз, когда я выбираю какое-то действие мышкой, он тут же говорит мне: «А ты таки мог это сделать такой-то комбинацией клавиш!» Он такой надоедливый, что ты волей-неволей начинаешь использовать эти шорткаты, лишь бы не видеть его лишний раз.
Настройка IDEA для чистокодеров

Обратная связь

И наконец, последняя галочка. Я хочу, чтобы IDEA анализировала мою работу с ней и ежедневно посылала собранную информацию в JetBrains. Это мой вклад в развитие отличного продукта Intellij IDEA.

Автор: asolntsev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js