История изменений
Исправление
Legioner,
(текущая версия)
:
Ломбок не решает проблему?
Может и решает. Но я не хочу его использовать. Т.к. это уже не Java получается, а если я отказываюсь от Java, я могу и Kotlin с тем же успехом использовать. Вот если бы Idea умела как-то автоматом скрывать такие геттеры-сеттеры, как она делает с анонимными классами... Я всё хочу написать свой фреймворк, когда дата-класс и билдеры описываешь интерфейсами, а быструю реализацию уже генерит либа, вроде должно получиться очень удобно, но руки всё не доходят.
Я просто переехал на Kotlin, на проперти смотрю как-то равнодушно, для меня другие фитчи впечаталяют, как например: типобезопасные строитили, дефолтные аргументы методов, ну и самое главное для меня это типизация с информацией о nullability. Причина почему они меня впечатлили в том, что они позволяют резко улучшить читаемость кода.
Многое из этого нужно только из-за угорания по иммутабельности. Зачем тебе строители, если ты можешь простой мутабельный класс использовать, например? А даёт ли иммутабельность достаточно плюсов, я не знаю. Не помню за последние годы ни одного бага, который был бы связан с тем, что я меняю то, что нельзя менять. Возможно это проблема проявляется в больших командах, я код обычно пишу и поддерживаю один.
А нуллабилити зачастую вообще порождает кучу лишнего кода, только чтобы компилятор был доволен. Хотя штука может и хорошая, но в Kotlin реализована недостаточно хорошо на мой взгляд, особенно в том месте, когда я проверяю поле на null но после этого компилятор про это забывает.
Исправление
Legioner,
:
Ломбок не решает проблему?
Может и решает. Но я не хочу его использовать. Т.к. это уже не Java получается, а если я отказываюсь от Java, я могу и Kotlin с тем же успехом использовать. Вот если бы Idea умела как-то автоматом скрывать такие геттеры-сеттеры, как она делает с анонимными классами... Я всё хочу написать свой фреймворк, когда дата-класс и билдеры описываешь интерфейсами, а быструю реализацию уже генерит либа, вроде должно получиться очень удобно, но руки всё не доходят.
Я просто переехал на Kotlin, на проперти смотрю как-то равнодушно, для меня другие фитчи впечаталяют, как например: типобезопасные строитили, дефолтные аргументы методов, ну и самое главное для меня это типизация с информацией о nullability. Причина почему они меня впечатлили в том, что они позволяют резко улучшить читаемость кода.
Многое из этого нужно только из-за угорания по иммутабельности. Зачем тебе строители, если ты можешь простой мутабельный класс использовать, например? А даёт ли иммутабельность достаточно плюсов, я не знаю. Не помню за последние годы ни одного бага, который был бы связан с тем, что я меняю то, что нельзя менять. Возможно это проблема проявляется в больших командах, я код обычно пишу и поддерживаю один.
А нуллабилити зачастую вообще порождает кучу лишнего кода, только чтобы компилятор был доволен.
Исходная версия
Legioner,
:
Ломбок не решает проблему?
Может и решает. Но я не хочу его использовать. Т.к. это уже не Java получается, а если я отказываюсь от Java, я могу и Kotlin с тем же успехом использовать. Вот если бы Idea умела как-то автоматом скрывать такие геттеры-сеттеры, как она делает с анонимными классами... Я всё хочу написать свой фреймворк, когда дата-класс и билдеры описываешь интерфейсами, а быструю реализацию уже генерит либа, вроде должно получиться очень удобно, но руки всё не доходят.
Я просто переехал на Kotlin, на проперти смотрю как-то равнодушно, для меня другие фитчи впечаталяют, как например: типобезопасные строитили, дефолтные аргументы методов, ну и самое главное для меня это типизация с информацией о nullability. Причина почему они меня впечатлили в том, что они позволяют резко улучшить читаемость кода.
Многое из этого нужно только из-за угорания по иммутабельности. Зачем тебе строители, если ты можешь простой мутабельный класс использовать, например? А даёт ли иммутабельность достаточно плюсов, я не знаю. Не помню за последние годы ни одного бага, который был бы связан с тем, что я меняю то, что нельзя менять.
А нуллабилити зачастую вообще порождает кучу лишнего кода, только чтобы компилятор был доволен.