среда, 10 февраля 2010 г.

[comp.prog] Пример собственного синтаксического оверхеда ;)

Выработанная годами привычка подробно комментировать код иногда приводит к интересным последствиям. Вот, сегодня написал:

/*!
* Вспомогательная функция для проверки наличия TLV и размера данных в TLV.
*
* \retval 0 если TLV не найдено или если длина его данных не совпадает
* с указанной в \a expected_length.
 */
const smpp_pdu_1::opt_param_t *
check_tlv_presence_and_value_length(
   //! Хранилище TLV, в котором нужно выполнять поиск.
   const smpp_pdu_1::opt_params_holder_t & tlv_holder,
   //! Идентификатор искомого TLV.
   const smpp_pdu_1::opt_param_t::tag_type_t tag,
   //! Ожидаемый размер значения TLV.
   const smpp_pdu_1::opt_param_t::length_type_t expected_length )
   {
      const smpp_pdu_1::opt_param_t * tlv = tlv_holder.opt_params().find( tag );

      if( tlv && expected_length == tlv->length() )
         return tlv;

      return 0;
   }

Сам смотрю и ужасаюсь – двадцать две строки, из которых полезных всего шесть! Но и заставить себя выбросить что-нибудь отсюда не могу, ДНК не позволяет.

Похоже, что я даже в Haskell-е за счет своего стиля писал бы код в 2-3 раза длиннее необходимого ;)))

2 комментария:

Miroslav комментирует...

дублирование - русский-латинский шрифты. Нужно или писать по русски или думать по английски :)

eao197 комментирует...

Ну осилить английский не дано, так что одним вариантом меньше :)

Если серьезно, то после того, как стал много пользоваться doxygen-ом, то стал дублировать русскими комментариями даже простые названия функций/методов/аргументов. Потому, что в HTML варианте документации все это дело воспринимается по-другому. Оказалось, что даже комментарий вида "Это размер значения" перед параметром value_size для меня очень сильно повышает читабельность HTML-документации.