Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Оптимальный стиль программирования   Найти похожие ветки 

 
Cyrax ©   (2006-12-01 20:31) [0]

1. В Delphi для имён типов стандартом является буква "T" вначале имени. Причём для всех типов, включая классы. Хотя для классов можно было использовать и букву "C". Для имён указателей используется буква "P".
В С и C++ картина совсем иная. Имена типов и классов формально никак не выделяются.

2. В Delphi активно используются заглавные буквы для неконстант, для разделения слов в составе имени используется регистр. В C и C++ - знак "_", причём заглавные буквы в составе имени неконстант встречаются намного реже, чем в Delphi...

3. Отступы. По-моему, 8 пробелов это уже слишком. Фрагмент кода

void TiXmlBase::PutString( const TIXML_STRING& str, TIXML_STRING* outString )
{
       int i=0;

       while( i<(int)str.length() )
       {
               unsigned char c = (unsigned char) str[i];

               if (    c == "&"
                    && i < ( (int)str.length() - 2 )
                        && str[i+1] == "#"
                        && str[i+2] == "x" )
               {

Оптимальный вариант - 2 или 4 пробела. Я использую 2...


 
Джо ©   (2006-12-01 20:33) [1]

И в чем суть ветки? Крик души? :)


 
Cyrax ©   (2006-12-01 20:38) [2]

Джо ©   (01.12.06 20:33) [1]
И в чем суть ветки? Крик души? :)

Хочу узнать предпочтения Delphi"стов и C-ников относительно организации кода. Часто вижу код, извращённый до невозможности... А веть ещё и либы пишут...


 
Cyrax ©   (2006-12-01 20:39) [3]

Да и по первым двум веткам - разница налицо. Тут уже встаёт вопрос, с чем связаны эти две тенденции (для Delphi/Pascal и C/С++)...


 
ANTPro ©   (2006-12-01 20:46) [4]

> [2] Cyrax ©   (01.12.06 20:38)

Эксперт тебе в руки :)
http://www.dow.wau.nl/aew/downloads/DelForEx.zip


 
Cyrax ©   (2006-12-01 21:06) [5]

Что там ?
6 метром - многовато...


 
Vga ©   (2006-12-01 21:07) [6]

> [3] Cyrax ©   (01.12.06 20:39)

Исторически. Кстати, встречал для С++ рекомендации разделять слова заглавной буквой, но первое слово - с маленькой. Примерно так myFunctionWithLongMultiwordName() :)
Примерно такой стиль вроде и Qt поощряет...


 
Чапаев ©   (2006-12-01 21:08) [7]

> Хочу узнать предпочтения Delphi"стов и C-ников относительно
> организации кода
А предпочтения 1С-ников не хочешь? Могу натравить франчайзинг...


 
Vga ©   (2006-12-01 21:08) [8]

> [5] Cyrax ©   (01.12.06 21:06)

Форматтер сорсов на Delphi. А вот откуда про 6 метров??? Он вроде меньше полуметра весит...


 
Джо ©   (2006-12-01 21:09) [9]

> Кстати, встречал для С++ рекомендации разделять слова заглавной
> буквой, но первое слово - с маленькой

Это т.н. "camelCase", используется активно в Java для имен методов.


 
Vga ©   (2006-12-01 21:09) [10]

> [2] Cyrax ©   (01.12.06 20:38)

Дельфист. Стиль - почти как в генофонде (на пробелы местами скуплюсь, и на комменты).


 
Vga ©   (2006-12-01 21:10) [11]

Кстати, то, что в С часто используются маленькие буквы с _ в качестве разделителя возможно связано с тем, что там все ключевые слова в нижнем регистре и язык регистрочуствительный.


 
ANTPro ©   (2006-12-01 21:12) [12]

> [5] Cyrax ©   (01.12.06 21:06)

Какие 6 метров? 472кб...
Delphi Formatter - Встраивается в IDE. Жмем ctrl+D и открытый файл оформляется по стилю Borland.


 
Он   (2006-12-01 21:15) [13]


> 3. Отступы. По-моему, 8 пробелов это уже слишком

В студии 4. И в настройках настраивается. Как, впрочем, и в Delphi.


 
Vga ©   (2006-12-01 21:15) [14]

> [12] ANTPro ©   (01.12.06 21:12)

Не совсем. Стиль настраивается. Плюс штуки 4 пресетов стиля.


 
ProgRAMmer Dimonych ©   (2006-12-01 21:31) [15]

> Оптимальный вариант - 2 или 4 пробела. Я использую 2...
Объясните мне тупому, почему два? Неужели у всех программистов, кроме меня, так плохо со зрением, что один пробел и его отсутствие - неразличимы?

