Как писать чистый код
Можно, наверное, сказать, что программиста от человека, который знает несколько алгоритмов и язык программирования, отличает не так уж много: привычка следовать одному стилю кодирования, привычка хранить код в репозитории, навык отлаживания программы по частям, привычка оценивать программные конструкции с точки зрения безопасности и эффективности и приверженность к одной из нескольких программистских религий.
В религиях, конечно, ничего хорошего нет (хотя сгореть должны синим пламенем все приверженцы закрытого кода, платы за копирование данных и ограничение доступа безобидного хакера к его собственному компьютеру). Вопросы эффективности и безопасности на самом деле очень тонкие (есть такое популярное утверждение под названием "first rule of optimization": don't do it) но, в конце концов, им можно научиться методом проб и ошибок. В отлаживании программы по частям ничего сложного нету и навык появится сам собой, как только вам придётся писать что-то большое, а до тех пор он и не понадобится. Поэтому в этом курсе мы ограничиваемся двумя простыми, но полезными вещами: стилем кодирования и работой с репозиторием. В этом тексте – только стилем кодирования.
Хороший стиль кодирования складывается из нескольких составляющих:
- стандарт оформления одинаковых выражений (англ.: code formatting rules, code formatting style, coding guidelines)
- соглашения по именованию разных категорий всего, что именуется (англ.: naming conventions)
- взвешенная и удобная самодокументация (в первую очередь) и комментарии к коду (во вторую)
- отсутствие мусора в коде
Все эти вещи кажутся направленными исключительно на одну цель: чтобы глаз радовался, когда смотрит на код. В сущности, так оно и есть, но важно понимать и то, что когда глаз радуется, он гораздо быстрее выделяет то, что важно.
Сравните:
1 def faibosuu_en_wo_waridasu( en):
2 """
3
4 ファイボウナチ数を割り出す """
5 # イニットをする
6 a=1;tsugi = 1
7 for ITERATOR in \
8 range (en ):
9 accumulator_VARiable = a;a=a+tsugi;tsugi =a + accumulator_VARiable
10 # ここに数を割り出しただろう
11 # リタノをしましょうかなあ
12 # pythonは素晴らしい!
13 return tsugi
Оформление кода
....