о хитром коде (программистское)
May. 21st, 2008 07:49 pmИнтересная блог-запись, подытоживающая фиаско с ssh-ключами в Дебиан.
Кроме того, что там подробно все объясняется, есть еще список советов разработчикам. Из них самый важный, по-моему, и тот, который на практике чаще всего игнорируют --
Don't write clever code.
Год или два назад у меня была подробная запись о том, что я не вполне уверен, что сейчас я лучший программист, чем был, скажем, 10 или 13 лет назад. Не уверен в том, что вообще есть накопление программистского мастерства и умения. Но вот это правило - пример чего-то, что я не знал и не понимал как следует десять и даже пять лет назад, по-моему. Если есть что-то, что я усвоил за последние несколько лет в своей профессии и что можно назвать фундаментально важным, то это оно - последовательное и принципиальное понимание и использование этого правила.
Кроме того, что там подробно все объясняется, есть еще список советов разработчикам. Из них самый важный, по-моему, и тот, который на практике чаще всего игнорируют --
Don't write clever code.
Год или два назад у меня была подробная запись о том, что я не вполне уверен, что сейчас я лучший программист, чем был, скажем, 10 или 13 лет назад. Не уверен в том, что вообще есть накопление программистского мастерства и умения. Но вот это правило - пример чего-то, что я не знал и не понимал как следует десять и даже пять лет назад, по-моему. Если есть что-то, что я усвоил за последние несколько лет в своей профессии и что можно назвать фундаментально важным, то это оно - последовательное и принципиальное понимание и использование этого правила.
no subject
Date: 2008-05-21 10:25 pm (UTC)Есть очевидная проблема с Debian - уровень maintainers очень разный и часто, прямо скажем, весьма низкий. Ну не самое интересное занятие-то перепаковывать чужой софт, там обычно молодые сисадмины с избытком свободного времени
Maintainer полез копаться в криптографии не понимая что к чему и сломал. Никто больше этого не сделал, потому что при мало-мальски существующем контроле этот код не достался бы человеку с такой квалификацией и изменение кода "чтобы заткнуть valgrind" никогда никто бы не одобрил
В принципе, это частая проблема с open source который именно пишется толпой, а не строго контролируется, как линуксный кернел, и не пишется на самом деле какой-то конторой с существующим development process
А код нормальный, надо как раз стараться писать clever code если выходит, тупой и так есть кому написать
no subject
Date: 2008-05-21 11:16 pm (UTC)no subject
Date: 2008-05-22 12:22 am (UTC)no subject
Date: 2008-05-22 05:21 am (UTC)Как я понимаю, дебиановец ошибочно решил, что где-то в другом месте зовется нормальный RAND_add() с нормальным источником энтропии.
no subject
Date: 2008-05-22 11:58 am (UTC)Но это все равно moot point, потому что дебиановец не смог понять не почему данные не инициализируют, а как работает RAND_add и убрал из нее главную строчку - где энтропию в дайджест добавляют.
no subject
Date: 2008-05-22 05:17 am (UTC)То есть хороши, конечно, оба - и openssl разработчик, и дебиановский майнтайнер. Но майнтайнера хотя бы можно по человечески понять - я бы тоже не ожидал обнаружить в коде уважаемой библиотеки такую фигню, а если бы обнаружил, то тоже решил бы, что это какая-то очень эзотерическая вещь для какого-нибудь очень эзотерического сочетания ОС, компилятора и требований, которую можно без большого вреда задизаблить. А со стороны OpenSSL это было чистое и ничем не оправдываемое вредительство.
no subject
Date: 2008-05-24 08:08 am (UTC)