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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2009, 04:44   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
Восклицание Большой проект, как не запутаться?

Есть такой вопрос: Подскажите пожалуйста как вы строите приложение? Ну на бумаге или на компьютере может блок схемы строите (если можно поконкретнее)? А то когда в приложении становиться более менее много функций, да и проект если не маленький, начинаешь путаться, что-то забывать, где-то если исправил, что-то, то от него зависящее бывает, тоже нужно подправить, а забыл. Вообще, что можете посоветовать? И сразу прошу не оставлять тут "умные изречения", которые не отвечают на вопрос, просто если кого-то хочется окорбить (хоть даже шутя), то оставьте при себе своё мнение P.S. просто достали "шутники".
Как лучше писать более менее большой проект?

Последний раз редактировалось Casper-SC; 01.12.2009 в 04:49.
Casper-SC вне форума Ответить с цитированием
Старый 01.12.2009, 05:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

У меня - все в голове. Все - импровизация, на ходу. Чаще всего первоначальный алгоритм значительно меняется в ходе разработки.
Когда объем становится большим, начинаю делать пометки в отдельном текстовом файле - что нужно сделать. Пока не станет пустым.
И сначала делаю все ключевые функции (скелет), потом наращиваю "мясо".
Потом идет "полировка ногтей"...
mihali4 вне форума Ответить с цитированием
Старый 01.12.2009, 08:29   #3
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Я записываю на обычном листе, что нужно сделать. И причем записываю это сразу как только пришло в голову что "это" надо сделать, потому как потом обязательно забуду и этом может вылезти не сразу. Ну и по мере того, как я реализую написанное, я его вычеркиваю.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 01.12.2009, 08:43   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Я пишу в текстовый файл только сложные вещи, например функция возвращает некое число, от которого зависит дальнейший ход работы (функция определения типа параметра), а так все в голове и комментриую каждую строку кода. Все остальное в голове. Сейчас около 20000 строк кода и я превосходно ориентируюсь в своей проге.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 01.12.2009, 11:44   #5
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

А я пишу в дельфи 2010, и там можно "сворачивать" процедуры, и функции, удобно и не запутаешься! )))
KoBRaAndrey вне форума Ответить с цитированием
Старый 01.12.2009, 12:06   #6
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

