Programming
Java
Comments 60
+11
«Дефалтовые» настройки? Неуместный англицизм, как мне кажется. Весьма неплохо смотрится русское словосочетание «по умолчанию». Тем более при склонении Вы изменили правильное произношение. Прощай карма, ты пала жертвой в борьбе за чистоту и красоту русского языка.
+6
А можно было написать всё это в личном сообщении.
И текст улучшили и за карму беспокоиться не надо.
+2
Совсем нет. ЛС — это рекомендации на усмотрение автора, а автор может не усмотреть от себя такой ход, в отличие от исполнения всем известных правил грамматики.
+2
А слово «аццки» Вас не смутило, или просто не смогли до него добраться?
0
Я тоже люблю русский язык и стараюсь писать грамотно, если вы заметили. Иногда допускаю английские выражения — либо для шутки (как «аццки»), либо если русский аналог словсем уж непривычно звучит, и есть риск, что его не поймут. В данном случае «значения по умолчанию» мне покалось непривычным. Я посчитал, что «дефалтовые», как бы ни резало ухо, с большей вероятностью все поймут одинаково.
0
Тогда уж default-настройки :-) И чистота языка, я всем понятно.
Лучше английское писать по-английски, хоть и смешивание языков получится.

IMHO.
+3
Согласен, но не со всеми советами. Местами вы излишне категоричны.
А в целом спасибо, несколько опций подправил, и поставил Key Promoter (до этого использовал советы дня, PhpStorm — первая программа, в которой они по настоящему полезны).
+2
Особенно радует просьба к Санте кому-то устроить «кузькину мать» с обещанием за эту подлость вести себя хорошо.

Меня, например, наоборот убивает вариант «Activate most recently used tab»: нафига оно мне нужно? То есть я понимаю почему у людей может быть такая привычка, но у меня-то use-case совсем другой!

Я не закрываю табы с файлами пока я работаю с какой-то частью системы. Вообще. Когда же я закончил я прохожусь по всем табам слева направо закрывая бо́льшую часть табов и оставляя только долгоживущие (те, с которыми я ещё «не закончил»). Если же в продукте с какого-то перепугу активирована фича «Activate most recently used tab», то это простое действие превращается в муку. Я из-за этого долго не мог привыкнуть к Chrome'у, в конце-концов приловчился закрывать мышкой, но зачем в IntelliJ устраивать такой же ужас?
+5
Для изучения горячих клавиш рекомендую Help -> Productivity Guide. Это список основных фич с описанием и статистикой их использования. Именно там я открыл большинство неведомых мне ранее удобностей.
+8
Есть еще мега-комбинация Ctrl + Shift + A, показывающая список всех возможный действий в Идее с подсказкой комбинации клавишь и с поиском.
+8
Наверное, потом весело историю коммитов разгребать, в каждом из которых файлы всегда перезаписываются полностью вместо изменения пары строк.
0
А я предпочитаю настраивать в системе сборки автоматическое переформатирование всех исходников при каждой компиляции. Тогда не возникает проблемы с тем, что кому-то удобнее Eclipse, а кому-то IDEA и у них разные настройки форматирования.
+27
«Чистый код» тут как-то уж совсем за уши притянуть. Скорее вся статья — описание своих личных хотелок и предпочтений.
+12
Это ж какое самомнение надо иметь, чтобы считать свой use-case единственно правильным, подходящим для всех и каждого… Заголовок статьи дико притянут за уши. Пункты «ВерблюжьиГорбы», «Частые коммиты»,«Работа с вкладками» нужны далеко не всем, пункты «Show usages» и «Автоматический импорт» к чистому коду не имеет никакого отношения.

Звалась бы статья «полезные настройки» или вроде того, поменьше воды про санту (какой нафиг санта? у нас тут Дед Мороз!) было бы лучше. Гляньте например на статью Продуктивное использование PHPStorm, вот там материал действительно крайне полезный. Тут же у меня вся надежда на комментарии, статья короткая и слабая.
UFO landed and left these words here
0
Автор говорит как-бы (текстом и названием) «чистый код — это вот так делать надо». А связи с чистотой кода — чуть.
0
Автоматическое освежение импортов может стать головной болью, если в комманде есть любители eclipse или netbeans. Там тоже похожий функционал есть, но порядок импортов будет другой и в итоге в коммитах всегда будет куча мусора — будут попадать те файлы, которые не меняли практически, но среда обновила импорты.
+2
IDEA позволяет четко задать порядок импортов. И потом его можно прописать в styleguide
+3
Нет, вы имеете в виду «optimize imports» — он портит вам порядок.
А «import on the fly» — это другое. Он автоматически добавляет новые импорты, когда вы пишите код.
+1
Порядок импортов настраивается во всех IDE.
На мой взгляд, он должен быть стандартизирован в команде точно так же, как и стандартный форматинг.
0
IDEA автоматически сортирует импорты так:
import javax.annotation.Resource;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import javax.sql.DataSource;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;


