Чем старше я становлюсь, тем менее важной становится запятая. Пусть читатель сам решает, где ему ставить паузы. — Elizabeth Clarkson Zwart
Примерно так я комментировал свой код двадцать лет назад (
внимание, чуток драмы):
/*
* Когда мы дойдем сюда, наша структура уже будет готова.
* К тому же, мы создали достаточно большой буфер, в который
* можно засунуть все входные данные, плюс есть немного места
* про запас. Я не уверен, понадобится ли оно, но хуже не будет.
* Теперь нам надо обновить счетчик, предполагая, что клиент
* уже прочитал значение, но еще не использовал его. Сначала
* я хотел переложить обязанность инкремента на плечи вызывающего
* кода. С другой стороны, это означает, что инкремент нужно делать всем,
* поэтому я решил, что будет лучше перенести его сюда. Но мы можем
* пересмотреть это решение позже, если вдруг кому-то из внешних функций
* захочется делать инкремент самому.
*/
counter++; // инкрементировать счетчик для потребляемого значения
/*
* Теперь нужно просмотреть весь буфер с данными. Для этой
* операции нам понадобится еще один индекс, иначе перед
* выходом из функции мы потеряем начальное значение.
* Я хотел назвать эту переменную ‘ref’, потому что в некотором
* смысле мы будем обращаться с ней как со ссылкой на данные.
* В конце концов я пришел к выводу, что самым лучшим
* названием для нее будет ‘pos’. Если что, я не против обсудить
* это решение.
*/
char* pos = buffer; // начинаем наш обход данных
/*
Теперь, мы...
*/
Ну что, узнаете? А должны! Если быть предельно невежливым, весь код выше написал нуб. (Между прочим, если вы не знаете, кто такой нуб, значит вы — нуб).
Читать далее