recoder: (Default)
[personal profile] recoder

Пришло время дать Вторую Программерскую Клятву. (Первая Клятва была больше года назад…)

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

В общем-то, так и получалось, что когда кто-то из коллег осознавал это ’основное направление’, он шёл предусмотренным путём и проблем у них не возникало. Но! Оказалось, что большинство коллег просто не чувствуют — когда они идут верным путём, а когда нет. Чувство увеличения энтропии в коде им чуждо. И для них нет разницы между ’расширить функциональность’ и ’захачить сегодняшнюю фичу’.

В результате за каждую мною оставленную зацепку сейчас приходится расплачиваться. Ни один запасной механизм не остался без злоупотреблений. И за каждым таким хаком я чувствую свою вину; в том что оставил в коде возможность что-то сделать неправильно. А по Закону Мерфи — если какая-нибудь неприятность может случится, она случится. И случается до сих пор.

Итак — отныне я торжественно клянусь писать компоненты максимально строго. Никогда не оставлять никаких дырок на будущее. Чтобы у любого программера был только один единственный путь — сделать всё правильно. (А ещё лучше было бы писать так, чтобы языковые конструкции языка не позволяли легко перехачить ограничения: вроде удаления const/final).

И да будет так. Отныне и пока у меня не отнимутся руки от карпального туннельного синдрома.

coding
work

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 11:32 am
Powered by Dreamwidth Studios