Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Почему вы не комментируете код?


Автор: Royan 2.4.2009, 14:45
В java созданы все условия для того чтобы писать красивые связанные друг с другом комментарии: есть форматирование текста, возможность ссылаться на любой класс и метод, даже наследовать комментарии от родительских классов и интерфейсов и в конце концов тул, с помощью которого вы можете сгенерировать документацию к вашему коду!

У меня вопрос исключительно к тем участникам форума, которые не комментируют свой код, почему вы это делаете? Только честно!

Принимаются все ответы, включая я не делаю этого только на работе, потому что в нашем проекте и так нет комментариев или я не пишу комментарии в курсовых и лабах, потому что преподу все равно т.п.

Автор: barin_Student 2.4.2009, 14:56
Потому что,если я пишу по технологии которую я в момент написания -изучаю, я раз 5 переписываю код, и коментарить зная что счас будет сntr+a+del, нехоцца.. А то что знаешь уже на 5+, просто рука не поднимаецца, и зря .. когда смотришь то что было написанно хотябы месяца три-4 назад, уже начинаются вопросы .. а здесь я что хотел сделать.. Все ИМХО smile 

Автор: Vasay 2.4.2009, 15:05
Комментарии я пишу. но стараюсь, что бы их было меньше.

Код должен легко читаться и без комментариев 

Понятные названия пакетов
Понятные названия классов
Понятные названия переменных
Понятные названия методов.

Автор: Samotnik 2.4.2009, 15:50
Пишу. 
Раньше не писал, потому что это было не нужно.  
На работе всегда требуют, поэтому мое желание/нежелание не влияет.  Хотя писать комменты - это круто !  smile 

Автор: Skynin 2.4.2009, 16:18
Цитата

Код должен легко читаться и без комментариев 

Читаться то он будет легко, а вот что делает и КАК, какой алгоритм реализует эта связка с надцати классов, у каждого из которых по надцать методов - названия классов и методов не подскажут.

Через полгода другого проекта Вы сами не вспомните детали реализации собственного кода, почему здесь я сделал так, а вот здесь такую проверку, а там - другую.

Автор: Vasay 2.4.2009, 16:38
Skynin, 

Цитата

Читаться то он будет легко, а вот что делает и КАК, какой алгоритм реализует эта связка с надцати классов, у каждого из которых по надцать методов - названия классов и методов не подскажут.


Вот как раз тут четкие названия пакетов, классов, методов  неплохо подскажут.  Хотя, я не говорю, что это всегда верно. Иногда очень даже нужно написать JavaDoc 

Просто я имел ввиду, что ИМХО не стоит комментировать ради того чтобы был комментарий.

Например, я не думаю, что метод подобный этому нуждается в комментариях
Код


Customer  getCustomerById (int customerId) {
...
}



Цитата

Через полгода другого проекта Вы сами не вспомните детали реализации собственного кода, почему здесь я сделал так, а вот здесь такую проверку, а там - другую.


Вот когда реализуется что-то достаточно сложное то комментарии пишу, причем пишутся они сами собой. Просто как пояснения что и зачем.

Автор: powerOn 2.4.2009, 16:55
Есть такая методология - XP. Она предполагает меньше доки - больше кода, который должен быть "самодокументированным", т.е. написан так, что и без документации понятен. Кроме того, XP практикует парное программирование, поэтому знания о том что было написано быстро растекаются по команде. Так что доки не особо-то и нужны, да и не читает их никто.  smile 

Автор: Skynin 2.4.2009, 18:01
Цитата

Есть такая методология - XP. Она предполагает меньше доки - больше кода, который должен быть "самодокументированным", т.е. написан так, что и без документации понятен. Кроме того, XP практикует парное программирование, поэтому знания о том что было написано быстро растекаются по команде.

Есть такая "модная" идеология.

Вопрос только - а насколько она распространена. Например - я так и не слышал чтобы у кого-то из знакомых программистов работали попарно. Как и многого другого описанного у Бека.

А от тех, кого считаю более опытными, слышал только фыркание, "ах эти разговоры о ХР... ну пусть говорят, не обращай внимание"

