LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

Альтернативы этому нету. Применяется здравое количество проверок компилятором. А как иначе? Вот я пошел, зафигачил где-то String и ожидаю что там номер телефона. Компилятор должен догадаться что я имел ввиду в моем коде? Конечно на границах API будет стоять PhoneNumber класс и туда string без прохождения валидатора не всобачишь. Если я пользуюсь string, а мне нужно вызвать API с PhoneNumber, то без валидации я не обойдусь, это проверит компилятор. Мужик с плеткой нужен только для того, чтобы мы все приложения с нуля не нафигачили со string, с низу до верху. Компилятор тут уж точно не проверит все приложение и не догадается что мы имели ввиду.

На каждый регексп делать подкласс String - это совсем нужно быть поехавшим

Если тебе такое не подходит - не делай, разрешаю. Я лишь отвечал на вопрос ТСа, который утверждает что ему нужно что-то на уровне языка особенное. А я говорю что это уже делается даже в таком недоговноязыке как С++, не говоря уже о что в чем-то нормальном.

Нужен стандартный String, ограниченный в определенном контексте.

Это слова. Что конкретно это значит? Класс PhoneNumber это просто стандартный String (по стоимости для процессора), который ограничен (компилятором) в определенном контексте.

Исходная версия vertexua, :

Альтернативы этому нету. Применяется здравое количество проверок компилятором. А как иначе? Вот я пошел, зафигачил где-то String и ожидаю что там номер телефона. Компилятор должен догадаться что я имел ввиду в моем коде? Конечно на границах API будет стоять PhoneNumber класс и туда string без прохождения валидатора не всобачишь. Если я пользуюсь string, а мне нужно вызвать API с PhoneNumber, то без валидации я не обойдусь, это проверит компилятор. Мужик с плеткой нужен только для того, чтобы мы все приложения с нуля не нафигачили со string. Компилятор тут уж точно не проверит все приложение и не догадается что мы имели ввиду.

На каждый регексп делать подкласс String - это совсем нужно быть поехавшим

Если тебе такое не подходит - не делай, разрешаю. Я лишь отвечал на вопрос ТСа, который утверждает что ему нужно что-то на уровне языка особенное. А я говорю что это уже делается даже в таком недоговноязыке как С++, не говоря уже о что в чем-то нормальном.

Нужен стандартный String, ограниченный в определенном контексте.

Это слова. Что конкретно это значит? Класс PhoneNumber это просто стандартный String (по стоимости для процессора), который ограничен (компилятором) в определенном контексте.