Подскажите как грамотно разрабатывать

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Подскажите как грамотно разрабатывать

Сообщение resident » 31.03.2013 14:19:32

Я не программист. Прочитал книжку по Делфи и поставил Лазарус, так как он бесплатный. Но там все примеры в книге заканчиваются на одной форме. Я думаю, что от меня что-то скрывают. :lol: Нет общей картины, как разрабатывать крупные проекты.
В качестве упражнений придумал себе проект. Подскажите, пожалуйста, по следующим пунктам:

1) Проект, как я подозреваю (но не уверен), должен быть разбит на вычислительную часть и интерфейс. Вычислительная часть должна состоять из объектов. Интерфейсная должна использовать различные объекты, передавать данные между ними и пользователем.

2) Допустимы ли в интерфейсной части (модули форм) какие-то вычисления и логика? У меня будет несколько объектов и мне нужно не то чтобы вычислять что-то в форме, а нужна логика. Например, считать текст в одном LebeledEdit и загнать его в объект первого класса, из этого объекта вычисленные данные перекинуть в объект другого класса и только после этого загнать туда тексты с других LebeledEdit. Т.е. все должно происходить логически. Допустимо ли это?

3) Как разрабатывать классы и потом собирать их в будущем в целевом проекте? Сейчас под каждый класс (каждый в отдельном модуле) создал папку и там делаю мелкий проект, чисто под разработку класса. Потом в будущем планирую скопировать все модули классов в одну папку целевого проекта. А можно ли сделать по другому? Уже сейчас разрабатывать всё в одной папке и в этой же папке создавать несколько проектов (целевой и для каждого класса)? Т.е. получиться, что модуль класса (файл на диске) будет использоваться в двух проектах: сначала в тестовом для класса, а потом и в целевом.

4) Где держать константы класса? Есть таблицы и просто константы. Я их выношу в созвучный с классом модуль. Т.е. получается umyclass.pas и umyclassconst.pas

5) Как делать резервные копии? Сейчас просто копирую папку с проектомами и присваиваю её номер. Таким образом наплодилось уже несколько десятков папок. Подозреваю, что это не правильно.

Вот :roll:
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Подскажите как грамотно разрабатывать

Сообщение bormant » 31.03.2013 14:31:36

Как делать резервные копии?
Для хранения промежуточных состояний проектов придуманы VCS -- Version control system -- системы управления версиями, например, git, mercurial, svn, csv, ... Но бэкапа они не отменяют -- только уже состояния VCS.
Аватара пользователя
bormant
постоялец
 
Сообщения: 408
Зарегистрирован: 21.03.2012 11:26:01

Re: Подскажите как грамотно разрабатывать

Сообщение alexey38 » 31.03.2013 19:03:07

resident писал(а): Проект, как я подозреваю (но не уверен), должен быть разбит на вычислительную часть и интерфейс.

Да. Это очень важно. В малом проекте незаметно. В большом иначе невозможно.
resident писал(а):Допустимы ли в интерфейсной части (модули форм) какие-то вычисления и логика?

Нужно стараться избегать.

Добавлено спустя 5 минут 52 секунды:
resident писал(а):Вычислительная часть должна состоять из объектов

Постарайтесь вначале максимально обдумать саму задачу. Систематизируйте ее. Выделите в ней смысловые объекты. Смысловые взаимоотношения и бизнес-логику.
Программирование и построение программных классов начинайте после того, как будет полностью ясна задача, систематизирована. Важно выделить что первично, что вторично. Пользовательский интерфейс - важная штука, но это не самоцель. Надежность работы бизнес-логики намного важнее, чем красивый окошки. Обдумайте вопросы надежности работы, какие нужно сделать взаимные проверки. Как избежать порчи данных хранимых в файлах или в БД. Главное чтобы логическая ошибка в программе или в действиях пользователя не привела к потери всей ранее введенной информации, к ложным результатам и т.п.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Подскажите как грамотно разрабатывать

Сообщение debi12345 » 31.03.2013 20:32:49

Вопрос-шутка :) Воообще-то вся наша професиия зиждется на неустанном САМОобразовании :)

Добавлено спустя 1 минуту 55 секунд:
Где держать константы класса? Есть таблицы и просто константы. Я их выношу в созвучный с классом модуль.

Тогда это обычные константы, а не какие классовые. Выносить их в отдельный модуль есть смысл если планируется использвовать эти константы в нескольких других модулях.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Подскажите как грамотно разрабатывать

Сообщение STAKANOV » 01.04.2013 09:40:26

Рекомендую книгу : Гради Буч. "Объектно-ориентированное проектирование с примерами применения" (1992 г.)
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Re: Подскажите как грамотно разрабатывать

Сообщение resident » 02.04.2013 10:06:37

Спасибо за ответы :)
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Подскажите как грамотно разрабатывать

Сообщение Frolik » 02.04.2013 11:11:29

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

У меня была ошибка в программе. Детская ошибка, но торопился и не заметил. При определенных условиях новая вводимая накладная могла затереть предыдущую. И ничего, год перебивали по новой накладные, считая, что так и должно быть. Сам нашел этот косяк случайно, когда тестил новую опцию. Фиксилась двумя действиями: вырезать-вставить.
Как делать резервные копии?

Под win есть расслабляющая вещь: TortoiseSVN. Установка в два клика. К ней русский перевод. Для локального применения большего не нужно.
Frolik
постоялец
 
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Re: Подскажите как грамотно разрабатывать

Сообщение B4rr4cuda » 04.04.2013 17:07:55

Frolik писал(а):Под win есть расслабляющая вещь: TortoiseSVN. Установка в два клика. К ней русский перевод. Для локального применения большего не нужно.

Для локального (и не только) применения под вин еще есть не менее расслабляющая вещь, где сорцы собно и будут храниться.. А черепашка уже для полного релакса)
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Подскажите как грамотно разрабатывать

Сообщение Frolik » 04.04.2013 19:33:32

B4rr4cuda, они в связке хороши.
Frolik
постоялец
 
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Re: Подскажите как грамотно разрабатывать

Сообщение resident » 04.04.2013 22:21:14

Похоже то что мне и требуется. Буду изучать. Спасиб :)
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Подскажите как грамотно разрабатывать

Сообщение Alex2013 » 05.04.2013 13:30:29

Как делать резервные копии?

Думаю тут ожидают ответ попроще..

В простейшим случае просто сохранять проект в отдельный каталог
и паковать его целиком . Но более отдаленную перспективу сохранять вместе
с проектом копию рабочей версии лазаруса причем как инсталляцию так и упакованный каталог установленного лазаруса (среда "живая" новые версии выходят довольно часто и найти потом именно ту на которой велась разработка с теми же компонентами может быть сложно .)
resident писал(а): Проект, как я подозреваю (но не уверен), должен быть разбит на вычислительную часть и интерфейс.


Не всегда, есть проекты где вычислительной части как таковой просто нет
(Например обучающие программы и различные надстройки над БД)
resident писал(а):Допустимы ли в интерфейсной части (модули форм) какие-то вычисления и логика?

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

Кроме того удобно использовать DLL или разбить программу на отдельные функциональные модули-плагины запускаемые из основной оболочки.
Отлаживать сравнительно небольшой почти независимый модуль бывает гораздо проще. Тем более в сравнительно слабо документированном и - Увы! - часто "условно совместимом с Дельфи " Лазарусе.

ЗЫ
Еще существует альтернативный LCL набор компонентов KOL+MSK для Лазаруса
к которому есть множество расширений
Alex2013
долгожитель
 
Сообщения: 3148
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 244

Рейтинг@Mail.ru
cron