Нещодавно я виявив радість від функції "Зберегти дії" в IDE Eclipse. Я можу змусити її переформатувати код, вставити пропущені @Override
анотації та виконувати деякі чудові речі, як-от видалити непотрібні дужки в виразах або final
автоматично розміщувати ключове слово скрізь автоматично, коли я натискаю ctrl + S
. Я активував деякі з цих тригерів і, хлопче, це дуже допомагає!
Виявилося, що багато з цих тригерів діють як швидка перевірка правильності для мого коду.
- Я мав намір замінити метод, але анотація не з’явилася, коли я потрапив
ctrl + s
? - можливо, я десь накрутив типи параметрів!
- Деякі дужки були вилучені з коду при збереженні? - можливо, це логічне вираження занадто складно для програміста, щоб швидко його обійти. Інакше навіщо я додавати ці дужки в першу чергу?
- Цей параметр або локальна змінна не є
final
. Є чи у змінити його значення?
Виявилося, що менша кількість змінних змінює меншу кількість проблем у мене на час налагодження. Скільки разів ви слідкували за значенням змінної лише для того, щоб виявити, що вона якось змінюється від скажімо 5 до 7? "Як чорт може бути ?!" Ви запитаєте себе і витрачаєте наступні пару годин, крокуючи та вичиняючи незліченну кількість методів, щоб з’ясувати, що ви помилилися у своїй логіці. А щоб виправити це, вам потрібно додати ще один прапор, пару умов і обережно змінити деякі значення тут і там.
О, я ненавиджу налагодження! Кожного разу, коли я запускаю налагоджувач, я відчуваю, що час у мене закінчується, і мені відчайдушно потрібен цей час, щоб хоча б деякі мої дитячі мрії стали реальністю! До біса з налагодженням! final
s означає більше не загадкових змін значення. Більше final
s => менше надуманих деталей у моєму коді => менше помилок => більше часу, щоб робити добрі речі!
Що стосується final
занять та методів, то мене це зовсім не цікавить. Я люблю поліморфізм. Поліморфізм означає повторне використання означає менше коду, означає менше помилок. JVM робить досить гарну роботу з девіартуалізацією та методом інлінінгу в будь-якому випадку, тому я не бачу значення в знищенні можливостей повторного використання коду для неефективних переваг продуктивності.
Побачення всіх цих final
кодів спочатку дещо відволікає і вимагає часу, щоб звикнути. Деякі мої товариші по команді все ще дуже здивовані, побачивши так багато final
ключових слів. Я хотів би, щоб в IDE було встановлено спеціальне забарвлення синтаксису для нього. Я був би радий переключити його на деякий відтінок сірого (як анотації), щоб вони не надто відволікали під час читання коду. Наразі Eclipse має окремий колір для return
всіх інших ключових слів, але не дляfinal
.
final
полів має таку саму семантику, як і написанняvolatile
поля, і для їх читання пізніше потрібно мати семантику читання, що не змінюється, це не завжди те, що ви хочете