17.07.2017, 21:25 | #141 |
Участник
|
Цитата:
Если да, то тогда зачем эти вопросы? Если нет, то попробуйте ответить на вопрос - чем отличаются new и construct? -------- Я утверждаю, что 1. Для подавляющего большинства (99.9%) прикладных классов на вход нужен хотя бы один параметр. 2. Де факто, в ах стандартом для передачи параметров выбран объект класса Аргс. 3. Аргс уже сейчас используется при инициализации всех интерфейсных объектов (формы, отчеты, запускаемые классы с main, даже джобы!) Почему не продолжить логику и не сделать передачу аргс обязательным параметром при создании любого экземпляра класса? Ссылка на то, что так (без параметров) сделано в кривой реализации пакетов и цил - это то же самое, что сказать, что давайте равняться на жигули как на эталон машиностроения, а не на тойоту например.... Последний раз редактировалось ta_and; 17.07.2017 в 21:28. |
|
17.07.2017, 21:55 | #142 |
северный Будда
|
Можно сколько угодно критиковать подход к реализации пакетника - но он есть, и под это надо подстраиваться. По крайней мере, пока его не изменит МС. Иначе о каком едином подходе в разработке может идти речь? Если каждый разработчик будет использовать только свои собственные паттерны, то можно сразу говорить о нечитабельности кода в целом
__________________
С уважением, Вячеслав |
|
18.07.2017, 05:56 | #143 |
Участник
|
Цитата:
Цитата:
Цитата:
Цитата:
Представьте, что вы пришли в управляющую компанию за справкой. А вам говорят, в течение 5 рабочих дней вы выдадим вам полный комплект документов по вашей квартире. Приходите на следующей неделе." А вы такой: "ну мне же только справку...". А вам отвечают: "Извините, законодательство ввело новый стандарт, на любой запрос мы готовим полный пакет документов."
__________________
// no comments |
|
18.07.2017, 10:40 | #144 |
Участник
|
Приведите пример прикладного класса, которому не нужен ни один параметр?
Цитата:
Сообщение от dech
Представьте, что вы пришли в управляющую компанию за справкой. А вам говорят, в течение 5 рабочих дней вы выдадим вам полный комплект документов по вашей квартире. Приходите на следующей неделе." А вы такой: "ну мне же только справку...". А вам отвечают: "Извините, законодательство ввело новый стандарт, на любой запрос мы готовим полный пакет документов."
Скорее - это единый формат для всех справок. Т.е. заголовок, шапка, реквизиты, тело - все отформатировано в едином виде. если чего-то не нужно, то оно просто пропущено. и место остается пустым. Зато мы получаем единый формат всех документов. Если нужно получить реквизиты - мы знаем куда смотреть! Если заголовок - что это за документ - смотрим заголовок! в нужном месте. не думая ни о каких других местах и способах достать что же это за документ перед нами и не переворачиваем документ, чтобы посмотреть на обороте, где рыбу заворачивали. |
|
18.07.2017, 13:35 | #145 |
Участник
|
Цитата:
Да нет, пример самый подходящий. Что я вижу, исходя из нашего разговора? С одной стороны вы хотите обязать new() принимать параметр и считаете это золотым стандартом (которого, кстати не придерживается M$). С другой стороны вы хотите сделать применение Args стандартом де-факто. Т.е. идеальный вариант для вас, это X++: void new(Args _args) Цитата:
Да и что будет, если так делать, как вы хотите? Представляете сколько параметров передается из метода в метод повсюду? Если все это стандартизовать, то боюсь, что от огромного количества экземпляров данного класса AOS-ы начнут дико свапить на диск, а пользователи сожгут вас на костре.
__________________
// no comments |
|
18.07.2017, 15:25 | #146 |
Участник
|
О. Да. 0.1 процента всех классов.
Да. только с маленькой поправкой: X++: void new(Args _args = null) При чем здесь передача параметров из метода в метод? Конструктор вызывается один раз для создания экземпляра. Полюбому в созданный экземпляр передаются входные параметры. Сейчас как раз это делается с помощью куевой хучи неформализованных методов аля initFromArgs и тому подобной лабудени. Я предлагаю всего лишь законодательно это закрепить. Мои мечты все равно не сбудутся. У М$ всегда свои планы на вечер. Но помечтать то я могу?... Огромного количества чего? Того, что уже есть в системе? Что уже и так генерится и существует для каждого интерфейсного элемента и может быть запросто передано в класс? Вы серьезно? Ничего, что все main вызываются с передачей параметра аргс? это Вас не смущает? |
|
18.07.2017, 19:02 | #147 |
Участник
|
Я давно понял вашу позицию, но вы упрямо продолжаете держаться за воздух.
Наберите-ка лучше в поиске по содержимому классов такую ключевую фразу: X++: void new() Цитата:
Цитата:
Сообщение от ta_and
При чем здесь передача параметров из метода в метод?
Конструктор вызывается один раз для создания экземпляра. Полюбому в созданный экземпляр передаются входные параметры. Сейчас как раз это делается с помощью куевой хучи неформализованных методов аля initFromArgs и тому подобной лабудени. Цитата:
Короче, ваша идея с аргс - чисто солдафонская привычка: грубо, топорно, но зато понятно и надёжно. А какова цена - да не важно совсем, главное работает и всем понятно))). Всё, я с вами больше не спорю. Нет никакого смысла.
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: skuull (4). |
18.07.2017, 19:24 | #148 |
Участник
|
Подытожу немного.
Класс Аргс был создан для того и только для того, чтобы передавать информацию из форм отчетов и меню. Остальное от лукавого.
__________________
// no comments |
|
19.07.2017, 03:37 | #149 |
Banned
|
Цитата:
Это может быть и имя, и аргс, и массив параметров. В стыдном PHP например это делается так PHP код:
PHP код:
А есть и такая фишка ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor. http://php.net/manual/en/reflectionc...onstructor.php От передачи ссылки или null - системе не поплохеет. Использование метаданных в случае данной темы - это само по себе не глупо. Автор темы просто устал от того бардака который привнесли в неплохую и законченную систему. Солдафонство в том смысле что должен быть единый и единственный фрэймворк в конкретном продукте/платформе, единообразие и следование уставу - это то что доктор студентам прописал |
|
19.07.2017, 07:08 | #150 |
NavAx
|
Что хорошего в передаче Args, если это не вызов через menuItem? Куча бессмысленных параметров, из которых будет лишь один будет иметь смысл, да и тот предельно обобщенный Object. Т.е. вся надежность в том, что надежно удается обмануть компилятор и словить ошибку в runtime.
Здесь соглашусь. Такого многие стыдятся. Но из уважения к твоим религиозным убеждениям про "граальность" некторых языков, тему развивать не вижу смысла.
__________________
Isn't it nice when things just work? |
|
19.07.2017, 19:09 | #151 |
Banned
|
Цитата:
Сообщение от macklakov
Что хорошего в передаче Args, если это не вызов через menuItem? Куча бессмысленных параметров, из которых будет лишь один будет иметь смысл, да и тот предельно обобщенный Object. Т.е. вся надежность в том, что надежно удается обмануть компилятор и словить ошибку в runtime.
Здесь соглашусь. Такого многие стыдятся. Но из уважения к твоим религиозным убеждениям про "граальность" некторых языков, тему развивать не вижу смысла. Собственно старые солдаты и тоскуют о порядке. Которого не стало. Компилятор как защита от дурака - от дураков не помогает, но помогает делать дураков. |
|
11.08.2017, 22:16 | #152 |
Участник
|
Как подобный класс задач решается у соседей
Алексей Буздин — Чудеса обработки Java-аннотаций при компиляции |
|
12.08.2017, 02:34 | #153 |
Участник
|
кстати не только у соседей, по подобной схеме работают дата ентити - т.е. компилится не дата ентити, а на ее основе создается класс(со всякими геттерами-сеттерами), туда переносится код из перекрытых методов и работа уже идет с этим классом.
т.е. сама эта конструкция когда я увидел это в первый раз очень удивила, но судя по видео видно какой-то джава разработчик и делал. очевидный недостаток такой модели - что таблицы имеют сво-во меняться, в них добавляются поля и прочее. а дата ентити этого не знает, что как бы резко усложняет поддержку такой схемы и по сути делает стандартный импорт мало пригодным |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
12.08.2017, 11:05 | #154 |
Участник
|
|
|
Теги |
sysextension framework, sysoperation framework, как правильно, полезное |
|
|