169 похожих чатов

А что ты хочешь возвращать вместо null?

50 ответов

54 просмотра

"не найдено"

DK-K Автор вопроса
DK-K Автор вопроса
Asylmurat
"не найдено"

@mmazga , можно ему РО на денёк, пусть работает

Лучше возвратит или нульь обьект, или пустую модель, или резултать обьект. Например, ищем юзера, тогда возвращаем юзера $user = find($id) : User if($user->exist) { something } Вы могли часто встречать это в контроллерах, там возвращается Result. $result->success. Похожая логика здесь так же. Убиваем несколько зайцем. 1. Сохраняем единобразие - метод возвращает только один тип. Если метод возвращает несколько типов, стоит задуматься, иначе такими темпами можно прийти вообще в mixed 2. Легче проверят дальше по коду. Удобнее читать строчку $user->exist, чем $user !== null. 3. Раз назвались ООП, пож-та оперируйте обьектами. Раз ищете обьект, то и возвращайте обьект

DK-K Автор вопроса
Alma Z
Лучше возвратит или нульь обьект, или пустую модел...

мы ведь все рабы виденья Тейлора на разработку)

Alma Z
Лучше возвратит или нульь обьект, или пустую модел...

думаю совсем не аргумент, особенно про "можно прийти вообще в mixed"

Alma Z
Лучше возвратит или нульь обьект, или пустую модел...

?User - это один тип подобные вещи можно разделять семантически: метод find - делает поиск, соответственно поиск может завершиться двумя результатами: найдено или не найдено. добавляем метод get, который подразумевает обязательное существование сущности: return $this->find(int) ?? throw new Exception()

Alma Z
Лучше возвратит или нульь обьект, или пустую модел...

2. Легче проверят дальше по коду. Удобнее читать строчку $user->exist, чем $user !== null. ты сам веришь в это?)

DK-K Автор вопроса
Alma Z
null и User один тип?

например для других ЯП - да, Nullable User. И null для данного типа является одним из его значении. Но этот тип никогда не может принять объект другого типа

Alma Z
null и User один тип?

ну попробуй объявить переменную типа null)

Alma Z
Это вы про Java сейчас?

да хоть любой (Go, Kotlin, C#, C++, Swift)

Е .
да хоть любой (Go, Kotlin, C#, C++, Swift)

ебой... в го nil и структура это один тип. Ебой

Е .
в go все объекты nilable

в Go нет понятия "nullable" типов

Yernur Zeinullayev
в Go нет понятия "nullable" типов

ну ок, дефолтное (или нулевое) значение... думаю так правильнее? )

Е .
в go все объекты nilable

если придраться именно по английскому слову nilable, что означает может стать nil-ом, то все таки утверждение верно)) как говорить к int - zeroable

Alma Z
Лучше возвратит или нульь обьект, или пустую модел...

Вы сильно ошибаетесь. Возвращение null или объекта - это единственная правильная практика. ООП - это впервую очередь про объекты, если я кого-то (объект репозитория) попросил найти мне объект, и он не нашел, то он должен мне вернуть null, а не объект со свойством exist. В целом что это за свойство такое exist, какое оно отношение имеет к объекту, какой из признаков объекта оно описывает? 1. Единообразие - я не слышал про такой принцип, но примерно понимая, что вы имеете в виду, аргументирую так: null это состояние, а не образ, поскольку вы программируете императивную логику, то для вас основное значение имеет состояние, а потом уже образ. Поэтому возвращать null или объект не противоречит никакой логике; 2. По свойству exist и про легкость проверки я уже выше аргументировал, внедрение свойства exist нарушает принцип объектно-ориентированного моделирования; 3. ООП - это не везде и всюду объекты - это моделирование правил взаимодействия объектов, если один из объектов просит другого что-то найти, и тот не нашел, то он не должен создавать объект и внушать ему, что он "не существует"

Bakhtiyar Gizzat
Вы сильно ошибаетесь. Возвращение null или объекта...

Но как бы решил ситуацию, когда репозиторий не может найти запрашиваемый объект?

Yernur Zeinullayev
Но как бы решил ситуацию, когда репозиторий не мож...

Если он искал и не нашел, то нулл. Если место где нужно искать заперто/недоступно/сгорело/затопило - exception

Abdul-Aziz M.
Вернуть нулл?

Вернуть null может быть логичным подходом, особенно если отсутствуют данные

Gairat
screenshot

🤣🤣🤣🤣

Yernur Zeinullayev
Вернуть null может быть логичным подходом, особенн...

Там где вызывается функция, должны быть эксепшны и тп

Gairat
screenshot

почему сравниваете с untyped nil? )) а не kek123 != nil

Bakhtiyar Gizzat
Если он искал и не нашел, то нулл. Если место где ...

ну да это логично, если нет то нулл если ошибка при поиске то exception

Е .
почему сравниваете с untyped nil? )) а не kek123 !...

чтобы показать что структура и nil это разные вещи

Gairat
чтобы показать что структура и nil это разные вещи

без негатива) Ну во первых, никто так не говорил (что структура и nil это одно и тоже) Во вторых, именно в go без привязки к типу (указатель, структура, срез, интерфейс) nil не имеет смысла, так как он идентификатор пустого значения (или указателя) Если придираетесь именно к вопросу коллеги null и User один тип? и к моему ответу например для других ЯП - да, то имеется ввиду, что здесь null это один из значении (или состоянии) типа ?User

Е .
без негатива) Ну во первых, никто так не говорил ...

без негатива, я просто дал ответ на утверждение о том что структура и nil одно и то же)

Gairat
без негатива, я просто дал ответ на утверждение о ...

Я интерпретировал его утверждение что "они одного типа" (структура и нил) как: нил одно из значений. Но в основном вы правы

Е .
без негатива) Ну во первых, никто так не говорил ...

месье умеет переобуваться. Пригожин 2.0?

Alma Z
месье умеет переобуваться. Пригожин 2.0?

Сейчас бы сюда приплетать чувака виновного в кучи смертей

Alma Z
месье умеет переобуваться. Пригожин 2.0?

доводы в студию где я переобулся)

DK-K Автор вопроса
Е .
доводы в студию где я переобулся)

вас тут двое просто @urazymbetov @tzhmbtv

Е .
Я интерпретировал его утверждение что "они одного ...

и здесь написал про мое понимание ваших утверждении

Alexandr Dubickiy
Сейчас бы сюда приплетать чувака виновного в кучи ...

извините, за ситуцией не слежу. Видел в новостях как он хотел сначала марш справедливости, потому расхотел. Потому сказал, что он не то имел ввиду, когда говорил про марш справедливости и все его не так поняли. Если этот чувак делал ужасные вещи, то сравнение не корректное

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта