Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Лапшекодим валидацию, или запрещаем вводить неправильные данные?

2865  1 2 3 4 5 6 7 8 9 все
alex445 коренной житель05.06.22 13:23
NEW 05.06.22 13:23 
в ответ AlexNek 05.06.22 13:04
все строки можно захардкодить

Вероятно кто то просто не в курсе как делается локализация текста в атрибутах.

И как же она делается?


Если что, я про то, как будет выглядеть портянка атрибутов, когда туда прикрутят локализацию и всё прочее подобающее, что в реальных приложениях используется. Вы мне говорили, что вам портянка свойств не нравится. А мне не нравится портянка атрибутов, за которым свойств не видно.

#61 
alex445 коренной житель05.06.22 13:24
NEW 05.06.22 13:24 
в ответ AlexNek 05.06.22 13:08, Последний раз изменено 05.06.22 13:24 (alex445)
но с моей точки зрения, достаточно иметь просто набор нормальных контролов, которые делают все основные валидации для своего типа данных внутри себя.
Просто не для всех задач подобный подход будет приемлем.

Ну да, на платформах, где нет нормальных контролов, придётся костылить и лапшекодить.

#62 
alex445 коренной житель05.06.22 13:27
NEW 05.06.22 13:27 
в ответ Murr 05.06.22 13:21

Зачем валидировать что-то, что пришло из контрола, который в принципе не допустит неправильных данных?

------

Уххх-хухх...

Я и спросил - у вас валидация на каждый слой? И между всеми слоями гуляет модель с атрибутами? И на каждом слое в эту модель лезет портянка с рефлексией вместо обычного чтения свойства Min или Max? Вы точно боретесь за 10-15% производительности?

#63 
alex445 коренной житель05.06.22 13:28
NEW 05.06.22 13:28 
в ответ AlexNek 05.06.22 13:08, Последний раз изменено 05.06.22 13:35 (alex445)
Зачем валидировать что-то, что пришло из контрола, который в принципе не допустит неправильных данных?
------
Уххх-хухх...

А примеры приводите. ))


А там идёт проходка валидации по всем пропертям атрибута, берётся первая ошибка и выводится. Устранили - снова проходка валидации по всем пропертям атрибута. И так каждый раз. Фигли нам, котонам - 8 ядер, 16 потоков и 64 ГБ оперативы есть у всех, не так ли? Главное, потом тиснуть статейку или на форумах пожаловаться, как проклятый WPF жрёт гигабайт после старта главного окна, а виноват во всём как всегда Билл. ))

#64 
alex445 коренной житель05.06.22 13:30
NEW 05.06.22 13:30 
в ответ Murr 05.06.22 13:20
Разумеется - нет! Но над другим решением думать надо!!! А у прапорщиков с этим обычно проблемы...

Думать тут как раз особо не надо. Зафигачил всё в атрибуты, загуглил портянку, чтобы из этих атрибутов всё доставать, и впендюрил в свой говнокод. А потом отважно борешься за 10-15% производительности. Если сторонний помидор не увидит, то можно даже за самого крутого альфакодера на фирме сойти. Незаменимый. ))

#65 
alex445 коренной житель05.06.22 13:46
NEW 05.06.22 13:46 
в ответ AlexNek 05.06.22 13:04, Последний раз изменено 05.06.22 13:51 (alex445)
Могу кстати, поздравить со шнобелевской премией - ещё никто из разработчиков библиотек не додумался делать предлагаемый способ валидации. Может патент еще оформить и всем продавать?

Миллионы мух не могут ошибаться. Толпы скриптизёров, лезущие со своим самым лучшим языком во все щели, не дадут соврать. ))


Тут надо не давить большинством разработчиков, а привести аргументы, почему у нас на атрибутах свет клином сошёлся. Большинство разработчиков легко и быстро перейдут с одного дерьма на другое, или даже с нормальной платформы на дерьмовую, стоит их поманить длинным баксом, а то и просто дать пинка для ускорения. Поматерятся, но перейдут. )

#66 
AlexNek патриот05.06.22 13:52
AlexNek
NEW 05.06.22 13:52 
в ответ alex445 05.06.22 13:15
Даже если бы пригласили.

Об этом можно не переживать бебе

#67 
AlexNek патриот05.06.22 13:53
AlexNek
NEW 05.06.22 13:53 
в ответ alex445 05.06.22 13:20
Кстати, а что, MAUI уже релизнулся?

Как обещали

https://github.com/dotnet/maui/releases/tag/6.0.312

#68 
AlexNek патриот05.06.22 14:42
AlexNek
05.06.22 14:42 
в ответ alex445 05.06.22 13:23
И как же она делается?

