|
![]() |
#1 |
Участник
|
Цитата:
Это очень показательный пример того, что без знания цели, выбор "идеального" средства - бессмысленное занятие Цитата:
Цитата:
Ведь насколько я понимаю, Вы не ставите задачу проверки значения не потому, что это невозможно "в принципе". Как раз-таки очень даже возможно. Просто Вы понимаете полную бессмысленность этой задачи. Однако контроль типов Вам не кажется бессмысленным. Почему, собственно? Только потому, что это относительно просто? |
|
![]() |
#2 |
Участник
|
Цитата:
проекты могут быть импортированы в среду, где таких таблиц нет. другой вариант: дев и продакт системы. в дев таблицы и поля есть, а в продакт еще не перенесли. или вот так: Несколько AOS: синхронность изменения объектов ![]() Цитата:
![]() Цитата:
Сообщение от Владимир Максимов
![]() Ведь насколько я понимаю, Вы не ставите задачу проверки значения не потому, что это невозможно "в принципе". Как раз-таки очень даже возможно. Просто Вы понимаете полную бессмысленность этой задачи. Однако контроль типов Вам не кажется бессмысленным. Почему, собственно? Только потому, что это относительно просто?
![]() Последний раз редактировалось mazzy; 12.04.2011 в 18:16. Причина: добавил ссылку на соседнюю ветку. |
|
![]() |
#3 |
Участник
|
Я бы может генерил бы на основе таблиц и полей, или классов (метаданных)
XML формы для ввода, что то вроде ASP.net или веб сервис, и не программист мог бы вводить данные с привязкой к метаданным (не по id а возможно символьно) а потом умный парсер, преобразовывал бы стрктуру XML и заполнял бы те данные для которых есть таблицы поля классы, или настроил бы генерить ошибку если не вся структура подгружена, или же частично загружать не выкидывая ошибок. можно было бы сделать веб сервис поставщик данных, на основе того что вводят не программисты. в веб поля которые генерятся на основе дев метаданных. Последний раз редактировалось Evgeniy2020; 12.04.2011 в 18:25. |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от mazzy
![]() легко. здесь выкладывают проекты.
проекты могут быть импортированы в среду, где таких таблиц нет. другой вариант: дев и продакт системы. в дев таблицы и поля есть, а в продакт еще не перенесли. или вот так: Несколько AOS: синхронность изменения объектов ![]() Можно привести еще варианты, когда при вводе констант (статических данных) действительно необходим дополнительный контроль типов этих самых констант? |
|
![]() |
#5 |
Участник
|
Цитата:
Цитата:
код цвета, тег html, шрифт, размеры шрифта, GUID, MAC-адрес, ip-адрес, адрес сайта в интернете, параметры границы, размеры окон по умолчанию, avi-файл отображения в progressBar, фигуры для тетриса, список начальных вопросов-ответов для Элизы, а также любые другие константы, например из аксаптовских макросов. тысячи их. Цитата:
![]() |
|
![]() |
#6 |
Участник
|
Да не в функции я уперся, а в то, что требование контроля самим же программистом введенных констант - бессмысленно.
Либо константы не являются константами в прямом смысле этого слова (tablenum() - это НЕ константа), либо никто и никогда не контролирует тип этих констант. В смысле, не пишет функционала по этому контролю Т.е. тот факт, что тот или иной способ инициализации статических данных контролирует еще и тип этих самых данных - никак не может служить критерием оценки при выборе способа. Ни основным, ни дополнительным критерием. Это вообще ни на что не влияет. Ни с какой стороны Цитата:
Сообщение от mazzy
![]() код цвета, тег html, шрифт, размеры шрифта, GUID, MAC-адрес, ip-адрес, адрес сайта в интернете, параметры границы, размеры окон по умолчанию, avi-файл отображения в progressBar, фигуры для тетриса, список начальных вопросов-ответов для Элизы, а также любые другие константы, например из аксаптовских макросов.
тысячи их. Насколько я в курсе, никто и никогда не контролирует тип значения, записанного в макросе (константе). Их просто используют, предполагая, что макрос и так имеет нужный тип. PS: Ну, считайте, я "прицепился" к фразе Цитата:
Сообщение от mazzy
минусы:
= никакой встроенной проверки типов. нужно писать самому = никакой встроенной проверки количества данных. нужно писать самому |
|
![]() |
#7 |
Участник
|
Контрпример. Программист создаёт продукт (например фреймворк классов или просто базовый класс) который не является конечным звеном в цепочке разработки. Такой программист должен предоставить удобный интерфейс для других программистов, которые будут использовать и поддерживать его разработки. Конечно можно все параметры запихнуть в один большой контейнер и сказать: хотите воспользоваться моим чудо классом - читайте документацию. При таком подходе безошибочно ввести все константы сможет разве что сам автор чудо-фреймворка, да и тот через неделю уже не вспомнит всех нюансов.
|
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Контрпример. Программист создаёт продукт (например фреймворк классов или просто базовый класс) который не является конечным звеном в цепочке разработки. Такой программист должен предоставить удобный интерфейс для других программистов, которые будут использовать и поддерживать его разработки. Конечно можно все параметры запихнуть в один большой контейнер и сказать: хотите воспользоваться моим чудо классом - читайте документацию. При таком подходе безошибочно ввести все константы сможет разве что сам автор чудо-фреймворка, да и тот через неделю уже не вспомнит всех нюансов.
Более того, Ваш пример вообще ни о чем, поскольку абсолютно тоже самое можно сказать о любом способе инициализации статических данных. Ну, например, создан вместо контейнера Struct, или MAP, или временная таблицы. И как Вы собираетесь угадывать "что есть что" в этом "чудо-хранилище"? Опираясь на имена? Или таки будете читать документацию? Вот когда Вы создаете новую номерную серию, каким образом Вы определяете что надо заполнить в loadModulе()? Неужели из интерфейса все понятно? ![]() |
|