Автор: jManiak 2.4.2009, 18:03
Не пишу по причине указанной barin_Student'ом. Но, когда приходит время вернуться к коду, само собой уже непонятному, разбираюсь в нем и вот тут уже пишу комментарии.  smile 

Автор: powerOn 2.4.2009, 20:01
Цитата(Skynin @  2.4.2009,  19:01 Найти цитируемый пост)
Есть такая "модная" идеология.

Вопрос только - а насколько она распространена. Например - я так и не слышал чтобы у кого-то из знакомых программистов работали попарно.


Цитата(Skynin @  2.4.2009,  19:01 Найти цитируемый пост)
А от тех, кого считаю более опытными, слышал только фыркание, "ах эти разговоры о ХР... ну пусть говорят, не обращай внимание" 


Это оффтоп уже конечно smile
Я работал в 3 разных конторах и везде проекты велись по XP/Scrum. В той, что сейчас работаю, XP это главный процесс - все проекты по нему ведутся. Парное программирование, test driven development, continuous integration, всякие принципы типа YAGNI или KISS, и д.р. - это все обыденная реальность для нас. smile 


Автор: Kangaroo 2.4.2009, 23:25
Банальная лень  smile 

Автор: AlexeyVorotnikov 3.4.2009, 09:29
Банально из-за нехватки времени. Когда проект горит, уже не до комментариев.

Автор: Rickert 3.4.2009, 10:14
Грамотный синтаксис кода - это уже на половину сам-себе-комментарий.
На работе пишу комментарии к ключевым моментам, домашнии проекты не комментирую, ибо и так всё знаю, потому что писал smile 

Автор: Royan 3.4.2009, 11:09
Samotnik, Ты пишешь
Цитата(Samotnik @  2.4.2009,  12:50 Найти цитируемый пост)
Раньше не писал, потому что это было не нужно. 

Что означает - было не нужно, в чем была причина не нужности (напряжный график работы, лень ...) smile?

Автор: taro 3.4.2009, 11:13
Всегда пишу
"Понятный код" отвечает на вопрос "как", но не отвечает на вопрос "почему". Вспомнить потом, почему тут сделано именно так - очень сложно. По идее, эти нюансы должно покрывать ТЗ, но оно далеко не всегда актуально и далеко не всегда в курсе местных тактических решений. 

Автор: Rickert 3.4.2009, 11:46
Цитата(taro @  3.4.2009,  11:13 Найти цитируемый пост)
По идее, эти нюансы должно покрывать ТЗ, но оно далеко не всегда актуально и далеко не всегда в курсе местных тактических решений. 

И вообще: в 70% разработок отсутствует smile 

Автор: Skynin 3.4.2009, 12:13
...добавлю еще "философско-лингвистическое" замечение:
на каком бы языке программирования не был написан код - это не человеческий язык. Это перевод с человеческого, на язык весьма далекий от человеческого. А даже при переводе с одного чел. языка на другой смыслы могут потеряться. Или измениться. 

Утрировано:
зачем писать комментарии в ассемблерном коде, и так можно прочитать и увидеть исходник на Си.

И разве непонятно что вот этот SELECT c JOIN'ом выбирает дебетовое сальдо, по указанному счету, с проверкой допустимости - а не пассивный ли он?

...

Автор: SoulKeeper 3.4.2009, 12:54
Цитата(Vasay @  2.4.2009,  16:38 Найти цитируемый пост)
Например, я не думаю, что метод подобный этому нуждается в комментариях
Код
    
Customer  getCustomerById (int customerId) {
...
}



Не согласен. Если это метод в DAO классе - то что оно вернет при неверном id?

Допустим я вызываю getCustomerById(-1), естественно кастомера не существует.

Оно вернет null? Или выбросит CustomerNotFoundException(наследованый от RuntimeException). Или выбросит IllegalArgumentException т.к. -1 негативное число?

Такие вещи нужно описывать, а то потом сиди гадай как оно себя поведет.
Если это свой класс - то это еше пол беды, открыть и посмотреть. Но если библиотечный - уже проблема.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)