Участник
Пользователь
- Сообщения
- 1,042
- Реакции
- 206
- Предупреждения
- 1
- Помог
- 6 раз(а)
ЗАЧЕМ НАМ НУЖНЫ КОММЕНТАРИИ?
Комментарий к коду - это одна из важнейших составляющих программирования. "Зачем нам нужны комментарии? Ведь их никто не читает..." Практический так думает каждый новичок. Но почему они так важны в исходном коде? Хорошо написанный комментарий, даст огромное преимущество вам, но и также другим программистам которые будут смотреть ваш исходный код.Что же дает хорошо написанный комментарий?
- Краткое описание кода - Краткий комментарий избавит вас или других программистов от нужды смотреть ту или иную часть кода и разбираться в нем.
- Просмотр кода через какое-то время - А вдруг будете писать длинный код в 10 000 строк и вам понадобиться какая-та часть кода? Тут и выручит комментарий. Вам не придется сидеть и вспомнить, что делает та или иная строчка кода.
- Избавление от нужды удаления не нужного - Приходит время когда нужно, что-то проверить, но не охота лишний раз удалять/копировать/вставлять код заново. Тут нам и поможет за комментирование кода.
ВИДЫ КОММЕНТАРИЕВ
В программирование выделяет два вида комментариев:- Одно строчный комментарий - выглядит он так
Код:
// Краткое и красивое описание кода
- Много строчный комментарий
Код:
/*
А может попробуем вот так?
*/
Код:
/*
// НИКОГДА НЕ ДЕЛАЕТЕ ВЛОЖЕННЫЕ КОММЕНТАРИИ.
// ЭТО ПРИВЕДЕТ К ОШИБКАМ В КОДЕ!!!
// КАК ЭТО ДЕЛАЮ Я СЕЙЧАС ВАМ НА ДЕМОНСТРАЦИЮ!
*/
ШЕФ, А КАК ДЕЛАТЬ ХОРОШИЙ КОММЕНТАРИЙ?
- Хорошо описывающий комментарий - это плохо!
* При желании можете ознакомится с UML - который разъясняет архитектуру кода.
- Комментируйте каждую сложную строку кода или длинную его часть.
C++:
// Напримере возьмем древний код по стрипу оружия у игрока
/**
* Отбирает оружие у игрока по WEAPON_ID
*
* @param id - Индекс игрока
* @param weapon - Индекс оружия (Example: weapon_ak47)
* @return - Возращает 1 если оружие отобрано
**/
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt)
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0
ExecuteHamB(Ham_Item_Kill,wEnt);
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId))
return 1
}
- Комментируйте если в коде есть какие-то тонкости или невиданные вещи.
Небольшой совет для начинающих.
* ЕСЛИ ЧАСТЬ КОДА, ЧТО-ТО УСЛОЖНЯЕТ СТАРАЙТЕСЬ ВЫНЕСТИ ЭТО В ОТДЕЛЬНУЮ ФУНКЦИЮ
Также готов услышать мнение более квалифицированных программистов по этой теме.
Последнее редактирование: