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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2009, 14:51   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Это разве коменты?

Вот мои коменты:

Код:
// Возвращает код оценки параметра метода
// 0 - OK
// 1 - параметр начинается с цифры
// 2 - параметр совпадает с именем служебной переменной
// 3 - содержит недопустимые символы
// 4 - является пустой строкой
function TValentina.CheckParamMet      (Stroka: String): Integer;
begin

    // Инициализация
    result:=0;

    // Совпадает с именем служебной переменной?
    if Stroka=SLVariab then
    begin

        // передаем результат
        result:=2;
        Exit;
    end;

    // Пустая строка?
    if Stroka='' then
    begin

        // передаем результат
        result:=4;
        Exit;
    end;

    // Начинается с цифры?
    if InSet('0 1 2 3 4 5 6 7 8 9', ' ', Stroka[1])='да' then
    begin

        // передаем результат
        result:=1;
        Exit;
    end;

    // Содержит недопустимые символы
    if InSet('( ) - + = / * '' ? > < ; , . : [ ] # !', ' ', Stroka[1])='да' then
    begin

        // передаем результат
        result:=3;
        Exit;
    end;
end;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 01.12.2009, 15:00   #12
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

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

Вот к примеру кусок кода посложнее и коментов побольше:

Код:
if Image[Number].Height= 90 then
  begin
    //Берем размеры
    IHeight:= Image[Number].Height;
    IWidth:= Image[Number].Width;
    Ileft:= Image[Number].Left;
    ITop:= Image[Number].Top;
    //Загрузка большой картинки
    frmBook.ImageNumberInitialization;
    if t=0 then Exit;
    //Изменени размеров
    Image[Number].Left:=8;
    Image[Number].Top:=40;
    Image[Number].Height:= 576;
    Image[Number].Width:=665;
    //Скрытие картинок
    for i:=1 to 9 do
    begin
      if i<>Number then Image[i].Visible:=false;
    end;
    //Лэйблы недоступны
    for i:=1 to 21 do
    begin
      LabelCaption[i].Enabled:=false;
    end;
    //Скрытие мемо
    rzmemBook.Visible:=false;
    Exit;
  end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 01.12.2009, 15:16   #13
GenniY
Форумчанин
 
Регистрация: 09.09.2009
Сообщений: 181
По умолчанию

Я предпочитаю также использовать простой бумажный блокнот. Вписываю туда то что нужно сделать. А также некие пояснения и расшифровки того что использую в программе (например, по каким критериям вы создаёте запрос к базам и почему именно так). Этот блокнот в конечном итоге потом выступает как лог, видно что делалось и в какой последовательности.
Получил помощь — отблагодарил.
GenniY вне форума Ответить с цитированием
Старый 01.12.2009, 15:18   #14
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ну для этого во многих компиляторах есть так называемый To-Do List, такой есть в том числе и в делфи
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 01.12.2009, 15:58   #15
GenniY
Форумчанин
 
Регистрация: 09.09.2009
Сообщений: 181
Счастье

To-Do List Конечно неплохо, но не так удобно.
А что делать если у нас в проэкте несколько программ?
Если вы работаете не один, а в команде или в организации, то довольно часто нужно обращаться в другие отделы
(ну хотя бы для установление неких привилегий к базам для себя или для роли другого пользователя). Отводим блок в
блокноте какие таблицы, например, нужно назначить. В процессе разработки блок пополняем, при
этом если нужно, можем РИСОВАТЬ ДИАГРАММЫ, и уже потом обращаемся к другим специалистам.
Основной акцент хочу поставить на том, что в простом блокноте можно:
- быстро и удобно сделать заметку в виде вашей удобной "закарлючки";
- выделить блок, который имеет сравнительно высшую важность;
- рисовать быстро для себя диаграммы, блок-схемы, проводить взаимосвязь между блоками, частями коментов в виде стрелок;
- быстрый доступ к информации без компа;

Да вообще после совещания с командой или с начальником у тебя же в этом блокноте остается
вся инфа о изменения и дополнениях — ты ничего не упустишь. И при ОТЧЁТЕ у тебя всегда под рукой
ДНЕВНИК твоей работы.
Получил помощь — отблагодарил.
GenniY вне форума Ответить с цитированием
Старый 01.12.2009, 16:18   #16
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Перед началом создания программы запасаюсь листами А4 и черным маркером (мне им почему-то рисовать удобней). И в начале рисую квадратики в которых пишу названия модулей (Ex: UNTCore, UNTLoad, UNTIntr etc.), затем стрелочки кого к кому подключать, после беру папку и запихиваю туда этот лист, беру второй. Вопреки привычке некоторых - блок-схемы не уважаю и пользуюсь ими очень редко (наверно потому, что иногда трудно преобразить блок-схему в код). Беру второй лист и рисую на нем схематично форму, на которой контролы, сразу же определяю координаты для каждого контрола (если необходимо - черной ручкой, мелкими цифрами), затем от каждого контрола стрелка с указание что он должен делать. Пихаю лист в папку и т.д.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.12.2009, 16:22   #17
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

У меня алгоритмы появляются в ходе решения.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 01.12.2009, 17:19   #18
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Как и многие пишу в блокноте то что нада сделать, когда сделал ставлю плюсик напротив (а не удаляю). Ну и некоторые части программы отлаживаю отдельно, а потом только переношу в программу.
dr.Chas вне форума Ответить с цитированием
Старый 01.12.2009, 17:55   #19
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

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

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

К помощи листков и блокнотов (включая и виндосовский) прибегаю редко. Только если нужна упорядоченная информация по какой-либо теме. В текстовом редакторе описываю, например, структуру сайта, который надо парсить, и т.п. Бывает, в школе записываю мысли по программе куда-нибудь, если слишком нуден урок.

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

Функции, связанные с импортом/экспортом; сохранением в реестр, Ini-файлы, базы данных или другие структурированные файлы; парсингом; графикой я располагаю в других модулях.

Многие уже говорили про отладку каких-либо функций в других проектах, и последующий их перенос в главный проект. У меня точно так же.

Если программа - база данных, то все ф-ии, с ней связанные, я располагаю в DataModule.

Если на определенную тему много функций, то можно создать и DLL.

Ну вот вроде и все, хотя в процессе описания, в голову приходили и другие мысли по этому поводу, но тут же забывались.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 01.12.2009 в 17:58.
Neeter вне форума Ответить с цитированием
Старый 01.12.2009, 17:58   #20
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Я стараюсь перейти на профессиональный уровень- сначала составляю ТЗ, потом объектную модель, потом продумываю взаимодействия объектов/наследования, потом продумываю необходимые типы переменных и начинаю их кодить, потом уже классы... Конечно, комменты пишу(стараюсь ) на каждом шагу.
Вот пример моего кода:
Код:
/************************************************************************/
	/*                      Load circuit from file                          */
	/*1)Open file                                                           */
	/*2)Check type                                                          */
	/*3)Check version                                                       */
	/*4)Parse                                                               */
	/*    Read type                                                         */
	/*    Set array length                                                  */
	/*----SetSize                                                           */
	/*----SetPosition                                                       */
	/*----SetBodyColor                                                      */
	/*----SetContourColor                                                   */
	/*----SetIn1                                                            */
	/*----SetIn2                                                            */
	/*----SetOut1                                                           */
	/************************************************************************/
	/************************************************************************/
	/*                       begin logging                                  */
	/************************************************************************/
	logger.Open("Circuitlogger.txt");
	logger.Write("begin load circuit from file");
Стараюсь писать так, что бы можно было легко читать программу как сказку...

Последний раз редактировалось Levsha100; 01.12.2009 в 18:02.
Levsha100 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BinToHex из Classes. Как юзать и скормить ей большой String Alex Cones Общие вопросы Delphi 5 05.11.2009 17:18
как ускорить работу с большой dbf базой? avfly БД в Delphi 22 13.10.2009 21:37
Как "протянуть" формулу без мыши, если столбец очень большой? zazuza Microsoft Office Excel 7 25.09.2008 10:19
FoxPro. Как записать в поле Memo большой текст? zag БД в Delphi 5 30.05.2008 06:10