|
|
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
Файлы Excel, весьма небрежно набитые вручную сотрудниками компаний, необходимо загружать на SQL сервер. Данные каждой компании обычно перед загрузкой очищаются от нежелательных знаков, некоторые поля дробятся, например ФИО в Фамилия, Имя, Отчество или наоборот сливаются в одну колонку, затем проводится сравнение с другими данными и т.п. Поставили задачу разработать программу для облегчения загрузки этих данных. Особенность дизайна в том, что заранее неизвестно какие данные и как необходимо обработать, все зависит от текущих обстоятельств. Обстоятельств может быть много, но их количество ограничено. Для успешной работы программа должна определить тип данных, например почтовый индекс, номер телефона или дату, затем провести ряд процедур для определенных в каждом случае полей по определенному набору правил в зависимости от требований заказчика или обстоятельств. Прошу участников высказать замечания по проектированию такой программы. Может, кто знает прототипы, которые можно взглянуть, посмотреть. Как проектировать такую программу? Определять типы «на лету», проводить валидацию, создавать класс динамически и применять к нему управляемый (плагины?) набор правил? Пока вижу только такую схему. Прошу вашего совета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 03:26:51 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
n_string, Отобрать у сотрудников Excel, предоставить формы ввода в БД с валидацией. По мере возникновения новых обстоятельств - слегка править (перенастраивать, переконфигурировать) эти формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 08:52:06 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 10:00:17 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherОтобрать у сотрудников Excel...Отобрать у сотрудников Excel не получиться. Это в своем большинстве адреса клиентов компаний-заказчиков, которые составлены уже задолго до того, как попадают к нам. ShSergeЭто дело успешно решается с помощью xsd.Скажу больше, прототип такой программы я уже написал на основе DataTable, и он активно используется в работе. Однако налицо некоторые проблемы, связанные в основном с обработкой данных. Это зашитые в коде «правила», перегруженная методами логика, сложность расширения и поддержки. Просматриваю паттерны от GoF , но пока не могу найти ничего подходящего. В идеале мне нужен гибкий конструктор правил, которым можно управлять из UI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 11:15:49 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
Current object model: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 11:16:59 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
n_stringОднако налицо некоторые проблемы, связанные в основном с обработкой данных. Это зашитые в коде «правила», перегруженная методами логика, сложность расширения и поддержки. [...] В идеале мне нужен гибкий конструктор правил, которым можно управлять из UI Не нравится мне эта идея. Смотрите: есть некая сложная логика, сейчас зашитая в код. Пусть мы сделаем ее через UI. Но сложность-то логики обработки никуда не денется. Значит, настроить UI будет по сложности сопоставимо с теперешним зашитым кодом. А сложность кода самого UI будет еще выше. А самое противное, что при развитии системы мы бедм неизбежно упираться в то, что она не может. И тогда, чтобы сделать сложную настройку, вместо жесткого кодирования сложного кода, придется дорабатывать суперсложный UI, чтобы дать возможность сделать сложную настройку. Я хочу выразить мысль, что сопровождение этой системы может оказаться сложнее, чем исходной. Если уж нужна предельно гибкая обработка, верификация и трансформация информации, я бы включил в систему препроцессор на каком-нибудь скриптовом языке, например Perl, и подготовил набор скриптов для каждого формата входных данных. Возможности обработки ничем не ограничены: имеем полноценный язык. Продумать нехитрую иерахию классов-конвертеров, общее вынести в предков, конкретику в потомков. Скрипты для порядка положить в CVS (вот еще радикальное преимущество перед галочками UI). Добавлять и корректировать по мере обнаружения новых потребностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2010, 00:27:07 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
Да действительно логика получается сложная. Но в моем понимании если количество вариантов ограничено, то мы можем создать подобный интерфейс, то есть, грубо говоря, предусмотреть все возможные варианты. Если откровенно передо мной ранее никогда подобной задачи не стояло и конечно мне пришлось решить немало вопросов. Идет третий месяц разработки этой программы, я сделал альфа релиз, но для работы неподготовленных пользователей он не подходит, для работы с программой нужны хотя бы начальные профессиональные знания. На данный момент я создал sophisticated анализатор, провел тестирование, максимальная погрешность составляет 5-10%, что вполне приемлемо в моем случае. Для пользователя вывожу контрольную форму, в которой в понятной пользователю форме отображаю результаты работы анализатора, пользователю остается только подтвердить или в некоторых случаях поправить результаты. Таким образом, я решил type definition. На очереди логика приложения, на данный момент возникла небольшая задержка, потребовали более развитый UI, и я занимался прикладными функциями, но на этой неделе подойду вплотную к формированию логики. Как я это буду делать - этот вопрос меня мучает до сих пор, но первые выводы я уже сделал: -создать logic-builder module, с помощью которого будет строиться логика; -создать гибкий интерфейс, способный обрабатывать все возможные вариации логики; Cane Cat FisherЯ хочу выразить мысль, что сопровождение этой системы может оказаться сложнее, чем исходной.Без сомнения до какого-то момента потребуется интенсивное сопровождение программы. В любом случае это оправдано, программа заменяет работу целого отдела из 4 человек, и в кулуарах уже слышен ропот, но что поделаешь, прогресс :) PS. Моя цель уйти от "консервации" методов обработки в коде. Ваши соображения? Как построить дизайн? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:00:29 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
Я бы выделил типовой функционал ( а ля разбить ячейки / мат действия итд) и запихал бы это в визуальный редактор формул ( а можно и средствами экселя это и вычислять) + можно сделать таблицы замен/регэкспы остальное сказать чтобы правили вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:38:40 |
|
||
|
Помогите спроектировать такую программу
|
|||
|---|---|---|---|
|
#18+
n_stringФайлы Excel, весьма небрежно набитые вручную сотрудниками компаний, необходимо загружать на SQL сервер. Это будет пол-задачи. Даже если постановка будет реализована тебе надо будет нормализовать этот мусор, определить ограничения и продумать схему в конце концов. Может действительно лучше создать ХОРОШУЮ МОДЕЛЬ и наполнить её тем что есть. По второму пункту конечно тоже должна быть соотв. оплата, но мне кажется этот сценарий более правильный чем бездумная загрузка в базу всякого мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 22:07:48 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36687879&tid=1343621]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
172ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 433ms |

| 0 / 0 |