Netbeans автоматически сортирует импорты так:
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import javax.sql.DataSource;
Настроить точное соответствие сортировки и там, и здесь не удаётся. Разве что отключить автоматику и вручную добавлять в определённом порядке.

Может есть другой способ согласования?
0
Я правильно вас понимаю, в IDEA вы уже побывали в настройках «Code Style > Java > Imports > Import Layout» и это вам не помогло?
0
Спасибо. Помогло.

С форматированием, кстати, нужно основательно повозиться, чтобы прийти к «общему знаменателю» — дефолтные настройки, которые должны вроде бы соответствовать официальной конвенции форматирования Java-кода, в одних и тех же пунктах этих IDE не совпадают. Начинаю уже сомневаться, стоит ли держать включенной опцию автоматического переформатирования кода при сохранении изменений в NetBeans.
+4
в IDEA нет комбинации клавиш для Push,

Есть удобное всплывающее окошко с командами для VCS по Alt+`
Запушить можно по Alt+` -> 8, закоммитить по Alt+` -> 1. Очень удобно. К тому же есть ещё несколько полезных команд.
0
В последних версиях Ubuntu комбинация Alt+` переключает окна (почти как Alt+Tab). Поэтому я не знал, что она и в IDEA что-то делает. :)
+4
Когда я устанавливаю новую копию IDEA, я пробегаю по настройкам и выставляю свои любимые галочки.

Для того чтобы не выставлять одно и тоже каждый раз, jetbrains сделали импорт/экспорт настроек — File -> Import Settings, еще одна вещь которая облегчает жизнь :)
0
Вы не поверите: я до сих пор не могу избавиться от привычки постоянно жать Ctrl+S, хотя пересел с Eclipse на IDEA уже три года назад! Вот какая вредная привычка.
There are plugins for that. Например.
0
Мне казалось автосохранение всего работает уже три-четыре версии. Откажитесь от привычки жать Cmd+S
+3
Согласен про заголовки файлов — в топку их!

Не согласен про 25 табов (!!!111). Нафига!? Есть Ctrl+E / Ctrl+Shift+E и баста! Табы только место занимают. Выставил столько, сколько в один ряд умещается на экране — и хватит. И никаких проблем с «Activate most recently used tab» если так работать. За 10 лет использования ни разу даже не пришлось озаботиться этим.

Key promoter хорош только тем, что ужасен :)

+100500 за «обратную связь»!
+2
Ctrl+F7

Ужаснее комбинации и не придумать. Одной рукой нажать проблематично (если вы, к примеру, держите мышь). При слепой десятипальцевой печати Ctrl — крайняя клавиша для левого мизинца, F7 — крайняя для правого указательного пальца. До обоих приходится прилично тянуться.
0
Ctrl+Alt+F7, которая по умолчанию, сильно удобнее? :)
А вообще статья, как статья (кроме Key promoter), а вот комменты очень в тему сегодня — пробую как раз осваивать Идею :)
+1
вчера обновился до IU-133.370 и плагин начал работать — возможно где-то «несовместимость» была.
+1
Давно считаю, что «Missing @ Override annotation» должно присутствовать в Java как непреодолимая ошибка.
+1
Ctrl+Shift+K очень логичный шорткат для push-операции. Спасибо, добавил. В версии 13.1 будет «из коробки»
0
По работе с вкладками хочется добавить.
Тем, кто занимается сопровождением старых проектов, часто при изучении и изменении кода приходится иметь открытыми 20+ вкладок. Чтобы с этим можно было удобно жить и не терять вкладки из виду, очень удобно располагать вкладки слева или справа (у меня слева). Намного удобнее — сразу виден весь контекст работы. И ограничение у меня 50 открытых вкладок.
Хотя без широкого монитора все выгоды теряются… но Shift + колесико мыши = горизонтальная прокрутка, и это нас спасет в ряде случаев. :-)
+1
куда вам столько в ОДНОМ окне?
2 22'' монитора. На первом горизонтально разделённое окно с ~20-ю (примерно пополам, иногда на одном ~5) вкладками. На каждом разделении новое «Tab Limit» действует.
Если не хватает или надо «в полный экран», то отцепляешь вкладку на второй монитор и к ней можно ещё до «Tab Limit» вкладок добавить.