На первых порах на листе пишу черновик, все, что посчитаю нужным. Потом беру другой лист упорядочиваю то что написал на первом, и тд. пока в голове и на листе не сложится полная картинка проекта в целом(или части проекта). Блок схемы составляю, чтобы не запутаться. Программку недавно скачал для составления блок схем – WizFlow, доволен.
Gorychev вне форума Ответить с цитированием
Старый 01.12.2009, 12:23   #7
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Как и у многих, вся идея проекта сначала прорисовывается "в голове".При необходимости карандашом составляю блок схему.Ключевые моменты (функциями, процедурами ) реализую отдельными пробными проектами.Когда пробные проекты отлажены - состыковываю их в один.
Еще очень важный момент - культура работы с переменными и методами. Всегда даю им осмысленные наименования (какими бы они длинными не были), что бы через какое то время уже по имени можно было вспомнить назначение переменной или процедуры.
Комменты желательно применять почаще. Потеря времени на написание комментариев потом с лихвой компенсируется читабельностью кода.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.12.2009, 13:04   #8
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Если ТЗ в электронном виде - то копирую ключевые моменты и добавляю комментарии требующие согласования. Иногда какие-то схемки набрасываю на листах.
Их легче носить и согласовывать, и потом только вычеркивай.
Код стараюсь раскладывать поудобнее для быстрого поиска и использую осмысленные наименования, в том числе и модулей. Комментирую его по минимуму, только если сразу не ухватишь мысль по коду ( например большой код модуля ).
и в общих модулях.
Про исправления: если в одном проекте то легче, влияние сразу видно - если не правлю сразу то пометка.
В общих классах, функциях, если исправление внутри и не повлияет на поведение внешнее то сразу правлю ( проверив на конкретном проекте ).
Если затрагивается внешнее поведение, то сперва реализую переопределение в одном проекте или создаю дополнительную функцию ( класс ) ( типа обратной совместимости )
s.Creator вне форума Ответить с цитированием
Старый 01.12.2009, 14:40   #9
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Если проект большой и сложный (во всяком случае по моим меркам).
То сначала беру чистый лист бумаги. На нем записываю название будущей программы (обычно отражает что должна делать данная программа). Потом пишу, что должно быть точно реализовано (без чего эта программа бесполезна). Потом по пунктам в двух словах пишу, побочные задачи, которые необязательны, но придают удобство в работе с программой и дополнительную функциональность.
Прикидываю примерно в уме, какие фунции писать, как назвать. Иногда также на этом же листке записываю.
Потом смотрю, есть ли такие же программы, чего в них не хватает, по необходимости дополняю список основных задач на листке.
Потом запускаю среду программирования, например Дельфи, называю латинскими буквами более менее осмысленно (вначале всегда буква P).
Также все компоненты вначале названия имеют свой префикс: например, Label - Lb; Edit - E; SpinEdit - SE и так далее. Все переменные тоже имеют осмысленные названия.
В конце каждой процедуры или функции пишу в комментах название процедуры, например: {ScanLineToPixel}. Это делается для того чтобы легче было ориентироваться в коде.
Также для удобства использую различные дополнения к IDE Delphi, например: CodeRush и GEexperts. (для быстрого ориентирования в коде, форматирования кода, несколько буферов обмена и такое прочее).
Комментировать код тоже не следует забывать, хотя я сначала пишу код, а потом комментирую, но это не совсем правильно. Более правильно, сначала написать комментарий что именно будет сделано, а потом писать код, и по ходу тут же писать комменты.
Если что то недописал, то в To Do List (если в Дельфи 7 во вкладке View) пишу, что код не докончен до конца или работает неправильно, также вверху в исходнике в комментариях пишу, что нормально работает, а что нет и такое прочее.
Специально делаю архивные копии исходников, так как бывает что приходится вносить серьезные изменения в программе и если что то не так напишешь, то приходиться возвращаться к оригиналу и искать ошибку.
Также для этого после каждого серьезного действия или нового добавления кода, надо проверять через showmessage или просто в Memo или файл, промежуточные результаты работы программы.
Как уже говорили, если с чем то сталкиваешься впервые и код сложный, то лучше создать несколько проектов и в них испытать, а потом соединить все это в основном проекте, ошибок будет меньше и быстрее выявляться будут.
Комментарии необходимы, так просматривать легче например в Notepad++.
P.S. Вкратце примерно так, может быть что-то где-то кому-то покажется неудобным и лишним, но все зависит от индивидуальных особенностей личности. НО что является главным при написании сложных проектов, так это четкое понимание ЧТО пишем(какая "категория" программ), ДЛЯ ЧЕГО пишем (какая функциональность, уникальность), ЧТО ВАЖНО в программе, а что нет (то есть то от чего можно отказаться и не зацикливаться, если совсем не получается или время поджимает).
В целом главное писать код, а потом со временем когда надоест мучаться разбираться в своих беспорядочных записях (а такой момент рано или поздно наступает), то придет и привычка "раскладывать все по кирпичикам" и писать комментарии.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 01.12.2009, 14:43   #10
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

А я сразу с коментами пишу и всё понятно, к примеру:

Код:
{ ************************************************************************* }
// Поиск в Google
procedure TfrmMyBrowser.edSearchKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    btnSearchClick(self);
    edSearch.Clear;
  end;
end;

{ ************************************************************************* }
// Поиск по странице
procedure TfrmMyBrowser.edSearchAndHighlightKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    btnSearchAndHighlightClick(self);
  end;
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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