программистское: о красивом коде
Aug. 3rd, 2007 01:08 pmПрочитайте вот это, коллеги.
Там - Горькая Правда.
(но стоит прочитать полностью)
Там - Горькая Правда.
A lesson I have learned the hard way is that we aren’t smart enough. Even the most brilliant programmers routinely make stupid mistakes. Not just typos, but basic design errors that back the code into a corner, and in retrospect should have been obvious. The human mind can not grasp the complexity of a moderately sized program, much less the monster systems we build today. This is a bitter pill to swallow, because programming attracts and rewards the intelligent, and its culture encourages intellectual arrogance.
(но стоит прочитать полностью)
no subject
Date: 2007-08-03 11:43 am (UTC)Потом выясняется, что в похожих ситуациях мы вынуждены писать одно и то же. Почти copy-paste (а иногда и не "почти"). Досадно, но оказывается, что таких ситуаций примерно миллион.
Чтобы писать такие места быстрее и с меньшим числом опечаток, мы объединяем часто встречающиеся последовательности и выносим общую функциональность в отдельные сущности (функции, классы, макросы, шаблоны, generic'и, или даже тьфу-тьфу не дай бог аспекты).
И тут выясняется, что каждый такой конструкт первого порядка хочется потом fine-тюнить. Потому что вот в этом интерфейсе теперь надо показывать пункты не выпадающим списком, а плоским. А вот эта надпись должна быть полупрозрачной. Что значит "нельзя"? Какая-такая "архитектура"?
Появляется некоторый язык настройки этих сущностей второго рода. Аггрегация вместо наследования, декораторы, общие интерфейсы вместо общего предка.
Тут в проект приходит новый программист, и...