AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2011, 14:41   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,718 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
я говорил о наборе пар <таблица, поле> для редактирования query.
я предполагал что-то сугубо внутренне-программистское. такое что не дается пользователю.
Как "стандартно" задается пара <таблица, поле> для будущего Range? Очевидно, через функции tablenum(), fieldnum(). И вот КАК здесь можно ошибиться? Приведи пример.

Это очень показательный пример того, что без знания цели, выбор "идеального" средства - бессмысленное занятие

Цитата:
Сообщение от mazzy Посмотреть сообщение
А мне нравится эта вывернутая логика:
Конечно же надо контролировать значение - "скажи как".
Ну, это просто. Если известно, что речь идет о паре: таблица-поле, то, очевидно, можно проконтролировать корректность Id-таблица и корректность Id-поля. Только вот, не кажется ли, ну, мягко говоря, странным подобное занятие? Разве tablenum() и filednum() в принципе могут дать не корректное значение?

Цитата:
Сообщение от mazzy Посмотреть сообщение
И мне нравится этот переход на личности:
"раз у тебя код не тестируется, поэтому зачем тебе контроль начальных данных?"
Это не "переход на личности". Это доведение до абсурда, чтобы показать не корректность исходной постановки задачи.

Ведь насколько я понимаю, Вы не ставите задачу проверки значения не потому, что это невозможно "в принципе". Как раз-таки очень даже возможно. Просто Вы понимаете полную бессмысленность этой задачи. Однако контроль типов Вам не кажется бессмысленным. Почему, собственно? Только потому, что это относительно просто?
Старый 12.04.2011, 17:58   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Как "стандартно" задается пара <таблица, поле> для будущего Range? Очевидно, через функции tablenum(), fieldnum(). И вот КАК здесь можно ошибиться? Приведи пример.
легко. здесь выкладывают проекты.
проекты могут быть импортированы в среду, где таких таблиц нет.

другой вариант: дев и продакт системы.
в дев таблицы и поля есть, а в продакт еще не перенесли.

или вот так: Несколько AOS: синхронность изменения объектов

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Это очень показательный пример того, что без знания цели, выбор "идеального" средства - бессмысленное занятие
Как скажете

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Ведь насколько я понимаю, Вы не ставите задачу проверки значения не потому, что это невозможно "в принципе". Как раз-таки очень даже возможно. Просто Вы понимаете полную бессмысленность этой задачи. Однако контроль типов Вам не кажется бессмысленным. Почему, собственно? Только потому, что это относительно просто?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 12.04.2011 в 18:16. Причина: добавил ссылку на соседнюю ветку.
Старый 12.04.2011, 18:17   #3  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
Я бы может генерил бы на основе таблиц и полей, или классов (метаданных)
XML формы для ввода, что то вроде ASP.net или веб сервис,
и не программист мог бы вводить данные с привязкой к метаданным (не по id а возможно символьно)

а потом умный парсер, преобразовывал бы стрктуру XML и заполнял бы те данные для которых есть таблицы поля классы, или настроил бы генерить ошибку если не вся структура подгружена, или же частично загружать не выкидывая ошибок.

можно было бы сделать веб сервис поставщик данных, на основе того что вводят не программисты. в веб поля которые генерятся на основе дев метаданных.

Последний раз редактировалось Evgeniy2020; 12.04.2011 в 18:25.
Старый 12.04.2011, 19:41   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,718 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
легко. здесь выкладывают проекты.
проекты могут быть импортированы в среду, где таких таблиц нет.

другой вариант: дев и продакт системы.
в дев таблицы и поля есть, а в продакт еще не перенесли.

или вот так: Несколько AOS: синхронность изменения объектов
Во всех описанных случаях при использовании tablenum() и fieldnum() будет ошибка на этапе компиляции. Импорт не получится. Нет причин в дополнительном контроле не только значений, но и типов данных.

Можно привести еще варианты, когда при вводе констант (статических данных) действительно необходим дополнительный контроль типов этих самых констант?
Старый 12.04.2011, 20:53   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Во всех описанных случаях при использовании tablenum() и fieldnum() будет ошибка на этапе компиляции. Импорт не получится. Нет причин в дополнительном контроле не только значений, но и типов данных.
вы так уперлись в функции tablenum и fieldnum.

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Можно привести еще варианты, когда при вводе констант (статических данных) действительно необходим дополнительный контроль типов этих самых констант?
конечно.
код цвета, тег html, шрифт, размеры шрифта, GUID, MAC-адрес, ip-адрес, адрес сайта в интернете, параметры границы, размеры окон по умолчанию, avi-файл отображения в progressBar, фигуры для тетриса, список начальных вопросов-ответов для Элизы, а также любые другие константы, например из аксаптовских макросов.

