"не найдено"
@mmazga , можно ему РО на денёк, пусть работает
Лучше возвратит или нульь обьект, или пустую модель, или резултать обьект. Например, ищем юзера, тогда возвращаем юзера $user = find($id) : User if($user->exist) { something } Вы могли часто встречать это в контроллерах, там возвращается Result. $result->success. Похожая логика здесь так же. Убиваем несколько зайцем. 1. Сохраняем единобразие - метод возвращает только один тип. Если метод возвращает несколько типов, стоит задуматься, иначе такими темпами можно прийти вообще в mixed 2. Легче проверят дальше по коду. Удобнее читать строчку $user->exist, чем $user !== null. 3. Раз назвались ООП, пож-та оперируйте обьектами. Раз ищете обьект, то и возвращайте обьект
мы ведь все рабы виденья Тейлора на разработку)
а как же инстанс оф?
думаю совсем не аргумент, особенно про "можно прийти вообще в mixed"
?User - это один тип подобные вещи можно разделять семантически: метод find - делает поиск, соответственно поиск может завершиться двумя результатами: найдено или не найдено. добавляем метод get, который подразумевает обязательное существование сущности: return $this->find(int) ?? throw new Exception()
null и User один тип?
2. Легче проверят дальше по коду. Удобнее читать строчку $user->exist, чем $user !== null. ты сам веришь в это?)
is_null просто существует
например для других ЯП - да, Nullable User. И null для данного типа является одним из его значении. Но этот тип никогда не может принять объект другого типа
ну попробуй объявить переменную типа null)
Это вы про Java сейчас?
да хоть любой (Go, Kotlin, C#, C++, Swift)
ебой... в го nil и структура это один тип. Ебой
в go все объекты nilable
и?
в Go нет понятия "nullable" типов
ну ок, дефолтное (или нулевое) значение... думаю так правильнее? )
если придраться именно по английскому слову nilable, что означает может стать nil-ом, то все таки утверждение верно)) как говорить к int - zeroable
Вы сильно ошибаетесь. Возвращение null или объекта - это единственная правильная практика. ООП - это впервую очередь про объекты, если я кого-то (объект репозитория) попросил найти мне объект, и он не нашел, то он должен мне вернуть null, а не объект со свойством exist. В целом что это за свойство такое exist, какое оно отношение имеет к объекту, какой из признаков объекта оно описывает? 1. Единообразие - я не слышал про такой принцип, но примерно понимая, что вы имеете в виду, аргументирую так: null это состояние, а не образ, поскольку вы программируете императивную логику, то для вас основное значение имеет состояние, а потом уже образ. Поэтому возвращать null или объект не противоречит никакой логике; 2. По свойству exist и про легкость проверки я уже выше аргументировал, внедрение свойства exist нарушает принцип объектно-ориентированного моделирования; 3. ООП - это не везде и всюду объекты - это моделирование правил взаимодействия объектов, если один из объектов просит другого что-то найти, и тот не нашел, то он не должен создавать объект и внушать ему, что он "не существует"
Но как бы решил ситуацию, когда репозиторий не может найти запрашиваемый объект?
Если он искал и не нашел, то нулл. Если место где нужно искать заперто/недоступно/сгорело/затопило - exception
Вернуть null может быть логичным подходом, особенно если отсутствуют данные
🤣🤣🤣🤣
Там где вызывается функция, должны быть эксепшны и тп
то есть не как значение типа
ну да это логично, если нет то нулл если ошибка при поиске то exception
чтобы показать что структура и nil это разные вещи
без негатива) Ну во первых, никто так не говорил (что структура и nil это одно и тоже) Во вторых, именно в go без привязки к типу (указатель, структура, срез, интерфейс) nil не имеет смысла, так как он идентификатор пустого значения (или указателя) Если придираетесь именно к вопросу коллеги null и User один тип? и к моему ответу например для других ЯП - да, то имеется ввиду, что здесь null это один из значении (или состоянии) типа ?User
без негатива, я просто дал ответ на утверждение о том что структура и nil одно и то же)
Я интерпретировал его утверждение что "они одного типа" (структура и нил) как: нил одно из значений. Но в основном вы правы
месье умеет переобуваться. Пригожин 2.0?
Сейчас бы сюда приплетать чувака виновного в кучи смертей
доводы в студию где я переобулся)
вас тут двое просто @urazymbetov @tzhmbtv
и здесь написал про мое понимание ваших утверждении
извините, за ситуцией не слежу. Видел в новостях как он хотел сначала марш справедливости, потому расхотел. Потому сказал, что он не то имел ввиду, когда говорил про марш справедливости и все его не так поняли. Если этот чувак делал ужасные вещи, то сравнение не корректное
Обсуждают сегодня