Утрата иллюзий
Jul. 10th, 2008 05:04 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
На днях прикрепили ко мне интерна (ну, стажера, по-нашему). У нас залежалого материала, где уже много лет конь не валялся, навалом, поэтому я ему и поручила поваляться (к-хм, пардон за непроизвольную и не совсем продуманную аллитерацию).
В общем, говорю, посмотри там, что к чему и где улучшить можно.
Он первым делом почитал код, а вторым -- комменты к нему. И бежит такой довольный, вот, говорит, эврика!: здесь комменты обещают to "Estimate the full covariance matrix", а на самом деле оценивают только диагональ матрицы, то есть, грубо говоря, "variance".
Я посмотрела -- и правда, только значения [i][i] подсчитываются, никаких тебе [i][j]. Ну, думаю, и как же оно все работает? Стала рыть. Оказывается, из всей этой матрицы в программе используется только ее (матрицы) детерминант, а он-то как раз по диагонали и считается. Так что в комментариях пургу пускали, а программу писали по жизни.
Мальчик расстроился, но я ему попыталась как-то объяснить, что это как раз и есть грамотное применение теоретических знаний на практике. Надеюсь, что помогло.
А мораль сей басни такова: не читайте только комментарии к коду -- читайте еще и код. Коммертарии иногда пургу пускают, а иногда просто устаревают. Все как в жизни.
Ну-ка, а когда вы в последний раз обновляли комментарий после того, как обновили код?
Вот признаюсь честно, я лично комментирую только когда пишу изначально. А потом, когда баги чищу, в комменты даже и не заглядываю.
no subject
Date: 2008-07-10 10:08 pm (UTC)Иначе потом сам же и напорешься.
no subject
Date: 2008-07-10 10:30 pm (UTC)А ты оптимистка.
Date: 2008-07-11 12:08 am (UTC)Самая неудобная ситуация когда в систему с какого-то момента вводится новый расчетный механизм с необходимостью сохранения и предыдущего механизма. Тут уж без комментирования и модификации комментариев вовсе никак.
no subject
Date: 2008-07-10 10:23 pm (UTC)А вообще-то грамотные комментарии помогают другим программистам. То, что многие их не пишут, не есть хорошая практика. Так что молодых нужно учить идеалу, тогда хоть что-то будут делать правильно.
no subject
Date: 2008-07-10 10:28 pm (UTC)Да нет, я в теории тоже за комментарии, а на практике -- всегда код читаю. То ли мозг так устроен, что мне он легче дается, то ли просто быстрее, не знаю.
Либо...
Date: 2008-07-11 12:19 am (UTC)В идеале кроме комментирования необходимо еще и документирование кода. Только так можно получить сопровождаемый технологичный проект.
Я помню, что стандартизационный подход к ведению проекта тебе претит.
Re: Либо...
Date: 2008-07-11 12:30 am (UTC)Нет, совсем не претит. Просто ко
дт у нас"научный"ученый, а что это такое, в двух словах не объяснить :))Что же касается объема, то с начала 90-х никто не рискнул все переписать. Отдельные модули обновляются, а так чтоб все -- не-а.
Полное...
Date: 2008-07-11 12:54 am (UTC)Ну и кроме того, препятствием для реинжениринга проекта может быть как раз недостаточная комментированность и документированность. Ибо отдельные места работают, но как - уже никто не знает.
Кстати, я что-то не помню: ваша контора какой-нибудь RAD использует или все на коленке пишется? Вроде мы этот вопрос поднимали, но уж очень давно это было...
Re: Полное...
Date: 2008-07-11 11:57 am (UTC)Это просто.
Date: 2008-07-11 12:57 pm (UTC)no subject
Date: 2008-07-11 05:49 am (UTC)Или матрица диагональна, типа прямое произведение независимых гауссовских процессов? Тогда коммент прав, все недиагональные элементы обнулены - значит "посчитаны" :)
А вообще комменты сильно помогают, даже в собственном коде. :)
no subject
Date: 2008-07-11 11:56 am (UTC)