среда, 21 августа 2013 г.

minimum rule

minimum rule
/** Правило минимального изменения кода:

    Если нет предпочтений к оформлению какой-то многострочной
    конструкции в коде, то следует писать так, чтобы при дальнейшем
    возможном изменении кода, количество изменяемых строк было
    минимально. Это упрощает жизнь при работе с системой контроля
    версии и анализе изменений.

    Примеры: Конструктор класса нужно оформлять так: */
object()
  : m_active(false)
  , m_name("object")
  , m_value(0)
{
}
/** При добавлении нового члена класса в список инициализации просто
    появляется новая строка, другие не изменяются.

   У enum после последнего значения нужно ставить запятую: */
enum type_id
  {
    type_id_one,
    type_id_two,
  };
/** При добавлении нового значения или удалении изменится только одна
    строка.

    Не следует выравнивать аргументы функции по открывающей скобке.
    так как если длина имени функции изменится, то придётся
    выравнивать и аргументы, что приведёт к лишим изменениям кода. */

/// Плохо:
void myfunction(int a1,
                int a2,
                int a3);

/// Хорошо:
void myfunction(
    int a1,
    int a2,
    int a3);


/// И так далее.

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

  1. > Не следует выравнивать аргументы функции по открывающей скобке.

    спорный момент, по мне, так твой "плохой" вариант более красивый, его и использую. Изменения количества пробелов, не такая сложная операция, да и любая мержилка из любой современной VCS такое переварит на ура.

    ОтветитьУдалить
    Ответы
    1. Согласен, это спорный момент, в том то и идея, что между красотой и минимальным количеством изменяемых строк, я предпочту минимальное кол-во изменяемых строк.

      Удалить