Здравствуйте, mrTwister, Вы писали:
T>что код должен быть написан таким образом, чтобы необходимости в коментариях вообще не возникало.
Это утверждение содержит пресуппозицию «комментарии относятся к написанному коду».
Пресуппозиция, очевидно, неверна — комментарии могут относиться к ненаписанному коду. Например, объяснять, почему вместо реализации Foo интерфейса IBar не используются реализации Baz и Qux, к каким труднопредсказуемым последствиям приведёт их использование.
А раз пресуппозиция ложна, то исходное утверждение не ложно и не истинно — оно неуместно.
Здравствуйте, Qbit86, Вы писали:
Q>Это утверждение содержит пресуппозицию
Блеснул!
Q>«комментарии относятся к написанному коду». Пресуппозиция, очевидно, неверна — комментарии могут относиться к ненаписанному коду. Например, объяснять, почему вместо реализации Foo интерфейса IBar не используются реализации Baz и Qux, к каким труднопредсказуемым последствиям приведёт их использование.
Твое сообщение содержит пресуппозицию, что моё сообщение содержит пресуппозицию, что «комментарии относятся к написанному коду». Пресуппозиция, очевидно, неверна — моё сообщение не содержит пресуппозиции, что «комментарии относятся к написанному коду».
А раз пресуппозиция ложна, то исходное утверждение не ложно и не истинно — оно неуместно.
Здравствуйте, mrTwister, Вы писали:
T>Твое сообщение содержит пресуппозицию, что моё сообщение содержит пресуппозицию, что «комментарии относятся к написанному коду». Пресуппозиция, очевидно, неверна — моё сообщение не содержит пресуппозиции, что «комментарии относятся к написанному коду».
Я так понял, что процитированная фраза «код должен быть написан таким образом, чтобы необходимости в коментариях вообще не возникало» относится не к тебе, а является аргументом неких воображаемых оппонентов — противников комментариев. Ты именно это пытался прояснить столь обильным оверURLингом и «иронией»?
Подразумеваемая посылка неверна. Так как не существует языков, в которых есть синтаксические инструкции явного (explicit) НЕиспользования функций, классов, алгоритмов, методов, подходов и стратегий, то без комментариев не обойтись. Просто из личного опыта: несколько часов рефакторил чужой код, пытаясь использовать более прогрессивную стратегию. И выяснилось, что: а) стратегия изначально была обречена по причинам, которые стали понятны лишь по окончании эксперимента; б) предшественник тоже рассматривал этот вариант, тоже отбросил его после продолжительных экспериментов, но не отразил свои результаты в комментарии.
Здравствуйте, Qbit86, Вы писали:
Q>Я так понял, что процитированная фраза «код должен быть написан таким образом, чтобы необходимости в коментариях вообще не возникало» относится не к тебе, а является аргументом неких воображаемых оппонентов — противников комментариев. Ты именно это пытался прояснить столь обильным оверURLингом и «иронией»?
Ну в общем — да.
Q>Подразумеваемая посылка неверна. Так как не существует языков, в которых есть синтаксические инструкции явного (explicit) НЕиспользования функций, классов, алгоритмов, методов, подходов и стратегий, то без комментариев не обойтись. Просто из личного опыта: несколько часов рефакторил чужой код, пытаясь использовать более прогрессивную стратегию. И выяснилось, что: а) стратегия изначально была обречена по причинам, которые стали понятны лишь по окончании эксперимента; б) предшественник тоже рассматривал этот вариант, тоже отбросил его после продолжительных экспериментов, но не отразил свои результаты в комментарии.
Я абсолютно согласен, тут нет никакого противоречия с исходным постом. То, что ты описываешь, является частным случаем этого (цитата из исходного поста):
Эта информация обычно содержится только в голове у программиста в тот момент, когда он пишет данный код. Это его контекст. Часто для формирования такого контекста надо учитывать множество разрозненных деталей всей системы, особенности того, как они друг с другом взаиможействуют, исторические аспектры разработки системы, особенности работы некоторых, в том числе, сторонних и унаследованных компонент, политические вопросы и так далее.
Здравствуйте, mrTwister, Вы писали:
T>Я абсолютно согласен, тут нет никакого противоречия с исходным постом.
Так я и не искал противоречие, я выражал согласие с исходным постом :)
Скорее, хотел сказать, что полное избавление кода от комментариев без потери информации не просто трудно на практике, а недостижимо принципиально. В такой формулировке для подтверждения позиции не нужно обильное аргументирование и разжёвывание доводов — достаточно одного контрпримера.
Здравствуйте, Qbit86, Вы писали:
Q>Так я и не искал противоречие, я выражал согласие с исходным постом
Ок, я значит неправильно понял
Q>Скорее, хотел сказать, что полное избавление кода от комментариев без потери информации не просто трудно на практике, а недостижимо принципиально. В такой формулировке для подтверждения позиции не нужно обильное аргументирование и разжёвывание доводов — достаточно одного контрпримера.
К сожалению, оппоненты, доказывающие обратное, являются не виртуальными, а вполне реальными
И потом, даже если эти оппоненты признают необходимость комментариев, надо выработать четкие критерии, где именно комментарии необходимы. Хотя бы для себя. И для проведения code-review, чтобы видеть, где в чужом коде не хватает комментария, а где достаточно рефакторинга.