Очень часто приходится сталкиваться с кодом, в котором вложенных begin...end"ов не меньше десятка, я к этому отношусь нормально. Но когда каждая из этих строк в два раза по длине превышает ширину окна редактора, причём из-за этих самых пробелов, то это просто нечитаемо. Согласен, воспитывает умение и желание всё создавать своим мозгом, но иногда это становится крайностью.


 
ANTPro ©   (2006-12-01 21:38) [16]

> [15] ProgRAMmer Dimonych ©   (01.12.06 21:31)
> почему два?

Потому что, все измеряется степенью двойки :)


 
Джо ©   (2006-12-01 21:41) [17]

> [15] ProgRAMmer Dimonych ©   (01.12.06 21:31)
> Очень часто приходится сталкиваться с кодом, в котором вложенных
> begin...end"ов не меньше десятка

Коду такому — отступы не помогут, его нужно переписать.


 
Vga ©   (2006-12-01 21:44) [18]

> [15] ProgRAMmer Dimonych ©   (01.12.06 21:31)

Затем, что 18 и 20 пробелов проще различить, чем 9 и 10


 
ProgRAMmer Dimonych ©   (2006-12-01 21:44) [19]

> ANTPro ©   (01.12.06 21:38) [16]
2 в нулевой = 1.

> Джо ©   (01.12.06 21:41) [17]
Ну, иногда бывает, что такой код читать удобнее, но просто количество пробелов не позволяет этого делать, не трогая прокрутки. С ходу примера не приведу, но двойной for с двойным if"ом внутри (каждый из if"ов - с begin...end"ом) - это не фантастика, а вполне реальный код.


 
isasa ©   (2006-12-01 21:44) [20]

Крик души.
Все, что угодно, только не венгерская нотация. :)


 
ProgRAMmer Dimonych ©   (2006-12-01 21:45) [21]

> Vga ©   (01.12.06 21:44) [18]
:) ?


 
Джо ©   (2006-12-01 21:46) [22]

> [20] isasa ©   (01.12.06 21:44)
> Крик души.
> Все, что угодно, только не венгерская нотация. :)

Мой крик души: Всё, что угодно, только не этот противный Джавовский camelCase! :D


 
Джо ©   (2006-12-01 21:48) [23]

> С ходу примера не приведу, но двойной for с двойным if"ом
> внутри (каждый из if"ов - с begin...end"ом) - это не фантастика,
> а вполне реальный код.

Десятка не набирается:
for
begin
  for
    begin
      if
        begin
          if
            begin

Всего 8 :)

Но и такое, по-моему, переписать нужно. Одинарными оступами не лечится :)


 
Vga ©   (2006-12-01 21:49) [24]

> [21] ProgRAMmer Dimonych ©   (01.12.06 21:45)

В прямом смысле. Чем больше отступ, тем он заметнее. Иначе в некоторых случаях становится сложно понять, какой это отступ/блок.


 
Vga ©   (2006-12-01 21:50) [25]

> [23] Джо ©   (01.12.06 21:48)

Да и влезает нормально (правда, у меня 17" ЖК в стандартном разрешении).


 
Джо ©   (2006-12-01 21:52) [26]

> [25] Vga ©   (01.12.06 21:50)
> > [23] Джо ©   (01.12.06 21:48)
>
> Да и влезает нормально (правда, у меня 17" ЖК в стандартном
> разрешении).

У меня 19, влезает тем более :) Но что с того, что он в экран помещается? Оно в мозгу не помещается, вот главная проблема :)


 
Vga ©   (2006-12-01 21:53) [27]

> [26] Джо ©   (01.12.06 21:52)

Если 19" ЖК и ничего не изменилось (т.е. они по прежнему 1280х1024) - то помещается точно также :)
А чтобы в мозгу не помещалось, есть и более эффективные методы, тут где-то на сишный сорец шахмат была ссылка :)


 
ProgRAMmer Dimonych ©   (2006-12-01 21:54) [28]


> for
> begin
>   for
>     begin
>       if
>         begin
>           if
>             begin


После первого for"а тоже надо бы отступ сделать, как после второго. :)
А код вполне нормальный. IMHO.

> Vga ©   (01.12.06 21:49) [24]
В QBasic в своё время подпрограммы в редакторе показывалисьне прямо в тексте программы, а отдельно. Может, проще использовать что-то подобное, чем 5432135 пробела?


 
Джо ©   (2006-12-01 21:56) [29]

> [28] ProgRAMmer Dimonych ©   (01.12.06 21:54)
>
> > for
> > begin
> >   for
> >     begin
> >       if
> >         begin
> >           if
> >             begin
>
>
> После первого for"а тоже надо бы отступ сделать, как после
> второго. :)


Это просто опечатка у меня. Набирал прямо в форуме.

> А код вполне нормальный. IMHO.
Жутки код, жуткий. ИМХО :)
П.С. У меня такой тоже встречается, я не лицемер :)


 
Vga ©   (2006-12-01 21:58) [30]

