Можно ли возвращать null из функции?
Ну вот, вроде нашел тему для большого базара
Одни говорят нет, при проблемах бросаем exception или возвращаем null объект.
Другие говорят да, без этого и жить то невозможно.
А есть ли какая то золотая середина?
Можно начать с того, что данная функция просто не имеет права возвращать null
string Get...
А после npex может быть или сразу или где-нибудь в другом месте. То бишь везде нужно делать дополнительные проверки.
Иначе говоря знание того что у клиента нет номера откладывается на неопределённое время, при этом без дополнительных проверок пользователь увидит просто трах тирибах.
Можно начать с того, что данная функция просто не имеет права возвращать null
string Get...
Функция возвращает такс айди, каким бы он неприятным, вонючим, неухоженным ни оказался. Если такс айди налл, надо вернуть налл, а не строить тут из себя...
NullTaxId = "TaxID does not exist";
Кто дал вам право вот так легкомысленно приравнивать простой и лаконичный налл и вот это ваше "сочинение на тему", которое в скобках? А другие в вашей команде знают, чем вы тайком занимаетесь, пока тимлид отвернулся?
Предполагаю, что если прога вылетает, то это именно то что хочет увидеть пользователь
И что? Чем больше вылетает прога, чем больше приходится перезагружать сервер или там ждать коннекта к базе данных, тем больше поводов для кофе-брейка и очень важных обсуждений в переговорках. Перезагружать сервера весело!
А есть ли какая то золотая середина?
Нет никакой золотой середины.
Делать null объект на каждый тип - немного перебор. Вместе с тем использование этого паттерна может облегчить понимание логики и упростить архитектуру.
Как обычно, серебрянных пуль не существует и каждое решение следует использовать там, где это имеет смысл.
то надо как то регламентировать невозможность его введения пользователем
интересное замечание, хотя нигде и не предполагался ручной ввод. Можно например добавить в конец '\0'
Но проблема то не в этом, а в том какой подход выбрать и при каких критериях, если оба варианта допустимы.
Выбор выдачи null просто похоже на привычку от которой трудно отказаться.