тысячи их.

Цитата:
Сообщение от mazzy Посмотреть сообщение
Дисклаймер 2:
Специально возьму пример не из области учета, а из области программирования низкого уровня (чтобы не начинать обсуждение в стиле "сделай по-другому", "используй другой функционал").
__________________
полезное на axForum, github, vk, coub.
Старый 13.04.2011, 12:37   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,718 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
вы так уперлись в функции tablenum и fieldnum.
Да не в функции я уперся, а в то, что требование контроля самим же программистом введенных констант - бессмысленно.

Либо константы не являются константами в прямом смысле этого слова (tablenum() - это НЕ константа), либо никто и никогда не контролирует тип этих констант. В смысле, не пишет функционала по этому контролю

Т.е. тот факт, что тот или иной способ инициализации статических данных контролирует еще и тип этих самых данных - никак не может служить критерием оценки при выборе способа. Ни основным, ни дополнительным критерием. Это вообще ни на что не влияет. Ни с какой стороны

Цитата:
Сообщение от mazzy Посмотреть сообщение
код цвета, тег html, шрифт, размеры шрифта, GUID, MAC-адрес, ip-адрес, адрес сайта в интернете, параметры границы, размеры окон по умолчанию, avi-файл отображения в progressBar, фигуры для тетриса, список начальных вопросов-ответов для Элизы, а также любые другие константы, например из аксаптовских макросов.

тысячи их.
Замечательно. А теперь приведите пример кода, где бы был прописан функционал контроля типа этих самых констант.

Насколько я в курсе, никто и никогда не контролирует тип значения, записанного в макросе (константе). Их просто используют, предполагая, что макрос и так имеет нужный тип.

PS: Ну, считайте, я "прицепился" к фразе

Цитата:
Сообщение от mazzy
минусы:
= никакой встроенной проверки типов. нужно писать самому
= никакой встроенной проверки количества данных. нужно писать самому
С моей точки зрения - это просто не нужно. Это не критерий оценки. Следовательно и не может быть поставлен как достоинство или недостаток того или иного метода
Старый 13.04.2011, 13:20   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
требование контроля самим же программистом введенных констант - бессмысленно.
Контрпример. Программист создаёт продукт (например фреймворк классов или просто базовый класс) который не является конечным звеном в цепочке разработки. Такой программист должен предоставить удобный интерфейс для других программистов, которые будут использовать и поддерживать его разработки. Конечно можно все параметры запихнуть в один большой контейнер и сказать: хотите воспользоваться моим чудо классом - читайте документацию. При таком подходе безошибочно ввести все константы сможет разве что сам автор чудо-фреймворка, да и тот через неделю уже не вспомнит всех нюансов.
Старый 13.04.2011, 14:39   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,718 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Контрпример. Программист создаёт продукт (например фреймворк классов или просто базовый класс) который не является конечным звеном в цепочке разработки. Такой программист должен предоставить удобный интерфейс для других программистов, которые будут использовать и поддерживать его разработки. Конечно можно все параметры запихнуть в один большой контейнер и сказать: хотите воспользоваться моим чудо классом - читайте документацию. При таком подходе безошибочно ввести все константы сможет разве что сам автор чудо-фреймворка, да и тот через неделю уже не вспомнит всех нюансов.
Какое отношение это все имеет к контролю типов и значений "параметров"?

Более того, Ваш пример вообще ни о чем, поскольку абсолютно тоже самое можно сказать о любом способе инициализации статических данных. Ну, например, создан вместо контейнера Struct, или MAP, или временная таблицы. И как Вы собираетесь угадывать "что есть что" в этом "чудо-хранилище"? Опираясь на имена? Или таки будете читать документацию?

Вот когда Вы создаете новую номерную серию, каким образом Вы определяете что надо заполнить в loadModulе()? Неужели из интерфейса все понятно?
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Загрузка начальных данных MIVura DAX: Прочие вопросы 1 31.03.2009 14:52
Набор данных на лету HorrR DAX: Программирование 15 26.09.2008 15:21
Прогноз роста базы данных и выбор топологии системы, Как правильно расчитать возможный рост sergeypp DAX: Администрирование 0 05.12.2006 16:55
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:55.