> > Vga ©   (01.12.06 21:49) [24]
> В QBasic в своё время подпрограммы в редакторе показывалисьне
> прямо в тексте программы, а отдельно. Может, проще использовать
> что-то подобное, чем 5432135 пробела?

???
Насколько я знаю, подпрограммы (которые теперь функциями зовутся) и в дельфи отдельно. А коду, изобилующему goto вообще отступы ни к чему. Он и так разбору не подлежит.


 
Vga ©   (2006-12-01 21:59) [31]

> [29] Джо ©   (01.12.06 21:56)

На самом деле надо так:
for
begin
 for
 begin
   if
   begin
     if
     begin


 
ProgRAMmer Dimonych ©   (2006-12-01 22:02) [32]

> Vga ©   (01.12.06 21:58) [30]
В какой версии Delphi? У меня в 7 всё идёт в одном текстовом поле, одном окне редактора.

Кстати, goto ближе к ассемблеру. Если Вы мне покажете программу, в которой нет ни одного jmp, буду очень признателен.


 
ProgRAMmer Dimonych ©   (2006-12-01 22:03) [33]

> Vga ©   (01.12.06 21:59) [31]
Сколько пробелов? В этом шрифте смотрится вполне прилично, IMHO...


 
TUser ©   (2006-12-01 22:08) [34]

Я пробелов раньше ставил три. Логика - если надо будет вставить промежуточный уровень, то это легко можно следать даже два раза, несмещая кусок кода. Получалось, что где-то два пробела, глде-то 1, где-то три. Вот это было ужасно. Теперь ставлю два всегда. В последнее время стал не ставить "лишние" пробелы, например
for i := ...
for j := ... do begin
 ...
 end;

вместо
for i := ...
 for j := ... do begin
   ...
   end;


 
ANTPro ©   (2006-12-01 22:13) [35]

> [19] ProgRAMmer Dimonych ©   (01.12.06 21:44)
> 2 в нулевой = 1.

Черт, про четность забыл сказать :)


 
Vga ©   (2006-12-01 22:13) [36]

> [32] ProgRAMmer Dimonych ©   (01.12.06 22:02)

Не на x86. Никакой замены jxx в этой системе команд нет.

> [33] ProgRAMmer Dimonych ©   (01.12.06 22:03)

2, как обычно. Разрешение надо выше ставить... И вообще, форматируй как хочешь, для приведения к любимому виду чужих сорцов есть DelFor и подобные.

> > Vga ©   (01.12.06 21:58) [30]
> В какой версии Delphi? У меня в 7 всё идёт в одном текстовом
> поле, одном окне редактора.

А в этом плане... Естественно в одном, там же только подпрограммы. Программа - это в dpr от begin до end. Обычно 2+<количество форм> строк.


 
ProgRAMmer Dimonych ©   (2006-12-01 22:16) [37]

> Vga ©   (01.12.06 22:13) [36]
> > В какой версии Delphi? У меня в 7 всё идёт в одном текстовом
>
> > поле, одном окне редактора.
>
> А в этом плане... Естественно в одном, там же только подпрограммы.
>  Программа - это в dpr от begin до end. Обычно 2+<количество
> форм> строк.
Вот. А в QBasic отображалась только основная часть программы, а доступ к подпрограммам осуществлялся через F2. По нажатии на F2 выводился список всех процедур/функций программы свозможностью перехода к выбранной. На экране каждая процедура была похожа на отдельную программу (за исключением оформления как процедуры). В файл сохранялось единым целым. Так сказать, удобства ради.


 
Vga ©   (2006-12-01 22:21) [38]

> [37] ProgRAMmer Dimonych ©   (01.12.06 22:16)

В Delphi это уже не нужно, т.к. как я уже сказал, в большинстве модулей "основная часть программы" отсутствует.


 
MeF Dei Corvi ©   (2006-12-01 22:27) [39]


> Вот. А в QBasic отображалась только основная часть программы,
>  а доступ к подпрограммам осуществлялся через F2. По нажатии
> на F2 выводился список всех процедур/функций программы свозможностью
> перехода к выбранной. На экране каждая процедура была похожа
> на отдельную программу (за исключением оформления как процедуры).

Это же жутко неудобно!


 
ProgRAMmer Dimonych ©   (2006-12-01 22:28) [40]

> MeF Dei Corvi ©   (01.12.06 22:27) [39]
Чем?



Страницы: 1 2 3 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.036 c
4-1156159118
apic
2006-08-21 15:18
2006.12.31
scm


15-1165748844
Vistaman
2006-12-10 14:07
2006.12.31
Проблемы с Windows Vista


2-1165824346
lobach
2006-12-11 11:05
2006.12.31
100 кнопок


2-1165897474
Kvinta
2006-12-12 07:24
2006.12.31
Вернуть Field а ADO


2-1165412814
kester
2006-12-06 16:46
2006.12.31
LPT в XP