Информация об изменениях

Сообщение Re[11]: Изучение Си после C++? от 26.07.2019 8:37

Изменено 26.07.2019 8:58 rg45

Re[11]: Изучение Си после C++?
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>А я бы с удовольствием посмотрел на неговнокод. Так сказать, с целью расширения кругозора.

SVZ>В идеале — на приведенный выше код, написанный в правильном стиле.

Этим я заниматься не стану, конечно, но общие принципы выражу:

1) Выполнить декомпозицию и структрурирование кода в соответствии с принципом "одна функция — одна задача";
2) Убрать из кода "магические" константы;
3) Дать всем фунциям и, по возможности, переменным понятные имена.

Да, в области математики, дать вменяемые имена локальным переменным не всегда удается — просто потому, что они чисто исторически обозначаются буквами. Но, как минимум, буквенные обозначения должны соответствовать общепринятым. И важную роль здесь играет декомпозиция кода и сокращение размеров тел функций — когда перед глазами одновременно и переменная, и ее использование, смысл понимается легче, как правило. В моем коде вы не встретите функции, которая бы не умещалась на одном экране.

При переходе к C++

1) Систематическое использование модификаторов const;
2) Объявление переменных как можно ближе к месту их использования (это, опять же, к вопросу о легкости восприятия имен переменных);
3) Замены (там где это оправдано) монолитных больших функций, классами вычислителями, использующими общий общий набор закрытых переменных, но декомпозированных на более простые функции.
Re[11]: Изучение Си после C++?
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>А я бы с удовольствием посмотрел на неговнокод. Так сказать, с целью расширения кругозора.

SVZ>В идеале — на приведенный выше код, написанный в правильном стиле.

Этим я заниматься не стану, конечно, но общие принципы выражу:

1) Выполнить декомпозицию и структрурирование кода в соответствии с принципом "одна функция — одна задача";
2) Убрать из кода "магические" константы;
3) Дать всем фунциям и, по возможности, переменным понятные имена.

Да, в области математики, дать вменяемые имена локальным переменным не всегда удается — просто потому, что они чисто исторически обозначаются буквами. Но, как минимум, буквенные обозначения должны соответствовать общепринятым. И важную роль здесь играет декомпозиция кода и сокращение размеров тел функций — когда перед глазами одновременно и переменная, и ее использование, смысл понимается легче, как правило. В моем коде вы не встретите функции, которая бы не умещалась на одном экране.

  Вот такое — ни в одни ворота
    double result;
    double a;
    double b;
    double c;
    double p;
    double q;
    double u;
    double w;
    double z;
    int i;
    double logpi;
    double ls2pi;
    double tmp;



При переходе к C++:

1) Систематическое использование модификаторов const;
2) Объявление переменных как можно ближе к месту их использования (это, опять же, к вопросу о легкости восприятия имен переменных);
3) Замены (там где это оправдано) монолитных больших функций, классами вычислителями, использующими общий общий набор закрытых переменных, но декомпозированных на более простые функции.