информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медSpanning Tree Protocol: недокументированное применениеЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
не совсем согласен. 17.10.02 20:44  Число просмотров: 1170
Автор: 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++) ;
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach