December 7, 2018

Make Java great again

Про импорты

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

Вместо

blah.blah.blah.views
∟EditView
∟ShareView
∟ProfileView

И обращений типа myFrameworkRenderer.view(new ProfileView()) везде.

Можно будет делать

blah.blah.blah.views
∟Edit
∟Share
∟Profile

В далёком-далёком коде писать views.Profile.DATE_FORMAT, а гденить поближе myFrameworkRenderer.view(new Profile()).

Про kwargs

Если еще чуть подумать то вторая довольно простая штука (с точки зрения накатать пост в телеге) которой не хватает - keyword arguments.

В основном со стороны вызова. Как ни крути бывают методы и с 4 и с 12 параметрами. Разбираться где что большая трата времени, тут редкий случай когда побольше слов пойдут на пользу.

Я вкурсе про идеевские хинты. Но они ломают форматирование и их нет в гитхабе. (Тут у меня возникло желание начать серию про перспективы структурных редакторов, но я мужественно держусь.)

Про культуру

Реально основная проблема с программированием на яве - культура. Сегодня попал на глаза кусок старого кода. Много слов. Очень много слов. Когда я начинал работать все по привычке использовали отбивку 80 символов, потом 120, сейчас уже 150-180 норма. Только вот на 14'' код уже не прочитать. И это только ширина. И пофиксить то не проблема.

Названия больше 4х слов нахер. Ничего понять они не помогают. Читать новый код тяжело и травматично для самолюбия, deal with it. Придумывайте новые новые названия, используйте аналогии, вырабатывайте идиомы. Кто может без доки рассказать разницу между StaticListableBeanFactory и DefaultListableBeanFactory может бросить в меня камень. Использовать такие названия в письменно коммуникации боль в устной просто невозможно. Когда 5 классов делят 3-4 слова в префиксе или суффиксе никакой возможности завести для них отдельные места в голове нет, кодовая база сливается в невнятную жижу.

get/set нахер. Абсолютно бесполезная трата места на экране. Выдумана от безысходности С кодерами к которым пришли менеджеры и сказали что теперь надо программировать объектно-ориентировано. Никакой абстракции не даёт, вариантов реализации отличных от return/= просто нет. Пользовать public final поля, если совсем приперает удалять final. Я не имею в виду методы которые реально что-то ищут или создают, вроде любимого getBean.

Ну это так, чисто площадку от мусора очистить. Хотя почти никто даже этого не делает.

Ссылки

Seven Ineffective Coding Habits of Many Programmers У чувака довольно дельные идеи по энтерпрайз стилю. Правда изложение крайне водянистое, эксперты советуют смотреть под сидр.

Tags: TG repost java