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

2012-08-14

Бич нашего времени

Про говнокод и прочее

Возможно я просто старый мудак ворчун, дык я считаю, что принцип из жизни "будь готов отвечать за последствия любого своего поступка" вполне применим и к философии создания программ. Фэстфуд фэстфудом, но всегда надо думать о том, что строки кода, которые пишешь сегодня, завтра кому-то придется сопровождать. И с очень большой вероятностью этим кем-то будешь ты сам.

Многие считают, что программирование это искусство алгоритмов. Я, в свете вышеизложенного, считаю, что это, в первую очередь, искусство декомпозиции. Разделяй и властвуй -- это корневой принцип создания программ, открытый еще кодерами Древнего Рима. Дело в том, что человеческий мозг крайне ограничен в своих возможностях. Он отлично работает над решением задач, состоящих из пары десятков неизвестных. Когда надо проанализировать что-то, состоящее из тысяч элементов -- он начинает дымиться и буксовать.
...

Правильная декомпозиция -- главный фактор успешного сопровождения программы в течении многих лет. Даже если сопровождающий программист -- автор кода, это еще не значит, что он в деталях помнит все нюансы реализации, а следовательно, для изменения кода ему сначала надо понять уже существующий код. Если код организован грамотно, это займет у него не так много времени. Иначе -- беда, беда.


Приятно почитать.

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

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

Архив блога

Ярлыки

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)