Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
не совсем согласен. 17.10.02 20:44 Число просмотров: 1215
Автор: vim Статус: Незарегистрированный пользователь
|
> > > Например, вместо i должно быть index. > > > Запрещается использовать короткие имена. > ну для i,j,k можно сделать исключение - к этому уже все > привыкли > просто если переменная часто используется, то дллинное имя > тоже не есть хорошо, так как увеличивает размер кода, а > значит ухудшает читабельность
Да, согласен, но это должно быть в пределах небольшого фрагмента кода, скажем в пределах одного экрана.
Потому что если цикл большой, на несколько экранов, то можно просто запутаться в этих переменных.
> > > 2. Переменные-члены класса должны иметь особое > > название, > > > к примеру, начинаться с m_ (как это принято в > MFC) > это согласен > я ещё глобальным/статическим переменным прибавляю g_/s_ > > > > 3. Не писать выражения слитно. Всегда ставить > между > > > операндами пробелы. Это повышает читабельность > кода. > > > Плохой пример: x=2*getPos(px/2); > > > Хороший пример: x = 2 * getPos( px / 2 ); > тоже не всегда > длинная строка трудно читается > лучше отделять пробелами большие блоки в выражениях > > > > 5. Для большинства функций всегда делать шапку с > > > комментариями > оно конечно хорошо... > только: > 1) отнимает время, > 2) нужно знать английский, потому что кривой язык не очень > украсит исходники (в принципе можно и на русском, если > исходники для себя) > на практике получается делать комментарии для больших > функций, которые не планируется никогда менять, или > которыми будут пользоваться посторонние люди
В этом и отличие хорошего стиля от "простого".
> > > 7. Писать не более одного выражения в строке. > > > Например, недопускаются выражения типа > > > while (f = getValue() != 0) > если выражение не сложное, почему бы и нет? > меньше строк будет > > и потом как ты заменишь такую конструкцию: > char c; > while( (c=GetNextChar())!=0 ) // кстати пример с пробелами > { > ... > };
Не совсем понял в чем проблема ее заменить.
Можно например так:
char c;
while (1)
{
c = GetNextChar();
if (c == 0) break;
...
};
Просто по логике вещей в команде while(...) в скобках должна стоять проверка условия, а вместо этого туда вставляются команды, которые не имеют отношения к проверке условия.
Кроме того, это снижает читабельность кода. Чтобы понять его, ты мысленно "парсируешь" условие на собственно команду c = GetNextChar(), и затем с != 0.
Ну и, наконец, это просто повышает вероятность ошибки. Можно к примеру опустить скобку
while (c = GetNextChar() != 0)
тогда в переменную C может присвоиться результат вычисления логического выражения GetNextChar() != 0, или в будущем понадобиться второе условие сюда добавить.
Мое мнение - все конструкции должны быть простыми и понятными.
Это главный принцип.
По этой же причине я считаю недопустимо писать в выражениях ++ (--) так как это усложняет восприятие кода, и может стать потенциальным источником ошибок.
x = a + b * (--c) / (d++) ;
|
|
|