[Devel] Кодинг-стайл для Python

Devaev Maxim mdevaev на etersoft.ru
Ср Сен 29 18:10:10 MSD 2010


> Единообразность кода по отношению к чему? По отношению к трём-шести
> проектам, которые будут у нас или по отношению тысячам других?
Единообразность кода, который пишут разработчики в рамках одного проекта.

> Это субъектвное качество. Между решением объективным проблем и
> предоставлением субъективных удобств, мы выбираем первое.
Раскин от этих слов в гробу переворачивается, серьезно. Из-за того, что
люди решали объективные проблемы, мы имеем чудовищное время загрузки
компьютера (как минимум, биоса), объективно-ужасные в плане юзабилити
графические интерфейсы и откровенно неудобные, но функциональные, сотовые
телефоны. Это как пример. Суть моих слов сводится к тому, чтобы выбирать
_правильное_ решение, которое является квинтэссенцией технически верного и
удобного решения.

> Потому, что так сложилось. Потому, что так проще. Потому, что табы -
> это не "удобный и правильный способ".  Единственное зачем они нужны,
> это чтобы ты мог поставить себе шесть пробелов на отступ, игнорируя
> все потенциальные проблемы с переносом кода, а также необходимостью
> перенастраивать стандартные настройки редактора для правки кода в
> общепринятом виде.
Сложилась, да, но проще кому? Разработчику? Помилуй, разработчику как раз
проще, когда он получает максимум возможностей для настройки под себя. Ты
же не будешь настаивать на тотальном использовании в компании mcedit с
синим фоном, потому что N людей у нас используют kate, как минимум двое vim
и несколько еще какие-то IDE.

Перенос кодя - понятие относительное. Переносить код куда? Если брать
наработки какого-то другого проекта, то не факт, что там будут
использоваться волшебные четыре пробела, хотя вероятность повышается. При
объединении программной инфраструктуры 90% исходного кода остается
неизменной, потому нет разницы, что используется в качестве отступов в
разных модулях. А при мерже одного модуля программист в любом случае
просматривает код и ему ничего не мешает заменить пробелы на табы. Хоть
три, хоть десять.

> Ещё раз. Преимущества возможности поставить шесть пробелов на отступ,
> вместо четырёх, менее приоритетный вариант, чем:
>  - потенциальные проблемы с переносом кода;
Про перенос я написал выше.

>  - необходимостью перенастраивать стандартные настройки редактора.
Да, ввести команду :set expandtab это долго. Стандартные настройки чуть ли
не во всех редакторах можно задавать шаблонами. Большинство людей
использует таб для установки четырех пробелов. Я предлагаю оставить это как
есть, но выставлять не четыре пробела, а табуляцию, вид которой можно
настроить, в отличие от.

> А также необходимостью рассказывать всем, что все общепринятые
> стандарты "не удобные и не правильные". У нас и так хватает
> маргинальных проблем. Изьбавьте меня от этой, пожалуйста.
Мне тоже не нравится эта полемика, потому я и предлагаю оставить
использование табов/пробелов на совести главразработчика. За сим и написал
в стандарте.

Вообще, замечательный (без кавычек, это действительно так) neatx,
написанный на питоне вообще использует два пробела. Эти люди почему-то не
стали париться на тему использования четырех пробелов, а стали использовать
гугловый кодинг стайл. И они не столкнулись ни с переносом, ни с
копипастом. Обе проблемы скорее надуманные, чем реальные.


Подробная информация о списке рассылки Devel