Например при конфигурировании Maven-проекта в основном окне открываю все pom, а в отдельной вкладке в «полный рост» открываю диаграмму зависимостей.
быстрый переход к «вкладкам» или к файлам делаю через Double Shift
0
На одном мониторе так удобнее.
На двух, конечно, есть другие способы организации работ. :-)
0
Насчет автосохранения — это не очень хорошо, когда исходник постпроцессится по мере сохранения. Например, я сейчас сделал, чтобы автоматом генерировались jsdoc/jsduck аннотации. При сохранении при потере фокуса и обновлении при его приобритении получается все пучком: уходим, возвращаемся, а там уже доки появились. При постоянном сохранении же постоянно происходят конфликты между версией в памяти и версией на диске.
0
Ой-ой, автоматическая генерация доков — это несовместимо с чистым кодом.

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

Гоните её в шею!
0
Она не для людей. Она необходима для среды разработки, чтобы корректно отрабатывали такие функции как «перейти к определению», «контекстные подсказки», «найти символ по имени». К сожалению в вебшторме нет поддержки апи для добавления js-фреймворков (которая, есть, например, для java). Так что приходится довольствоваться либо 10 предопределенными, либо генерировать jsodc-и. Я бы лучше на тайпскрипт перешёл, чем заниматься этой ерундой. Но, к сожалению, архитектурные вопросы решаю не я.

Кроме того, по ним же с помощью jsduck генерируется документация. При этом приходится дублировать определения в разных нотациях, чтобы это понимала и IDEA и jsduck.

0
Ещё полезная фича для широкоформатных мониторов — расположение табов с названием классов справа — Settings — Editor Tabs — Placement — Right.
0
У нас в последнее время популярно мнение, что табы вообще надо скрыть. Вместо них надо нажимать Ctrl+E и выбирать из списка последних файлов — так быстрее, не нужна мышка, и не нужно тратить время на закрытие табов.
0
Если выключить табы, то отцепку в отдельное окно нельзя будет сделать. А на мультимониторах это очень удобная функциональность.

OFF: а вы их закрываете? IDE же сама с этим справляется неплохо
0
Эээ… ммм… отцепку в отдельное окно? Это ещё зачем?
Есть мнение, что чем меньше открыто — тем лучше, пусть мозг фокусируется на главное и не распыляется.
Надо минимизировать «work in progress», иначе эффективность падает.
0
Если коротко, то это примерно за тем же, для чего используется split-окна, только в полные размеры мониторов.

Например я на «боковой» монитор отцепляю консоль или «вспомогательные» классы, продолжая работать в полный экран на основном монике
0

Здравствуйте, недавно начал использовать Intellij Idea для java проектов. Есть парочка неудобных моментов которые чрезвычайно раздражают после емакса, может кто-то сможет подсказать, как их исправить.
Первое, когда выделяю текст и вставляю новый на его место часто выделенный текст не удаляется а остается на месте. Пробовал Paste, Paste Simple — ничего не помагает, очень бесит.
Еще один пункт — в комментариях и строках нету добавления существующего текста в файле. В емаксе очень удобно, там всплывают все существующие слова.
Есть ли какие-то галочки/плагины чтобы исправить это поведение?

+1

первое вот ни разу не встречал в IDEA (Windows, Linux, Mac). Как у вас это получается? И, если часто происходит, можете issue сделать с роликом происходящего?


второе — зачем? это же среда разработки а не текстовый процессор. А автозавершение для имён переменных, классов или свойств присутствует

0
  1. Выделяю текст стрелочками с зажатой клавишей shift а потом вставляю другой текст вместо этого, но в итоге вставляется новый, а после него остается старый текст.
  2. Часто в комментах ссылаюсь на другие методы или принтую названия методов, чтобы увидеть который раньше исполнится в разных потоках или на кластере в spark job или банально в других комментах часто встречается слово, копировать его и потом искать в буфере обмена — долго, в емаксе ты просто начинаешь писать и тебе варианты предлагают, не зависимо от того, код это, строка или комментарий
0
  1. всё же видео бы — по тексту не воспроизводится у меня. Возможно у вас какая-то настройка включена или плагин какой вмешивается
Only those users with full accounts are able to leave comments., please.