Не согласен. Код пишется для компьютера. Поэтому все исключительные случаи должны кодом корректно отрабатываться и выдавать соответствующий результат.
Хорошо, код пишется одновременно для компилятора и людей. Но вообще всё-таки для людей: компилятору удовлетворить при некоторой сноровке тривиально, и несмотря на то, что удовлетворяя компилятору языка с хорошей статической системой типов, мы заодно удостоверяемся, что некоторого класса ошибок в программе не возникнет, о спецификации компилятор всё-таки ничего не знает. (Если только мы не напишем спецификацию в виде отдельной программы, но для этого язык должен быть вообще крутой, и ошибок в самой спецификации мы тоже должны каким-то чудом избежать.)
atlakatlНет смысла выделять функцию, если она используется один раз, а её смысл (как неделимого блока в целом) никак не документирован. Неужели так трудно писать такой простой код сразу хорошо? Я бы понял, если бы не было известно, что должна делать программа точно, какими фреймворками пользоваться и т. п. (но почему-то именно в таких производственных случаях хорошим тоном является как минимум документация написанного) — но тут же всё ясно — казалось бы, возьми и сделай по-человечески.
Но и людЯм бывает нужно через пару лет суметь прочесть даже свой собственный код (что даже и через пару недель не всегда тривиально).
Именно потому надо потратить лишнюю минутку на документацию и возможное местами переписывание генератора, для которого
входные данные задаются самим программистом, и никаких коллизий возникнуть просто не может