@Mimuss

Код с комментариями — избыточность?

Впервые устроился на работу. Компания имеет многолетний опыт и таких же опытных сотрудников. Много проектов на разных языках как новых, так и старых. Меня посадили за пару таких проектов, дали задания к нему и провели небольшой экскурс по каждому из них(для чего он нужен и что делает). Как только начал выполнять это самое задание, столкнулся с препятствием - кодом без комментариев. Нет, он понятен и лаконичен, но, скажем, чтобы понять зачем нужен тот или иной класс, нужно посмотреть его методы, свойства. наследование его классов (это python - тут множественное наследование имеет место быть) запомнить и проанализировать и спустя минут 5-10 только понять, для чего нужен этот класс. Хотя порою это совсем необязательно, порою нужно просто знать абстрактно об этом классе - для чего служит, зачем нужен и что делает. Все, больше ничего не надо. Дальше хлеще. Проект - фреймворк с кучей миксинов и классов, нужно уметь ими управлять и правильно употреблять. И вот представьте, что таких классов очень много и на осознание каждого из них уходит порядка 5-10 минут, плюсом идут скупые человеческие возможности, то есть запомнить все это нереально. Спустя уже 40 минут такого рысканья быстро утомляешься и работоспособность падает, соответсвенно производительно никакая.
Есть вариант - спрашивать у коллег, но, во-первых, вопросов много и отвлекать не хочется, а во-вторых, не хочется показаться уж совсем тупым(иногда мне так и кажется, порою на осознание какой то детали у меня уходит час, ища в иерархии классов ответ на вопрос, а тут приходит более опытный программист объясняет все это за 15 секунд...)
Так что же это? Недостаток опыта моего? Комментирование кода неактуально?
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 4
sim3x
@sim3x
Нет, ето корпоративный говнокод

Коментарии должны содержать актуальную информацию почему етот код был написан
Ответ написан
Комментирование актуально, когда кусок кода например обходит какой-нибудь баг фреймворка или среды исполнения. Желательно со ссылкой на тикет.

Если имя класса, метода или переменной ничего не говорит о ее назначении, то проблема явно не в отсутствии комментариев.

Мне приходилось выпиливать небольшой самописный класс, реализующий сигналы. Менял его на Observable. Комментарии никак не помогли, т.к. невозможно убедиться в их актуальности. Тут только тесты помогут.
Ответ написан
Комментировать
lxsmkv
@lxsmkv
Test automation engineer
Это просто кровавый энтерпрайз. У нас тоже так. У нас разрабы сразу говорят: "Не пытайся понять все это сразу, тебе понадобится минимум полгода чтобы понять и освоить устройство приложения и его частей [на таком уровне, чтобы работать автономно]."
Вам нужно больше задавать вопосов коллегам. Вы не успеете умереть от стыда - вопросы кончатся быстрее:)
Как молвит японская поговорка: "Спросить - позор на один раз. Не знать - позор на всю жизнь".
У нас например один из архитекторов добровольно сделал курс обзорных презентаций (3 раза по часу) по архитектуре приложения и это здорово помогло. Спросите тимлида, может он подговорит какого-нибудь опытного программиста или архитектора на такое доброе дело. Все понимают что новичкам надо помогать. Но сами по себе они не бросят все, чтобы заполнять ваши пробелы. Но все без проблем поделятся опытом. Это же для любого человека приятно - показать свои знания. Так что вы не бойтесь, они только на вид такие неприступные. Сядьте рядом с каким нибудь особенно разговорчивым и веселым коллегой. Он вам будет потихоньку все обьяснять. Посмотрите как он анализирует баги, и задавайте вопросы, это много дает. Никто не ожидает что от вас на первых порах будет много пользы. Так что не переживайте. Но все оценят если вы будете быстро впитывать полученные знания. У нас некоторые новички за 3 месяца освоились а некоторые и за год не в зуб коленом.
Ответ написан
Комментировать
@Yan-s
Если код не понятен на таком уровне, то проблема с именованием и отсутствием документации, а не в отсутствии комментариев.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы