[Devel] Кодинг-стайл для Python
Devaev Maxim
mdevaev на etersoft.ru
Ср Сен 29 17:34:33 MSD 2010
On Wed, 29 Sep 2010 17:12:50 +0400, Evgeny Sinelnikov <sin на etersoft.ru>
wrote:
> Пример проблемы, которые я вижу с табами с ходу:
> - скопировал исходник с jabber - могут возникнуть проблемы.
> - запустил на редаторе, который заполняет проблеми - проблема. А
> поскольку это стиль, по умолчанию, в большинстве редакторов так и
> будет. И придётся нам всё время это дело перенастраивать.
> - скопировал чужой код - проблема
Чужой код в любом случае приходится переписывать, чтобы подставить, как
минимум, свои переменные. Почему тогда не использовать табы? Большинство
редакторов заполняют отступы теми символами, которые были ранее
использованы в документе, поэтому не виу особой проблемы в этом случае.
Jabber, кстати, сохраняет табуляцию. Возможно отображение пробелами -
особенность psi.
> Ну, к чему это упёртость? Да, есть проблема с разным отображением -
> кому-то нравится 3 пробела на таб, а кому-то - 6. Но это не повод,
> чтобы вносить это в стиль кодирования.
Это, как раз таки и повод. Потому что если существует специальный символ
для создания отступов, который каждый (!) может настроить по своему
усмотрению так, чтобы было удобнее читать и писать, то нужно использовать
его, а не правило, которое было введено исходя из древних редакторов на
момент первого релиза. Кодинг-стайл в первую очередь существует для того,
чтобы обеспечить:
1) Единообразность кода;
2) Удобство написания и восприятия.
Исходя из этих целей мы получаем использование однотипных синтаксических
конструкций (чтобы каждый раз не изобратать велосипед), переменные,
выполняющие одну и ту же роль, которые в тысяче файлов имеют одинаковое
имя. И, что самое главное, _удобство_ написания и чтения. При копипасте
можно исправить несколько пробелов табами, можно даже сделать
:%s/\s\{4}/\t/g , чтобы не менять код вручную. Но уподобляться перлу и
писать код write-only для тех, кому неудобно читать пробелы, имхо,
неправильно.
Заметь, я не предлагаю переделывать все существующие проекты на табы. Я
даже не спорю с пробелами. Мои слова сводятся к такому порядку:
1) Если мы разрабатываем чей-то проект, то используем его кодинг-стайл.
Например, вайн. Естественно, там нужно использовать пробелы, поскольку они
приняты в мейнстриме.
2) При создании нового проекта использование пробелов или табов
определяется первым коммитером и главным разработчиком, остальные
подстраиваются под него.
> В этом даже проблема видется мне, когда у разных людей с разными
> настройками числа пробелов на таб код видется по-разному, поскольку и
> восприниматься он тоже будет по-разному.
Тогда почему не использовать удобный и правильный способ, а пользоваться
тем, который предлагается фактическим стандартом, созданным двадцать лет
назад?
> PS: у меня ещё есть замечания по стилю кодирования, предложенному
> Максимом. Думаю в выходные я найду время разобрать его документ и
> привести свои замечения.
Это нужно, да.
Подробная информация о списке рассылки Devel