Здравствуйте.
Надеюсь несколько предостережений от меня не будут восприняты, как
попытка разжигания межъязыковой розни :)
29.12.2015 2:50, Menelion Elensu'le: пишет:
> Единственное, что лично мне не очень удобно - это отступы пробелами,
> потому что их часто делают множественными, например, 4, 8, 12, 16
> пробелов и т.д. Это заставляет при невизуальном доступе делать в мозгу
> дополнительную операцию: 28 пробелов - ага, так, это седьмой уровень.
Согласитесь, что когда программист не делает этих отступов в других
языках, то легче не становится. В частности, если принять за основу ваш
пример, то в конце блока будет семь закрывающих скобок, Которые не то,
чтобы гарантированно добавляют понимания где какой уровень вложенности
закрывается и куда помещать следующую за вложенным блоком инструкцию.
Мне в таких случаях часто приходиться перемещаться по всему блоку
вложенных инструкций и делать это много раз, чтобы убедиться, что все
скобки на местах. Это не доказательство божественности python, но коль
уж мы делимся опытом, то пусть и мой опыт сослужит кому-нибудь службу.
Так же в священных книгах по python пишут, что если ваш код выглядит
слишком вложенным, т.е. уровень вложенности переваливает за четыре, то
может быть правильнее попытаться вынести часть кода в отдельную
подпрограмму.
Конечно - это голая теория и все зависит от решаемой задачи и вообще от
множества независящих от программиста факторов, но опять же личный опыт
говорит, что критический подход к оценке написанного кода скорее
полезен, чем наоборот.
> Операция хоть и маленькая, но при дебаггинге чувствительная. Поэтому я
> таки советую делать отступ табами (повторюсь, это не все любят, это
> лично моё мнение).
И в пику этому мнению существует другое. Оно основано на том, что табы
могут вести себя непредсказуемо в различных ситуациях, а пробелы всегда
остаются пробелами. Принимая решение использовать табы в качестве
отступов не лишним будет четко понимать где и каким образом будет
использован ваш код. Если это сугубо личный проект и не видать ему
правок от рук посторонних программистов, то смело вырабатывайте удобные
для вас правила и все свои программы пишите в соответствии с этими
правилами. Если код является частью другого проекта, узнайте какие там
правила и работайте по правилам остальной команды или докажите, что ваши
правила лучше и пусть все пользуются ими. Если код в перспективе
планируется выкладывать в общий доступ, то лучше заранее разрабатывать
правила, которые будут максимально приближены к универсализму. Ваш код
должен работать на любой системе и в любой IDE или редакторе. Все
остальное приложится.
Александр Северин.