Дайте дельный совет

  • Автор темы Mihail777
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

Mihail777

Пришёл на предприятие, здесь всё заведено на прогу (скриншот), две недели пытался разобраться с глюкми и понял что нужно переписывать заново. Хотелось бы услышать парочку дельных советов… Стоит ли вообще заморачиваться с клиент-сервр.. да и вообще.. Просто опыта у меня очень мало, только универ закончил, причём не чисто программирование, а прикладная информатика. Вот некоторое подобие ТЗ:

Выставления 2.0

Состав программы:
1. Главный модуль, он же модуль администрирования – все функции по просмотру, редактированию. Отсюда производится общий расчёт выставлений.
2. Модуль контролеров – занесение информации в БД

Функции
1. Отображать информацию по занесённым квартирам, показывая информацию об установленных счётчиках, проживающих льготниках, о датах оплаты, о тарифах
2. Рассчитывать, учитывая льготников и тарифы, суммы выставления, долг.
При этом расчёт производиться как бы в фоне и возможна остановка операции. Необходимо возможность считать выборочно несколько домов или квартир. При возникновении ошибки, событие должно записываться без остановки программы и по окончанию расчёта должен показываться отчёт.
3. Составлять отчёты по выставлениям, должникам, контролерам, тарифам, по льготникам, реестр квитанций.
4. Загружать льготников, оплаты, субсидию.

Желательна работа по принципу клиент-сервер, для дальнейшей масштабируимости.
 

Вложения

  • proga.GIF
    proga.GIF
    51 КБ · Просмотры: 386
B

Barmutik

Если работают несколько распределённых клиентов с одними данными то однозначно придётся использовать клиент серверную архитектуру...

Так а что конкретно посоветовать ? Стоит задача разработать банальную базу данных.. подробнее написать ТЗ, определится с объёмами данных, бвырать сервер баз данных и начинать разработку...
 
?

????

<!--QuoteBegin-Mihail777+16:08:2006, 02:33 -->
<span class="vbquote">(Mihail777 @ 16:08:2006, 02:33 )</span><!--QuoteEBegin-->и понял что нужно переписывать заново.
[snapback]42275" rel="nofollow" target="_blank[/snapback]​
[/quote]
а зря,
 
M

Mihail777


Аргументируй пожалуйста? Просто там куча мелких багов, которые отловить будет очень сложно. Не такая уж болшая прога, можно и переписать попробывать. на предприятии пока с той нормально работают, матерятся но работают =) Так что кое какое время есть....

И ещё, помогите с литературой про клиент серверную архитектуру и серверы бд? Моих знаний явно недостаточно... :) Буду учиться.
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Я бы тоже посоветовал не переписывать. И это дельный совет. Существует одна программисткая, так сказать, мудрость: "Любая программа пишется дважды". И очень часто она верна, даже в том случае если программист четко представляет задачу и имеет опыт подобных проектов. Учесть все нюансы при проектировании, даже при наличии не малого опыта, очень сложно. У Вас я как понял опыта нет совсем. Отловить баги будет полегче даже в чужом не документированом коде. Заодно
и изучите предметную область.
 
M

Mihail777

Я собственно и затеваю это что бы подучиться, на практике понимание лучше приходит. Предыдущий человек сам на ней, в общем, то учился писать под БД, и сделано там всё довольно криво, даже с учётом своих не богатых познаний, я могу об этом судить...
То есть я хочу сделать по правилам, уже не раз убеждался, что если делать "по правилам" в 8 случаях из 10 у тебя получится лучше, чем самодеятельность...

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

Хочу ещё спросить вашего мнения вот по какому вопросу: Сейчас 15 с половиной тысяч жителей общитываются примерно пять-шесть часов, это нормально?


Так всё же, что мне посоветуете почитать по теме?

Если кому интересно, вот алгоритм расчета
Для одного счета:
1. выбираем счетчики за месяц
2. для каждого счетчика выбираем показания за текущий месяц
3. Определяем сумму квт вычитая предыдущие показания из текущих. Считаем итого_квт
4. Записываем в таблицу «Временный расчет»: тариф, норма=квт, приоритет.
5. выбираем льготников по счету. Записываем в таблицу «Временный расчет»: тариф, норма, приоритет. Высчитываем норму для всех=итого_квт, на одного=(1/колво человек)*итого_квт
6. упорядочиваем тарифы по приоритету.
7. итого_квт2=итого_квт. цикл пока итого_квт2>0, для каждого тарифа если итого_квт2>=норме, то квт=норма и итого_квт2=итого_квт2-норма, иначе квт=итого_квт2.
8. Вычисляем сумму выставления.
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
<!--QuoteBegin-Mihail777+17:08:2006, 01:08 -->
<span class="vbquote">(Mihail777 @ 17:08:2006, 01:08 )</span><!--QuoteEBegin-->Хочу ещё спросить вашего мнения вот по какому вопросу: Сейчас 15 с половиной тысяч жителей общитываются примерно пять-шесть часов, это нормально?
[snapback]42340" rel="nofollow" target="_blank[/snapback]​
[/quote]

Вы там случаем не балистическую траекторию полета не Нептун расчитываете?!
 
M

Mihail777

нет =) алгоритм расчёта выше.. компьютер с процом 2.8 с гигом оперативки. Считает ровно столько сколько я написал. При этом базу специально для расчёта копируем на него..
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Что то я не понял про цикл, но в любом случае 5-6 часов это слишком, очень слишком.
 
R

Rafael

Думаю, следует переписать прогу.
Вначале спроектировать нормальную структуру БД.
Собственно, от того как сформируешь БД, так и будет работать скорость обработки данных.
"Не писать", это для ленивцев. :) А тебе, как начинающему будет весьма полезно.
Еще посоветовал бы "нарисовать" прогу на бумаге, а потом уже браться кодировать.
 
B

Barmutik

Как правильно указал Вам Kmet .. такая скорость расчётов абсолютно не приемлима .. на таком объёме данных я думаю рассчётное время работы Вашей программы по Вашему алгоритму будет в пределах 10 минут точно .. на любой базе данных... а если изгольнутся с так и в 3-4 минуты можно уложится ...

Судя по Вашим словам в программе ничего сложного нет ... да и на такой простой задаче учится будет попроще чем на крупном проекте ...
 
?

????

<!--QuoteBegin-Mihail777+17:08:2006, 02:08 -->
<span class="vbquote">(Mihail777 @ 17:08:2006, 02:08 )</span><!--QuoteEBegin-->общитываются примерно пять-шесть часов, это нормально
[snapback]42340" rel="nofollow" target="_blank[/snapback]​
[/quote]
:)
тогда я тебя понимаю

А что за БД? И как реализованы пункты 1-3 : циклами или одним запросом?
 
M

Mihail777

Всем привет! Пункты 1-3 реализованы циклами, вообще как я понял вычисления в запросах не используются вообще.
База данных PARADOX.
Хотел бы ещё узнать ваше мнение по поводу базы, то есть на сколько я понимаю она вполне адекватна , то есть без избыточности.
Вот если кому интересно, инфологическая и датологическая модели...
 
B

Barmutik

А сипользовать какое-нибудь специализированное средство не пробовали .. а то в Ворде как-то ...

Я бы посоветовал Вам пользовать MS SQL Server 2000-2005... легко ставится настривается.. хорошо работает с ним из Дельфей .. вообщем как мне кажется для Вашего проекта самое то ...
 
M

Mihail777

А сипользовать какое-нибудь специализированное средство не пробовали .. а то в Ворде как-то ...

Я бы посоветовал Вам пользовать MS SQL Server 2000-2005... легко ставится настривается.. хорошо работает с ним из Дельфей .. вообщем как мне кажется для Вашего проекта самое то ...

Эта схема ещё до меня делалась...
Вы немогли бы дать какие нибудь ссылки на информацию о MS SQL Server 2000-2005?
 
M

Mihail777

Я окончательно убедился в выборе.. делаю всё сначала :)

существуют каки либо не дефолтовые компаненты для работы именно с MS SQL?

И где взять подробное описание FastReport? точнее как его использовать а не просто что к чему...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!