Недавно я обнаружил радость функции «Сохранить действия» в Eclipse IDE. Я могу заставить его переформатировать мой код, вставить недостающие @Override
аннотации и сделать некоторые изящные вещи, такие как удаление ненужных скобок в выражениях или final
автоматическое размещение ключевых слов везде при каждом нажатии ctrl + S
. Я активировал некоторые из этих триггеров, и, мальчик, это очень помогает!
Оказалось, что многие из этих триггеров действуют как быстрая проверка работоспособности моего кода.
- Я намеревался переопределить метод, но аннотация не появилась, когда я нажал
ctrl + s
? - возможно, я где-то облажался типов параметров!
- Некоторые скобки были удалены из кода при сохранении? - может быть, это логическое выражение слишком сложно для программиста, чтобы быстро обойтись. Иначе, зачем мне добавлять эти скобки в первую очередь?
- Этот параметр или локальная переменная не
final
. Есть ли у изменить его значение?
Оказалось, что чем меньше переменные меняются, тем меньше у меня проблем во время отладки. Сколько раз вы следили за значением некоторой переменной только для того, чтобы обнаружить, что она каким-то образом меняется, скажем, с 5 на 7? "Как, черт возьми, это может быть ?!" Вы спрашиваете себя и тратите следующие пару часов, входя и выходя из бесчисленных методов, чтобы выяснить, что вы допустили ошибку в своей логике. И чтобы исправить это, вам нужно добавить еще один флаг, пару условий и тщательно изменить некоторые значения здесь и там.
О, я ненавижу отладку! Каждый раз, когда я запускаю отладчик, я чувствую, что мое время истекает, и мне отчаянно нужно это время, чтобы хотя бы некоторые мои детские мечты сбылись! К черту отладку! final
Означает, что больше нет таинственных изменений стоимости. Больше final
s => меньше надуманных частей в моем коде => меньше ошибок => больше времени, чтобы делать хорошие вещи!
Что касается final
классов и методов, мне все равно. Я люблю полиморфизм. Полиморфизм означает, что повторное использование означает, что меньше кода означает меньше ошибок. В любом случае JVM неплохо справляется с девиртуализацией и встраиванием методов, поэтому я не вижу смысла в том, чтобы убивать возможности повторного использования кода для получения неэффективных преимуществ в плане производительности.
final
На первый взгляд, все эти элементы в коде несколько отвлекают и требуют времени, чтобы привыкнуть. Некоторые из моих товарищей по команде все еще очень удивляются, увидев так много final
ключевых слов. Хотелось бы, чтобы в IDE была настройка для специальной окраски синтаксиса. Я был бы рад переключить его на какой-нибудь оттенок серого (например, аннотации), чтобы они не отвлекали внимание при чтении кода. Eclipse в настоящее время имеет отдельный цвет для return
всех других ключевых слов, но не для final
.
final
полей имеет ту же семантику, что и записьvolatile
поля, а затем для их чтения необходимо иметь изменчивую семантику чтения, это не всегда то, что вы хотите