Комментирование кода
тебя отпустило?
Поэтому лучше к этому подходить с той позиции, что если комментарии есть, то при необходимости их всегда можно вырезать парой регулярок. А если их нет, а код непонятный, то жопа.
Код на С++ понятен без комментариев (с) не помню кто
for (
//в этой строке я объявляю переменную i типа int и присваиваю ей значение 0
int i = 0;
//если значение переменной i будет больше или равно количеству элементов в списке,
//цикл остановится
i < list.Count;
//каждую итерацию цикла увеличиваем значение переменной i на один
i++;)
$moscowAndPiter = array(Config::getInstance->moscow_region_geo_id => "Московская область", "60617951866" => "Ленинградская область"); // IZ: no commentsпри этом сцуко там тыщу раз есть что комментировать (например, вроде как имелись в виду не МО и ЛО, а М+МО и СПБ+ЛО соотв.)
короче такие комменты лучше не писать, они тока бесят
//@@ !State can be changed in enother thread
// must be guarded from here
и затем 50 строчками ниже:
//@@ To here
соответственно, это "must be" отражено лишь в комментариях, но не в коде
P.S. автора комментов ещё в 2007 году уволили за профнепригодность
Вот такого коментатора я вживую видел. Даже работал рядом.
О! Можно бота написать, который будет автоматически вставлять подобные комментарии. Очень поможет тем, кому надо в коде разобраться, но кто не знает языка.for (
//в этой строке я объявляю переменную i типа int и присваиваю ей значение 0
int i = 0;
//если значение переменной i будет больше или равно количеству элементов в списке,
//цикл остановится i < list.Count;
//каждую итерацию цикла увеличиваем значение переменной i на один
i++;)
int MegaFunc
{
X a; // This var gets destroyed _____
Some; // \
Cool; // |r
Stuff; // |i
Etc; // |g
Etc2; // |h
// h e r e |t
return 0;// <___________________________/
}
О! Можно бота написать, который будет автоматически вставлять подобные комментарии. Очень поможет тем, кому надо в коде разобраться, но кто не знает языка.а потом ещё одного бота, который будет поправленные человеком не понимающим языка комментарии конвертить в код. а потом доработать его чтоб можно было просто писать вольным языком, рассказывать программе что надо сделать, а она выполняла.
неопытному программисту который пока не умеет думать прямо кодом, нужен нарратив.Таких еще системными архитекторами зовут :-)
int MegaFunc
{
X a; // This var gets destroyed _____
Some; // П А Р И К М А \
Cool; // Х |r
Stuff; // Е С |i
Etc; // Р К |g
Etc2; // А Я |h
// h e r e |t
return 0;// <___________________________/
}
//
// Dear maintainer:
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 39
//
for (
//в этой строке я объявляю переменную i типа int и присваиваю ей значение 0
int i = 0;
//если значение переменной i будет больше или равно количеству элементов в списке,
//цикл остановится
i < list.Count;
//каждую итерацию цикла увеличиваем значение переменной i на один
i++;)
ТС жаловался на «примерно раз в три строчки», а не три строчки комментов на одну строчку кода.
Этож п..дец в квадрате получается.
def authernticate(func):
def decorated(self, request, *args, **kwargs):
# Get user and additional cookies
user, cookies = get_current_user(request)
# Check user
if not user:
return HttpResponseRedirect(self.get_full_url(settings.LOGIN_URL
# Remember user in the request object
request.current_user = user
# Call a view
response = func(self, request, *args, **kwargs)
# Set additional cookies
for cookie in cookies:
response['Set-Cookie'] = cookie
# Return the result
return response
return decorated
Он еще и юнит-тесты писать умеет
Оставить комментарий
Serab
Вот бля, ну скажите же, что комментарии «примерно раз в три строчки» как самоцель — это пиздец! Я бы наоборот относился с подозрением к чувакам, которые не могут писать понятный код, не требующий объяснения каждого действия? Или ч0ваще?