Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-09-02

PEP 8, Consistency

Изучаем PEP 8 по частям. Часть 2, A Foolish Consistency is the Hobgoblin of Little Minds.
Тут говорится о том, что:

Бессмысленная последовательность (постоянство) это проклятие недалеких умов.

Идея в том, что код читают гораздо чаще чем пишут. Смысл PEP 8 и заключается в том, чтобы повысить читабельность кода.

Руководство это — про соответствие. Соответствие вашего кода руководству — это важно. Согласованность кода внутри вашего проекта — еще важнее. Согласованность внутри модуля или функции — наиболее важно.

И самое важное: знайте, когда нужно противоречить. Иногда руководство просто не применимо. Когда сомневаетесь, используйте свой здравый смысл. Посмотрите на примеры и решите, что выглядит лучше (для читаемости кода). Спрашивайте!

В частности: не ломайте обратную совместимость только для соответствия PEP 8!

Еще хорошие причины игнорировать отдельные правила:
1. Когда применение правила делает код менее читабельным, даже для того, кто привык читать код, оформленный по PEP 8.
2. Для поддержки согласованности с окружающим кодом, хотя это возможность почистить код.
3. Когда «неправильный» код был написал до появления этих правил и нет других причин переделывать его.
4. Когда код должен оставаться совместимым с старыми версиями Python, которые не поддерживают фичи, применяемые в руководстве.


В целом, руководство дает правила, призванные повысить читаемость кода. Если применение правил читаемость кода не повышает, или портит работу проекта — нахер такие правила.
Намекаю: даже соблюдая все правила этикета можно разосраться с окружающими. А можно прекрасно ладить с людьми, ничего не зная о наличии этикета.




original post http://vasnake.blogspot.com/2014/09/pep-8-consistency.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)