Size: a a a

2021 February 03

V

Vlad in learn.java
Alex
Почему бы тогда в сеттер не воткнуть вообще все проверки, валидации и исключения? Это абсурд. Не зря в новой реализации сущностей  (java.lang.Record) в java 16 работа с полями установлена по дефолту, и никакую логику никто даже не предполагает там вносить
Почитайте про проперти в котлине том же. Специально сделали для разного рода сайд эффектов + валидации
источник

V

Vlad in learn.java
...
окей. как правило, сеттер это войд, если ты хочешь не просто устанавливать, а ещё и проверять, то делается ещё один метод, в нем проверяется и он уже возвращает булево валидный объект или нет
Ну войд, который кидает illegalArgument
источник

.

... in learn.java
Vlad
Ну войд, который кидает illegalArgument
окей. как ты будешь это делать используя ломбок?
источник

.

... in learn.java
проверять перед записью
источник

A

Alex in learn.java
Котлин пусть у себя делает что хочет, есть подходы от которых не стоит отходить. Если я пишу слой для уже готовой сущности, то я в нее зачастую даже не лезу - я и так вижу поля, а для работы с сущностью у меня есть свои классы
источник

V

Vlad in learn.java
...
окей. как ты будешь это делать используя ломбок?
Я написал как делают, иммутабл, ограничения на конструкторе + bean validations
источник

A

Alex in learn.java
Потому что иначе происходит так, один пишет в сеттере, другой в конструкторе, третий еще черт знает где. По итогу ты пишешь еще отдельный метод и не понимаешь что происходит, это все увеличивает время разработки
источник

.

... in learn.java
Vlad
Я написал как делают, иммутабл, ограничения на конструкторе + bean validations
это не ответ на вопрос. сейчас вроде обсуждение идёт о том, что доп логика в сеттере это не плохо и допустима
источник

.

... in learn.java
а не best practices
источник

V

Vlad in learn.java
Alex
Почему бы тогда в сеттер не воткнуть вообще все проверки, валидации и исключения? Это абсурд. Не зря в новой реализации сущностей  (java.lang.Record) в java 16 работа с полями установлена по дефолту, и никакую логику никто даже не предполагает там вносить
Это вообще не актуально, рекорды замена дата классам иммутабельным
источник

A

Alex in learn.java
В ином случае в java.lang.Record не запилили бы по дефолту аналог case-class из Scala. Не предполагает сам оракл что люди будут лезть сет/гет и писать туда логику
источник

A

Alex in learn.java
метод должен точно говорить о том что он делает. если там написано getX, то значит он вернет X, без сайд-эффектов
источник

A

Alex in learn.java
плюс мы привязываемся к конкретной реализации метода. если захотим поменять логику, а у нас к ней уже привязана часть приложения, то есть ненулевая вероятность много переделывать
источник

V

Vlad in learn.java
...
это не ответ на вопрос. сейчас вроде обсуждение идёт о том, что доп логика в сеттере это не плохо и допустима
Сущностью должна защищать свое состояние, если она даёт менять свое состояние, то пусть защищает. Сетер/специальный метод, ее право. Вопрос мутабл/ иммутабл это другой вопрос
источник

A

Alex in learn.java
Я вполне допускаю что так делать в теории можно, скажем когда идет обучающий процесс и надо имитировать генерацию айдишников, ну можно вполне запихнуть в геттер генератор какой-нибудь ради исключения
источник

V

Vlad in learn.java
Vlad
Сущностью должна защищать свое состояние, если она даёт менять свое состояние, то пусть защищает. Сетер/специальный метод, ее право. Вопрос мутабл/ иммутабл это другой вопрос
Писать отдельные методы куда лучше, чем сеттер. Но в простом случае валидацию в сетер не считаю чем то ужасным
источник

A

Alex in learn.java
Антон
Приветствую всех! Хочу устроиться на стажировку в одну компанию, надо подготовиться, но не знаю за что браться. Я прошел курс по Java Core, но мне не хватает практики и знаний в работе с фреймворками и библиотеками. Прошу вас порекомендовать возможные пути развития и деятельности. Спасибо!
А что за курс? От этого зависит ответ. Какие книги читались в процессе изучения Core, какие задачи решались?
источник

А

Антон in learn.java
Alex
А что за курс? От этого зависит ответ. Какие книги читались в процессе изучения Core, какие задачи решались?
Курс по синтаксису. Задачи нам давали для галочки, но сам я находил задачи на алгоритмы и решал их.
источник

A

Alex in learn.java
Антон
Курс по синтаксису. Задачи нам давали для галочки, но сам я находил задачи на алгоритмы и решал их.
А что значит курс по синтаксису? Можно примеры какие-то дать что было ближе к концу обучения?
источник

e

error_404 in learn.java
Alex
А что значит курс по синтаксису? Можно примеры какие-то дать что было ближе к концу обучения?
Синтаксис то есть как ты вообще пишешь код.Как языки.Например русский и английский.Там же правописание разное.И вот синтаксис тоже самое
источник