14 февр. 2016 г.

Спорные моменты PEP8

Наверное больше всего споров в pep8 вызывает история с максимальной длинной строки. 79 символов - маловато для современного редактора и монитора. Альтернативный довод про структурированные мысли и читаемость, которая автоматически повышается у людей пытающихся ограничить строку 79 символами, лично я считаю не необходимым условием. Достаточным, возможно.
По статистике пакета для проверки pep8 следующее по популярности не соблюдаемое правило -  количество пустых строк (н-р определение класса или первое определение в модуле).
Исключения кодов E301, E302 и E501 встречаются в большинстве виденных мной выступлений на конференциях, в которых упоминался пакет для проверки pep8.

А какие моменты pep8 вы считаете устаревшими / надуманными / не нужными?

7 комментариев:

Ivan Nikolaevich комментирует...

Цитата из pep8, насколько я понимаю там вполне допускается длина строки в 100 символов, а сколько тебе надо ?
https://www.python.org/dev/peps/pep-0008/#maximum-line-length
Some teams strongly prefer a longer line length. For code maintained exclusively or primarily by a team that can reach agreement on this issue, it is okay to increase the nominal line length from 80 to 100 characters (effectively increasing the maximum length to 99 characters), provided that comments and docstrings are still wrapped at 72 characters.

Ivan Markeyev комментирует...

На экране 1280 точек шириной (очень популярный размер судя по w3c стате) вот так выглядит мой IDE https://yadi.sk/i/jsPpTL7Pooyv6 - 150 символов комфортно ложатся в строку, но рисочка стоит на 120 символах (есть еще и такое негласное соглашение сверху pep8).
Меня этот вопрос интересует этнографически. Пересматривать стандарты я не призываю.

Ivan Markeyev комментирует...

Ссылка из моего коммента https://yadi.sk/i/jsPpTL7Pooyv6.

Ivan Nikolaevich комментирует...

Я вот работаю с разрешением в 1920*1080, примерно вот так в данном случае 80 символов вполне норм вписываются, хотя наверное и 100 символов вписались бы. Вот с 3х колоночными мерджтулами всё сложнее...

Безусловно здесь наиболее важным являются внутренние договорённости в команде разработчиков.
Ну и в либах python не везде соблюдаются эти 80 символов =) что собственно видно по скрину.

Дмитрий Власов комментирует...

Мои IDE на 1920*1080 мониторе дает 203 символа в ряд, или 101 при сплите пополам.
ИМХО, ограничение в 80 символов нужно и правильно, хотя и не должно являться догмой. Например, в ситуации, когда нужное значения запрятано за цепочкой атрибутов.

value = my_strange_object.some_another_object.custom_name_for_first_item.convert_to_unicode_string()

https://yadi.sk/i/BYIIhzb3or4Ha

А что вы думаете насчет переноса через "\"?

value = my_strange_object.some_another_object.custom_name_for_first_item.\
convert_to_unicode_string()

Andor комментирует...

> А что вы думаете насчет переноса через "\"?

А что вы думаете насчёт переноса через "."?
Например:

some_object
.value1
.second_value
.some_random_method()
.method_of_returing_object()

Andor комментирует...

По теме: в моём 2560х1440 27" мониторе окошко редактора, разделённое пополам. Каждая половина по 138 символов. И есть нормальные переносы строк, чтобы можно было вполне комфортно работать со строками, не влазящими в ширину экрана.