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

:

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


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


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

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


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


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

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

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

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


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

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

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

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

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

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


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

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

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


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

Show usages


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

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

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

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


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

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

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

А второй там же, в подменю «Smart keys»:

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


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

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

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

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

Inspections


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

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

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


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

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

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

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

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

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


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

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

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


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

Дорогие ребята из JetBrains, если это вам поможет сделать IDEA ещё лучше — следите за мной, анализируйте меня, берите всё что потребуется!

Чистого кода вам в наступающем!