Будут ли конструкторы с параметрами - страница 4

 
IgorM:
да, так оно и есть, но без исключений можно обойтись, пусть будут постоянные проверки критичных участков кода, лично я заинтересован в скорейшем выходе стабильно работающего билда МТ5, т.к. постоянные "кривозалатанные" обновления вызывают только не желание переходить на новую платформу, а добавление исключений потребует дополнительное время от разработчиков. К слову, я бы очень хотел бы иметь полнофункциональную работу с графикой - некий canvas, возможность создавать ChildWindow и checkbox, но у разработчиков свои планы по созданию МТ5. По большому счету, никто не запрещает сделать свой мост между терминалом и сторонней программой через dll, разработчики утверждают, что вызов dll теперь очень быстрый

С красным я полностью согласен!

И если бы разработчики сказали бы: Что вы хотите, исключения или стабильный билд, я бы выбрал, конечно, билд.

Но пока, ни исключений, ни билда :)

 
falkov:

Ну, таким образом, мы приходим к пониманию того, что создать нормальную и современную среду для программера для разработки ПО разработчики MQL пока не в состоянии.

Это видно по тому количеству ошибок, которое изначально было в МТ5, и по отсутствию нормальной документации в момент запуска проекта, и по случаям, когда одно лечим, другое рушим. Т.е. полноценное тестирование не проводится.


1. Нормальную и современную среду для разработки ПО?

На основании этих слов я так понимаю мы тут все тестируем нового конкурента для VB, C++, C#, Delphi, Java и прочих монстров из этой области?

Следовательно как я понимаю парням из MQ лавры Майкрософт, Борланда, Интел и прочих спать спокойно мешают?

А я то думал мы тут все дружно тестируем новую торговую платформу, которая имеет свой специализированный язык (который только от части связан с С++).

Кстати, эти парни вроде как доказали что умеют создавать подобные решения (хотя некоторые до сих пор и сомневаются в этом). Может я не прав?

2. А в ОС Windows ошибок то наверное нет? Может в конфигурациях 1С:Предприятие их мало? Может есть где-то программное обеспечение подобных размеров без багов?

Может MT5 делают не люди (или сотрудникам MQ уже на законодательном уровне ошибаться запрещено)?

3. А что есть "полноценное тестирование"?

falkov:

Убогий редактор (хотя уважаемый Ренат не считает его таким) И огромное время, конца которому пока нет, вывода МТ5 в релиз.

Ну даже не знаю, по сравнению с редактором МТ4 мне кажется очень даже неплохо смотрится, а уж по сравнению с "Блокнотом"... :)
 
falkov:

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


Может назовете пару торговых комплексов для торговли на биржах от Майкрософт, у Интела может есть подобные решения? Ну у парней из 1С они точно должны быть :)

Еще раз повторю - Не стоит сравнивать MQL и C++ с точки зрения абсолютной совместимости. Новые возможности со временем обязательно будут, возможно когда-то добавят и исключения.

Но сейчас об этом рано говорить и думать.

falkov:

Кстати, многопоточность - это тоже хорошо. И почему Вы считаете, что это снизит безопасность ПО? Туча программ пишется с использованием ее.

Пишутся конечно тучи. Сколько из них являются правильно и грамотно реализованными клиент-серверными решениями?

А синхронизировать данные в терминале наверное ПУШКИН будет (или  теперь каждому трейдеру придется кроме основ ООП изучать еще и основы работы с потоками)?

95% народу или совсем не будет это юзать, или будет юзать с ошибками.

Так вот и вопрос - зачем ломать и перестраивать готовое здание если там осталось сделать только отделочные работы?

PS

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

 

falkov:

Причем, сначала Вы говорите, "Неужели с помощью MQL5 будем ракеты в космос запускать и управлять самолетами?" - т.е. надежность не сильно важна.

А потом "ПОЧЕМУ РАЗРАБОТЧИКИ ДОЛЖНЫ ЖЕРТВОВАТЬ БЕЗОПАСНОСТЬЮ В ДЛЯ РАСШИРЕНИЯ ФУНКЦИОНАЛА?" - т.е. безопасность все-таки важна.

В первой части речь шла не о надежности, а об функционале. Года полтора уже знаком с MQL5 и как-то умудрялся до этого обходиться без исключений.

Хотя помнится по началу тоже просил их добавить, но после ответа разработчиков вспомнилась фраза одного из авторов книг по FoxPro, которая звучала примерно так - Есть много способов содрать с кошки шкуру.

falkov:

И если бы разработчики сказали бы: Что вы хотите, исключения или стабильный билд, я бы выбрал, конечно, билд.

Если бы разработчики дали выбор между исключениями и параметрами в OnTrade() я бы без раздумий выбрал второе. Наверное и куча народа тоже.

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

ИМХО

 

IgorM:

MetaDriver:

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

  да! но думаю GetLastError() достаточно что бы контролировать ситуацию и не усложнять язык исключениями

Это вовсе не обязательно реализовывать через исключения. Помнится в TurboPascal'e была псевдопроцедура fail для этих целей. Она прекращала выполнение конструктора и принуждала new вернуть пустой указатель. Это было ещё до введения в Делфи механизма исключений. Исправно всё работало.

Процедура Fail - pascalbook.ru справочник по Turbo Pascal
  • pascalbook.ru
F1 - окно справки; F2 - сохраняет текущий файл; F3 - открытие файла; F4 - запуск программы до строки, на которой стоит курсор; F5 - масштабирует диалоговое окно; F6 - переход иежду открытыми окнами; F7 - запуск режима отладки с вызовом процедур; F8 - запуск режима...
 
TheXpert:
А смысл? Имхо, если объект не создался, значит все очень плохо -- это ведь не самостоятельный код. Тупо завершается выполнение и все, имхо.

Завершается выполнение чего? Всей программы?   Не. Это не наш путь.

Нужно только чтоб завершался конструктор, и при этом new возвращал пустой указатель. Всю программу грохать крайне нежелательно.

 
MetaDriver:
Не. Это не наш путь.

Ну можно объекты юзать исключительно через указатели. Кстати, это хороший вариант, имхо -- сделать возможность вызова конструктора с параметрами только через оператор new.

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 
TheXpert:

Ну можно объекты юзать исключительно через указатели. Кстати, это хороший вариант, имхо -- сделать возможность вызова конструктора с параметрами только через оператор new.

Хорошо бы, но как тогда компилятору воспринимать если конструктор описан с параметром а объект создаётся статично?

Придётся описывать перегрузку конструктора.

 
Urain:

Хорошо бы, но как тогда компилятору воспринимать если конструктор описан с параметром а объект создаётся статично?

Придётся описывать перегрузку конструктора.

Третий день размышляю. Пришёл пока к выводам:

1) Конструкторы распределяющие память для дочерних объектов - зло.

2) Конструкторы вызывающие виртуальные функции - зло.

Кароче, в конструкторах - минимум кода. Динамические поля инициализировать вдогонку, в Inite(....).

--

Наличие параметров в общем-то ни при чём. Без параметров ничуть не лучше. :)

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Виртуальные функции - Документация по MQL5
 
MetaDriver:

Третий день размышляю. Пришёл пока к выводам:

1) Конструкторы распределяющие память для дочерних объектов - зло.

2) Конструкторы вызывающие виртуальные функции - зло.


Не знаю как там в С++ (тем более от Майкрософт), а мне вполне подходит работа конструкторов и деструкторов реализованная в Delphi.
Причина обращения: