Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 13:37   #31
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Вы не поняли сути - описывается не i++. Описывается алгоритм.
зачем куча комментариев когда можно написать код так что он будет вполне понятен?
а в документации уже описывается сам алгоритм.

вообще код это реализация алгоритма.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 13:39   #32
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Вы не поняли сути - описывается не i++. Описывается алгоритм.

Я бы был более осторожен в оценках и навешиваемых ярлыках.
Я не навешиваю ярлыков. Я говорю по своему опыту. Ни разу не видел, чтобы опытный программист комментировал каждую строку кода. Такое сплошь и рядом в студенческих лабораторных и курсовых.

Если нужно описать алгоритм, то проще написать к нему документацию (она для этого и создана).

Извините, если я вас неправильно понял.
MaTBeu вне форума Ответить с цитированием
Старый 03.01.2012, 13:53   #33
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну если Вы такие все такие правильные , объясните чем занимается фрагмент данной функции на Дельфи:
Код:
      result:=False;
      buf:=Stroka;      
      Flag[1]:=CheckNumberStroka(Nabor[Index].Slovo[1]);
      Flag[2]:=CheckNumberStroka(Nabor[Index].Slovo[2]);
      Flag[3]:=CheckNumberStroka(Nabor[Index].Slovo[3]);
      Flag[4]:=CheckNumberStroka(Nabor[Index].Slovo[4]);
      Flag[5]:=CheckNumberStroka(Nabor[Index].Slovo[5]);
      Flag[6]:=CheckNumberStroka(Nabor[Index].Slovo[6]);
      Flag[7]:=CheckNumberStroka(Nabor[Index].Slovo[7]);
      Flag[8]:=CheckNumberStroka(Nabor[Index].Slovo[8]);
      Dlina:=GetIndex(buf, ' ');
      For i:=1 to 8 do
      begin
          If Nabor[Index].Slovo[i]='' then
          begin
              Dlina:=i-1;
              Break;
          end;
      end;
    If Dlina>8 then Dlina:=8;
    if Flag[Dlina]=true then Dec(Dlina);
    if Dlina<1 then Exit;
    for i:=1 to Dlina do
    begin
          k:=i+1;
          if (flag[i]=false) or (flag[k]=false) then
          begin
            If flag[i]=true then
            begin
                if i<8 then
                begin
                    x:=buf;
                    buf:=GetEnd(buf, Nabor[Index].Slovo[k]);
                    uk:=StrToInt(Nabor[Index].Slovo[i]);
                    if (uk<0) or (Uk>8) then Exit;
                    Constr.Param[Uk]:=Copy(x, 1, Length(x)-Length(buf));
                end;
            end
            Else
            begin
                if buf='' then Exit;
                z:=AnsiUpperCase(GetItemMas(buf, ' ', 1));
                if Nabor[Index].Slovo[i]<>'' then
                begin
                    If CheckInSet(AnsiUpperCase(Nabor[Index].Slovo[i]), z)=False then
                    begin
                        Constr.Param[1]:='';
                        Constr.Param[2]:='';
                        Constr.Param[3]:='';
                        Constr.Param[4]:='';
                        Constr.Param[5]:='';
                        Constr.Param[6]:='';
                        Constr.Param[7]:='';
                        Constr.Param[8]:='';
                        Exit;
                    end;
                end;
                buf:=DelItemMas(buf, ' ', 1);
            end;
          end;
    end;
Это начало функции. Я думаю для данного фрагмента комментарии для Вас будут абсолютно излишними.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 03.01.2012, 13:55   #34
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

На работе приходится лазить по нескольким гигабайтам кода. И лично мне куда удобнее его читать, когда он написан красиво, понятно и без комментариев, которые его засоряют. Обычно в самом начале нетривиального класса или функции просто ставится ссылка на документацию в вики проекта. А там уже понятным языком описан алгоритм, почему сделано так или иначе, различные нюансы, способы применения, что можно улучшить и прочее...

Проблема рассинхронизации кода с документацией может решаться на уровне ревью кода - код может быть одобрен, но коммит не пропускается, пока не сделан ап документации.

PS раньше юзал doxygen, но в последний год он мне разонравился как-то...

PPS есть довольно неплохой google c++ style guide, а еще qt coding style


Цитата:
Это начало функции. Я думаю для данного фрагмента комментарии для Вас будут абсолютно излишними.
Абсолютно излишними. Достаточно взглянуть на ЭТО один раз и попросить переписать с нуля.

Последний раз редактировалось still_alive; 03.01.2012 в 13:57.
still_alive вне форума Ответить с цитированием
Старый 03.01.2012, 14:02   #35
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

still_alive, я могу назвать Вас верхом неадекватности. Ибо вопрос стоял не о качестве кода. Что за еврейские подходы к решению задачи? Вы же прошли гигабайты кода и должны знать что подобного хлама всегда больше чем действительно хорошего. Кстати, он работает. Мне ли Вас учить - тут не то что рефакторинга - банальная автозамена в 5 минут улучшит ситуацию. Вопрос в другом как бы.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 03.01.2012 в 14:06.
Utkin вне форума Ответить с цитированием
Старый 03.01.2012, 14:02   #36
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)совмещение английского и транслита это ужас.
2)разбор синтаксических конструкций, макс размер конструкции 8.
Цитата:
Абсолютно излишними. Достаточно взглянуть на ЭТО один раз и попросить переписать с нуля.
.
отчасти согласен.

кстати, еще одна вещь, верная что для Делфи, что для С++.
лучше писать обращение к самому себе через this/Self.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 14:05   #37
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
still_alive, я могу назвать Вас верхом неадекватности. Ибо вопрос стоял не о качестве кода. Что за еврейские подходы к решению задачи?
Ну-ну. Вы б еще код в одну строчку привели и спросили - а чо это там делается? В нормальном проекте такого кода просто нет, а другие мне нафиг не сдались. А вам?
still_alive вне форума Ответить с цитированием
Старый 03.01.2012, 14:09   #38
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я собственно такого ответа и ожидал . Нет ни одного четкого ответа по вопросу. Ближе всех был Пепел Феникса (но я для него и закидывал удочку). Зато сколько умных слов . Право я повторюсь - не спешите с выводами.
Цитата:
1)совмещение английского и транслита это ужас.
Я уже ответил, но еще раз второй аргумент - вопрос состоял в другом.
Цитата:
2)разбор синтаксических конструкций, макс размер конструкции 8.
Близко, но не правда. Я вижу Ваши методы на практике не работают.

Цитата:
В нормальном проекте такого кода просто нет, а другие мне нафиг не сдались. А вам?
А меня никто не спрашивает. Мне дают и говорят чтобы вчера было сделано. Данный код мой (я еще только учился), но он показателен.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 03.01.2012 в 14:13.
Utkin вне форума Ответить с цитированием
Старый 03.01.2012, 14:12   #39
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Уткин, а разве код идеален?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 03.01.2012 в 14:19.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 14:15   #40
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Уткин, разве я не прав про кусок кода?
Нет. Это очень близко, но не совсем то. Скажем так, если бы код содержал ошибку, Вы бы ее не нашли.
Допустим имеется строка x=x+1 и х = х+1
Какая строка будет распознана, а какая нет? Уточню данная функция возвращает Boolean. Какой будет результат функции для первого, и какой для второго вариантов?

Цитата:
Уткин, а разве код идеален?
В чем же его изъяны ? Я не тролль отвечу заранее -
а) Это намек на пьяный код. Если бы Вы читали комментарии, то поняли бы и его.
б) На придирки по транслитерации и им подобные я уже писал в посте # 35. Зачем его переписывать с нуля? Это очередной Ваш минус. Нормальный человек попытается понять алгоритм - если он верен нужно провести рефакторинг.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 03.01.2012 в 14:26.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правила написания кода на Delphi Virtson Общие вопросы Delphi 17 06.08.2010 08:59
Правила разделов/главные правила Alex Cones О форуме и сайтах клуба 1 30.09.2009 17:49
Оформления текста tae1980 Microsoft Office Excel 6 26.03.2009 18:54
Стили оформления кода Altera Свободное общение 2 30.08.2008 17:23
Проблема оформления SunKnight Общие вопросы Delphi 3 25.02.2008 01:11