Достаточно просто

[DisplayName("My sample text")]--> [Ml_DisplayName(1, "My sample text")]


А мне не нравится портянка атрибутов

Кому как, обычно атрибутов не так уж и много

#69 
AlexNek патриот05.06.22 14:43
AlexNek
NEW 05.06.22 14:43 
в ответ alex445 05.06.22 13:24
Ну да, на платформах

Как обычно, смысл ответа был совсем не понят хммм

#70 
AlexNek патриот05.06.22 14:49
AlexNek
NEW 05.06.22 14:49 
в ответ alex445 05.06.22 13:46
почему у нас на атрибутах свет клином сошёлся.

Не обязательно на атрибутах, и телерик и дев экспресс приводят различные варианты.

Но кому не нравится много строк можно сделать и так


#71 
Murr патриот05.06.22 15:05
Murr
NEW 05.06.22 15:05 
в ответ alex445 05.06.22 13:30

Думать тут как раз особо не надо.

-----

#45

#72 
alex445 коренной житель05.06.22 15:06
NEW 05.06.22 15:06 
в ответ AlexNek 05.06.22 13:53, Последний раз изменено 05.06.22 15:07 (alex445)
Кстати, а что, MAUI уже релизнулся?
Как обещали
https://github.com/dotnet/maui/releases/tag/6.0.312

Всего 13 дней назад, а Телерик уже сварганил пачку контролов для него? Ну как с такими конкурировать, когда у них инсайд? Ты ещё думаешь, пробовать или нет, а у них уже в продакшене. ))

#73 
alex445 коренной житель05.06.22 15:08
NEW 05.06.22 15:08 
в ответ AlexNek 05.06.22 14:42, Последний раз изменено 05.06.22 15:09 (alex445)
Достаточно просто[DisplayName("My sample text")]--> [Ml_DisplayName(1, "My sample text")]

Какой-то кастомный атрибут, с переписанным интерфейсом доступа к локализованным ресурсам? И так все атрибуты переписаны?

#74 
alex445 коренной житель05.06.22 15:10
NEW 05.06.22 15:10 
в ответ AlexNek 05.06.22 14:42
А мне не нравится портянка атрибутов

Кому как, обычно атрибутов не так уж и много

Если атрибутов не много, то и дополнительных свойств в моём подходе тоже не много. ))

#75 
AlexNek патриот05.06.22 15:10
AlexNek
NEW 05.06.22 15:10 
в ответ alex445 05.06.22 15:06
Всего 13 дней назад

А может стоит посмотреть немного больше смущ


#76 
alex445 коренной житель05.06.22 15:12
NEW 05.06.22 15:12 
в ответ AlexNek 05.06.22 14:49

Но кому не нравится много строк можно сделать и так

Мои проперти тоже можно в регионы сворачивать. Тут паритет. ))

#77 
AlexNek патриот05.06.22 15:12
AlexNek
NEW 05.06.22 15:12 
в ответ alex445 05.06.22 15:10
то и дополнительных свойств в моём подходе тоже не много.

Однако их количество зависит от количество валидируемых атрибутов спок

И всё это нужно еще правильно "подключить"

#78 
alex445 коренной житель05.06.22 15:13
NEW 05.06.22 15:13 
в ответ Murr 05.06.22 15:05

Думать тут как раз особо не надо.

-----

#45

Дед, вы хотя бы знаете какие-нибудь смешные картинки или моменты в фильмах, на которые можете ссылку дать? Скучно же, право слово, с вами общаться. ))

#79 
alex445 коренной житель05.06.22 15:15
NEW 05.06.22 15:15 
в ответ AlexNek 05.06.22 15:12, Последний раз изменено 05.06.22 15:20 (alex445)
И всё это нужно еще правильно "подключить"

В смысле? Надеюсь, вы не будете привязывать AgeMin к NumericUpDown.Max и наоборот? Как раз с подключением проблемы могут быть в вашем подходе - нужный базовый класс не забыть для каждой модели, в зарметке стиль с тултипчиком для каждой страницы, ещё по мелочам наверняка.


В примере у человека, кстати, по стилю на каждый тип контрола надо добавлять. Т.е. не забыть вставить портянку для каждой новой вьюхи. Ну или через словарь ресурсов, но тогда следить, чтобы стиль не был перезаписан в конкретных вьюхах. А всё почему? Потому что этот подход используется для тупейших контролов - голых текстбоксов, не умеющих ничего, в которые фигачат все подряд типы вводимых данных.

#80 
1 2 3 4 5 6 7 8 9 все