Скачать MetaTrader 5

8 правил хорошего кода - хорошая статья о Code Style

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Авторизуйся на MQL5.community с помощью OpenID. Это удобно!
Alexey Volchanskiy
16673
Alexey Volchanskiy 2015.11.08 17:45 

Бродя по Хабру, наткнулся на интересную статью 8 правил хорошего кода, думаю, многим будет интересно почитать. Программисты MQL иногда присылают свой код на предмет найти ошибку. И очень часто при первом взгляде на него мне хочется бежать за блевотным пакетиком, настолько отвратительно этот код выглядит.

У меня при чтении такого спагетти-кода возникает образ программиста, которые его написал : лохматое, немытое, воняющее существо с всклокоченными волосами, красными глазами и недельной щетиной. В квартире бардак, последняя женщина в его жизни была лет 5 назад, питается дешираком с бульонными кубиками )) Знаю, что люди, присылающие код, следят за собой, квартирой, собакой и даже женой. Но почему такое наплевательское отношение к написанию кода?

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

Примеры спагетти-кода приводить не буду, дабы не портить воскресный вечер ))

Перефразируя великого писателя под наши реалии, можно сказать : В человеке всё должно быть прекрасно: и лицо, и одежда, и душа, и код...

А. П. Чехов 

Do good code: 8 правил хорошего кода
Do good code: 8 правил хорошего кода
  • habrahabr.ru
Практически всем, кто обучался программированию, известна книга Стива Макконнелла «Совершенный код». Она всегда производит впечатление, прежде всего, внушительной толщиной (около 900 страниц). К сожалению, реальность такова, что иногда впечатления этим и ограничиваются. А зря. В дальнейшей профессиональной деятельности программисты сталкиваются...
Yury Kirillov
3269
Yury Kirillov 2015.11.08 18:14  
Alexey Volchanskiy:

Бродя по Хабру, наткнулся на интересную статью 8 правил хорошего кода, думаю, многим будет интересно почитать. Программисты MQL иногда присылают свой код на предмет найти ошибку. И очень часто при первом взгляде на него мне хочется бежать за блевотным пакетиком, настолько отвратительно этот код выглядит.

У меня при чтении такого спагетти-кода возникает образ программиста, которые его написал : лохматое, немытое, воняющее существо с всклокоченными волосами, красными глазами и недельной щетиной. В квартире бардак, последняя женщина в его жизни была лет 5 назад, питается дешираком с бульонными кубиками )) Знаю, что люди, присылающие код, следят за собой, квартирой, собакой и даже женой. Но почему такое наплевательское отношение к написанию кода?

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

Примеры спагетти-кода приводить не буду, дабы не портить воскресный вечер ))

Перефразируя великого писателя под наши реалии, можно сказать : В человеке всё должно быть прекрасно: и лицо, и одежда, и душа, и код...

А. П. Чехов 

Улыбнули примеры, противоречащие правилам под которые они составлены:

================== 

...соблюдайте правило вертикали — части одного запроса или условия должны находиться на одном отступе
if (typeof a ! == "undefined" &&
    typeof b ! == "undefined" &&
    typeof c === "string") { 
//your stuff 
}

 

 ...Попробуем внести изменения таким образом:

// находим лист, записываем имя в leafName
if ( node != null ) {
     while ( node.next != null ) {
           node = node.next;
           leafName = node.name;
     }
}
else {
     leafName = ””;
}

 

 ==================

 Как-то кривовато соблюдено правило вертикали, не правда ли?

Alexey Volchanskiy
16673
Alexey Volchanskiy 2015.11.08 18:26  
Yury Kirillov:

Улыбнули примеры, противоречащие правилам под которые они составлены:

================== 

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

 

 ...Попробуем внести изменения таким образом:

 

 ==================

 Как-то кривовато соблюдено правило вертикали, не правда ли?

Не надо фанатизма, это не значит, что надо код по столбцам расписывать )) Достаточно выравнивания по typeof a. Во втором примере вообще криминала не вижу. Лично меня бесят расстановки {} скобок, нифига не видно начало и конец блока. Я всегда так пишу

Yury Kirillov
3269
Yury Kirillov 2015.11.08 18:37  
Alexey Volchanskiy:

Не надо фанатизма, это не значит, что надо код по столбцам расписывать )) Достаточно выравнивания по typeof a. Во втором примере вообще криминала не вижу. Лично меня бесят расстановки {} скобок, нифига не видно начало и конец блока. Я всегда так пишу

 Не знаю, не знаю. Иногда фанатизм со скобками облегчает восприятие.

   {if (TPoff)                                      //если ТР отключены, то программный профит - какой захотим, 
   {
      ProfitB=ProfOrd;
      ProfitS=ProfOrd;
   }else{                                          //Иначе - не меньше 2 стоплевел (по крайней мере для РобоФорекс)
      ProfitB=fmax(ProfOrd,2*gStopLevelB*Point);       
      ProfitS=fmax(ProfOrd,2*gStopLevelS*Point);       
   }}//if (TPoff)
Alexey Volchanskiy
16673
Alexey Volchanskiy 2015.11.08 18:40  
Yury Kirillov:

 Не знаю, не знаю. Иногда фанатизм со скобками облегчает восприятие.

Так пишут программисты с маленьким размером .... не того, о чем все подумали.

Монитора )) Размер имеет значение!

------ шучу, кодестайл в разных фирмах разный, хотя, обычно придерживаются стиля от MS 

Yury Kirillov
3269
Yury Kirillov 2015.11.08 18:51  
Alexey Volchanskiy:

Так пишут программисты с маленьким размером .... не того, о чем все подумали.

Монитора )) Размер имеет значение!

------ шучу, кодестайл в разных фирмах разный, хотя, обычно придерживаются стиля от MS 

Типа у кого не хватает размера - тот компенсирует большим монитором? :-)))
Alexey Volchanskiy
16673
Alexey Volchanskiy 2015.11.08 18:53  
Yury Kirillov:
Типа у кого не хватает размера - тот компенсирует большим монитором? :-)))
Неее )) У кого в том числе и мониторчик маленький, компенсирует тем, что пытается втиснуть побольше строк кода на экран.
Alexey Viktorov
6839
Alexey Viktorov 2015.11.08 19:22  

Сразу бросилось в глаза

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

for (var i = 0; i < 100; i++)

Но у MQ пробелы считаются плохом тоном.

Dmitry Fedoseev
42903
Dmitry Fedoseev 2015.11.08 19:29  
Yury Kirillov:

...

 Как-то кривовато соблюдено правило вертикали, не правда ли?

Где конкретно кривизна и в чем? Нормальные примеры без кривизны.
Alexey Volchanskiy
16673
Alexey Volchanskiy 2015.11.08 21:47  
Alexey Viktorov:

Сразу бросилось в глаза

Но у MQ пробелы считаются плохом тоном.

Может, у MQ маленькие мониторы? )) Я ставлю пробелы, мне так комфортнее
Rustamzhan Salidzhanov
7684
Rustamzhan Salidzhanov 2015.11.08 22:13  
Alexey Viktorov:

Сразу бросилось в глаза

Но у MQ пробелы считаются плохом тоном.

   А при чем здесь MQ ???  

   Пишете то вы... 

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий