[Moscow.pm] Комментарии

Шогин Михаил mshogin на gmail.com
Чт Мар 11 06:33:37 PST 2010


>>> Расскажите пожалуйста, как вы относитесь к комментариям в коде? Как вы
>>> считаете, они помогают или мешают? А сами пишете?
>>
>> Раньше не писали. Теперь пишем.
>> Раньше было мнение, комментировать только сложные участки кода,
провалилось.
>> Писать коменты не так затруднительно, главное привыкнуть.

>А что пишите? Я стараюсь описывать только не очевидные вещи. Особенно когда
>с первого взгляда может показаться, что нужно написать по другому. Иногда
>интуиция подводит и потом думаешь зачем же так написали.

>Как вы границу проводите? Если все комментировать, то быстро до абсурда
дойти
>можно, когда код теряется за текстом.




Мы стараемся строго придерживаться принципа персональной ответственности и
TDD (что подразумевает бесконечный рефакторинг :) )
В итоге нам остается только написать коммент об ответственности функции. Это
касается моделей предметной области и сервисов.
Что касается демонов, кроновских скриптов, то там мы комментируем поток
выполнения (все остальное смотреть в обьектах и тестах).
Прибавляя к этому минимизацию тела методов получаем хороший результат.

Однако в нашей схеме есть один большой плюс (и минус в равной степени :) -
логика распределена, часть в перле, часть в БД.

Если убрать код, то коменты получаются примерно такие (скрипт на 100 строк)


# $Id: sms senderd,v 1.0 2009/12/19 22:38 shogin Exp $ 
# Главный демон. Событийный
# Проверяет доступность пакетов к рассылке. Обрабатывает запросы мониторинга


# демонизируемся


# подгрузим конфиг


# одновременно может работать только один демон
# это не наша прихоть, SMSC. Они не разрешают держать одновременно два
коннекта
# в случае такой нужды связаться с Mobile Dept


# инициализируем сервисы


# Если мрем, то скажем почему


# раз в 2 секунды проверяем доступность пакетов
	# есть пакет?
			# отправим его
			# удалим его


# зарезервировано под отчеты о доставке


# секция мониторинга
# Создаем сокет. Параметры сокета в конфиге  /config/content.cfg секция
sms-sender
# параметры отправляем админам
   
# как только приходит пакет от мониторинга - отсылаем его в обратку. Эхо
сервер   
# конец секции мониторинга


# перегрузить конфиг


# Лишь для тестов. В случае запуска не демонизируясь, можем прервать с
помощью Ctrl+C


# когда умираем, корректно закроем коннект к базе



Подробная информация о списке рассылки Moscow-pm