Обсуждение статьи "Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5"

 

Опубликована статья Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5:

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

Прежде чем искать решения для своей проблемы, надо понять причины ее возникновения. Только разобравшись, вы сможете задавать правильные вопросы на форуме, а не постить код в надежде получить исправленное и правильно работающее решение в ответ. А ведь проблема может быть связана с тем, что вы просто не понимаете, что и зачем пишете. Опять же возьмем мой пример: я скопировал где-то код, чтобы изменить шаблон графика, не понимая и вообще не зная ничего о работе с графиками через стандартную библиотеку. И что в итоге? Я написал, что библиотека не работает.

Как только вы столкнетесь с проблемой или ошибкой, убедитесь, что вы понимаете все библиотеки и код, который не работает. Есть разные способы найти соответствующую информацию на MQL5. Основные, это:

  • Документация по MQL5
  • Форум

Документация по MQL5:

К счастью, в нашем распоряжении есть отличная документация со всей нужной информацией и не нужно искать где-то в интернете. Профессиональные программисты знают о документации и пользуются ей. А для начинающих я напишу, как быстро ее найти: откройте MetaEditor, меню Справка и выберите Справочник MQl5.

Доступ к документации

Автор: Omega J Msigwa

 
int CountPosByType(ENUM_POSITION_TYPE type)
  {
   int counter = 0;
   for(int i=PositionsTotal(); i>=0; i--)
      if(m_position.SelectByIndex(i))
         if(m_position.Magic()==MagicNumber && m_position.Symbol()==Symbol() && m_position.PositionType()==type)
            { 
                counter++; 
            }
   return counter;
  }

  • Первое значение переменной в цикле ошибочное.
  • Вместо одного if стоит два.
  • string-сравнение (символ) должно стоять в конце.
  • bool-выражения не выделены скобками.
  • Мэджик-переменная отсутствует во входных функции.
  • Объект позиции не создан.
 
fxsaber #:

разные отступы и стили фигурных скобок, т.е. своему совету про стилизатор не следует )

крч ни о чем

 

Функция довольно проста и вроде ее можно понять. Но она не отвечает требованиям чистого кода. Поэтому применим стилизатор. Это просто: нажимаем на синюю кнопку в виде расчески в MetaEditor и причесываем код.

по-моему стилизатор не позволяет получить чистый код 

чистый код это не много другое

 
Тот кто слепо копирует чужой код может называться программистом? 
 
Любопытно, что дальше будет...
 
Sofiia Butenko #:
Тот кто слепо копирует чужой код может называться программистом? 

что за. тем то не знает, что делать?

 
Sergey Pavlov #:
Любопытно, что дальше будет...

Омега пишет в английской ветке. Следующая статья Better Programmer (Part 02): Stop doing these 5 things to become a successful MQL5 programmer.

Omega J Msigwa
Omega J Msigwa
  • www.mql5.com
Trader's profile
 

Хорошая статья. В ней хорошо раскрыта концепция, что нужно делать, а что не нужно.

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

Спасибо, Омега!

 
fxsaber #:

  • The first value of the variable in the loop is wrong.
  • Instead of one if, there are two.
  • string comparison (character) must come at the end.
  • bool expressions are not bracketed.
  • Magic variable is missing in the input functions.
  • The position object was not created.
Я не видел ошибки в первый раз, пока она не была опубликована, так как я кодировал ее не в метаредакторе, а просто во время написания, но это не большая проблема, потому что, кстати, все использованные примеры кодирования должны были только указать
 

Интересно...

fxsaber #:

  • Первое значение переменной в цикле ошибочное.
  • Вместо одного if стоит два.
  • string-сравнение (символ) должно стоять в конце.
  • bool-выражения не выделены скобками.
  • Мэджик-переменная отсутствует во входных функции.
  • Объект позиции не создан.

Стать хорошим программистом (часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

Причина обращения: