Удобочитаемый код. Отступы и разбиение строк в коде.
Многие начинающие программисты, когда пишут свои первые программы или скрипты, пренебрегают такой вещью, как отступы в коде. Отсутствие отступов делает код очень сложночитаемым. Особенно если в программе много блоков вложения.
Убедимся в этом на примере. Рассмотрим код без отступов:
for ($i=1;$i<=n;$i++){ for ($j=1;$j<=m;$j++){ for ($k=1;$k<=w;$j++){ if (my_function($i,$j,$w)){ if (my_function_second($i,$j,$w)){ $a = $i+$j-$k; } else{ $a = null; } $a = $a-$j; } $a = $a+$k; $b = $a-2*$j; } $b = $k-$a; if ($a > $b){ $b = 3*$c; $a = 0; } } }
Попробуйте в нем разобраться, и вы поймете, что легче расставить в коде отступы, чем ломать глаза об
эту кашу.
Итак, расставим в коде отступы и получаем удобочитаемый код:
for ($i = 1;$i <= n;$i++){ for ($j = 1;$j <= m;$j++){ for ($k = 1;$k <= w;$j++){ if (my_function($i,$j,$w)){ if (my_function_second($i,$j,$w)){ $a = $i+$j-$k; } else{ $a = null; } $a = $a-$j; } $a = $a+$k; $b = $a-2*$j; } $b = $k-$a; if ($a > $b){ $b = 3*$c; $a = 0; } } }
При правильной расстановки отступов, даже не вникая в код, можно увидеть, что в нем 2 вложенных цикла. Первый вложен во второй, а второй вложен в третий основной цикл. Благодаря отступам невооруженным глазом видно где начинается и кончается цикл.
Теперь я напишу немного о разбиении длинных строк в коде. Допустим в блоке if проверяется целых десять
условий. Такая длинная строка даже если влезет в окно среды разработки, ее будет неудобно читать.
Опять же убедимся на примере:
if ($afactor == 'eval1' && $bfactor == 'eval2' && $cfactor == 'eval3' && $dfactor == 'eval4' && $efactor == 'eval5' && $ffactor == 'eval6' && $gfactor == 'eval7' && $hfactor == 'eval8' && $ifactor == 'eval9' && $jfactor == 'eval10') { // Тело блока if //... //... }
Строчка с десятью условьями конечно же не влезла в окно блога. Помимо этого условья просто неудобно читать. Просто глаза разбегаются. Высока вероятность, что человек, читающий код, какое-то условье да пропустит.
А теперь разобьем строчку с условьем на несколько строк, и посмотрим что получится:
if ($afactor == 'eval1' && $bfactor == 'eval2' && $cfactor == 'eval3' && $dfactor == 'eval4' && $efactor == 'eval5' && $ffactor == 'eval6' && $gfactor == 'eval7' && $hfactor == 'eval8' && $ifactor == 'eval9' && $jfactor == 'eval10') { // Тело блока if //... //... }
Ну вот, совсем другое дело! Условья как бы выстроены в удобочитаемый список. Человек, читающий код, не пропустит ни одного условья.
Рекомендую начинающим программистам выработать свой стиль кодирования, который будет легкочитаемым для Вас. И я уверен, что и другие его без проблем прочтут.