Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.246 c
15-1166046224
Петров-Пивкин
2006-12-14 00:43
2006.12.31
Штрих Шеффера (NAND)


5-1146137542
Суслик
2006-04-27 15:32
2006.12.31
design time пакеты, использующие runtime пакеты.


2-1165839672
DDDDDD
2006-12-11 15:21
2006.12.31
TdxDBGrid - при входе в поле - не те данные


6-1155121126
Юра
2006-08-09 14:58
2006.12.31
TClientSocket и интернет


6-1155167361
ivane
2006-08-10 03:49
2006.12.31
"Copy", "Copy Link" в TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский