Проблема глобальных файлов терминала - страница 5

 
WHRoeder:
ProfessorMetal: Я не один из неофитов.
Без проверки ошибок я не уверен.
ProfessorMetal: не пытайся научить дедушку сосать яйца, мужик. Остынь, сынок.
WHRoeder: У вас нет времени, чтобы сделать все правильно с первого раза, но у вас есть время, чтобы сделать это заново или отследить ошибки, вызванные этим.
Тебе нужно остыть. Ты выходишь из себя из-за простого замечания. И не называй меня "сынок", я старше тебя (1957 год).

"Без проверки ошибок я не уверен". Это именно тот тип комментария, о котором я говорю. Это переходит все границы.

У меня нет к вам претензий, Родер. Я воспринял то, что вы сказали, как незаслуженную критику в мой адрес. Приношу свои извинения, если я неправильно понял ваше намерение. BTW, использование термина "сын" - обычное дело там, откуда я родом. Это все равно, что говорить "мужик" или "чувак" или что-то еще.

Когда я говорю о том, что обработка ошибок стоит дорого, я исхожу из того, что привык к парадигме try/catch от Microsoft. Это очень ресурсоемкий и трудоемкий процесс, если говорить о времени выполнения. Принятая практика заключается в том, чтобы составить архитектуру приложения, определить, где могут возникнуть проблемы, а затем добавить обработку исключений. Не стоит злоупотреблять этим, особенно в приложениях реального времени. Это так же плохо, если не хуже, чем полное отсутствие обработки исключений. Если вы говорите об использовании условий для проверки ошибок, то да, я делаю это как само собой разумеющееся.

Что касается конкретной ситуации, с которой я сталкиваюсь, когда отладчик падает, то, похоже, он вообще ничего не инициализировал. Отладчик выводит график на долю секунды и умирает. Согласно журналу, он загружает индикаторы и т.д., а затем сразу же выгружает их. В инди, над которым я сейчас работаю, у меня есть Alerts в OnInit(), так что я знаю, не пытается ли он инициализировать инди. Я вижу такое же поведение, если запускаю отладчик на других инди, у которых, как я знаю, нет никаких проблем. Я не совсем уверен в том, что происходит, но в конце концов я это выясню. Как я уже говорил в предыдущем сообщении, документация неверна в отношении того, где находится debug.tpl. Этот каталог даже не существует в инсталляции MT4. Либо документация неверна, либо в реализации MT4 есть проблемы. Так что, на данный момент, я думаю, что это 50/50, либо я как-то лажаю, либо что-то не так в реализации платформы.

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

 
angevoyageur:

Могу ли я предложить нашим ветеранам-программистам прекратить подобные обсуждения здесь.

Спасибо.


Согласен. Это совершенно контрпродуктивно - и непрофессионально.
 
ProfessorMetal. Я не могу не согласиться с вами по поводу ваших взглядов на чрезмерную обработку ошибок и предпочтение прямого тестирования.
 
gatoreyefx:
ProfessorMetal. Я не могу не согласиться с вами по поводу ваших взглядов на чрезмерную обработку ошибок и предпочтение прямого тестирования.

Спасибо. Рад нашему знакомству. Опыт - великий учитель :-)
 
  • ProfessorMetal:

    Спасибо. Рад знакомству с Вами. Опыт - великий учитель :-)

    Я не думаю, что это хорошая рекомендация здесь, так как большинство пользователей - начинающие или любители кодинга, и одна из наиболее часто встречающихся проблем возникает из-за отсутствия проверки ошибок вообще. Более того, опытные кодеры не нуждаются в таких рекомендациях, поскольку у них есть свой собственный опыт и привычки.
 
Я согласен с angevoyageur, обработка ошибок сокращает время, затрачиваемое на отладку и/или обращение к другим людям с просьбой помочь найти причину проблемы (проблем).
 
С момента обновления с билда 509 я использовал обработку ошибок. Теперь, почти ни одной, так как я удалил из ea, который я определенно знаю, что код достаточно стабилен, чтобы обрабатывать ошибки. Что-то вроде этого.
 
angevoyageur:
  • Профессор Металл:

    Спасибо. Рад знакомству. Опыт - великий учитель :-)

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


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

BTW, я думаю, что ваше последнее утверждение - это то, что я пытался донести до Родера - наряду с тем, что ваше взаимодействие с другими участниками форума состоит в основном из нападок и опускания людей, не служит никакой цели, кроме как потешить собственное эго. Те из нас, кто имеет опыт, должны отвечать менее опытным, которые действительно пытаются, с уважением и вниманием, а не насмешками. На этом я считаю вопрос закрытым. Я дал примирительный ответ Уильяму. Если он хочет принять его, это прекрасно. Если нет, то это тоже хорошо.

 
SDC:
Я согласен с angevoyageur, обработка ошибок сокращает время, затрачиваемое на отладку и/или обращение к другим людям с просьбой помочь найти причину проблемы (проблем).


Я ни в коем случае не оспариваю это. На самом деле, я имел в виду, что опытные разработчики "чувствуют", если это можно так назвать, где могут возникнуть проблемы. Например, если у меня есть метод, который требует параметров, я всегда проверяю, чтобы убедиться, что они такие, какие должны быть, прежде чем пытаться выполнить какой-либо код. Это автоматическая привычка, выработанная за годы работы над промышленными приложениями, где метод будет вызываться другими разработчиками, работающими над другой частью приложения, или непосредственно конечными пользователями, если это элемент пользовательского интерфейса. Вы быстро учитесь не принимать на веру, что кто-то пришлет вам то, что должен.

В основном я говорил о парадигме try/catch. Это не проблема для MQL, потому что, насколько я знаю, в MQL нет обработки исключений, которую использует Microsoft. Это делает многое из того, что я сказал, неважным.

К сведению, проблема, похоже, не была связана ни с одним из моих инди. Я не думал, что это так, но это всегда возможно - никто не совершенен, я в особенности. Я использую бесплатный советник стороннего производителя для управления торговлей, потому что у меня не было времени на разработку собственного. Для тестирования идей на демо-счетах я посчитал его достаточно хорошим. Думаю, вы получаете то, за что платите - это же халява. Я избавился от него, и с тех пор отладчик не падал. Однако некоторые проблемы все еще есть.

То, что я говорил ранее о несоответствии между документацией и работой, все еще в силе. В инсталляции MT4 нет каталога profiles/templates. Кроме того, в документации нет ни слова о том, как установить и использовать отладочные шаблоны. Я потратил довольно много часов, играя с вещами, чтобы понять, каково текущее поведение MT4. То, к чему я пришел, должно быть представлено где-то, но я не уверен, где именно, как диктует этикет форума. В этой изолированной теме, вероятно, нет, если только кто-нибудь из модераторов, которые следят за этим, не подумает так. Должен ли я создать новую тему, передать свои наблюдения модератору, чтобы он создал стикер, или мне просто собрать все воедино и отправить это в службу поддержки самостоятельно? Что бы ни думали модераторы, я пойду в этом направлении.

 

Я не думаю, что когда-либо должна была существовать папка profiles/templates. Моя папка templates находится в папке данных терминала.