|
|
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
UK0IAI "...Система Диагностики Принятия Решения" К этому, очевидно, когда-нибудь придут. Вот только, я думаю, нескоро. Себе я ставлю задачу попроще. Научиться проектировать красивые БД и писать надежные интерфейсы к ним. Либо способстовать созданию оных. А уж исследование операций, data mining и прочее - это все в 2050 г. будет, не раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 19:21 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Мне тоже импонирует компонентный подход, но затраты в "50%-100% сверху" - ведь не всю функциональность, к-рая может неожиданно или внезапно потребоваться в будущем можно предугадать, например, возможны изменения в бизнесе, при к-рых ГУИ может сильно измениться или вообще могут не понадобиться целые подсистемы (это, кстати, нормально и к этому надо быть готовым - тем более, что заказчик платит), т.е получается, что твоя функциональсть "сверху" - это потенциально работа впустую Для GUI - да... но речь не только о ГУИ, разумеется, я приводил примеры. если же тот же самый программист будет добавлять эти же ф-ии спустя пол-года, то ему потребуется время, сравнимое со временем первоначального написания оного Пример, к-рый ты привел funikovyuri добавлением функций/объектов в диалог - это можно сделать и по требованию заказчика-пользователя. При чем не ясно почему потребуется "время, сравнимое со временем первоначального написания оного". IMHO такие временные затраты - результат отсутствия или плохого управления изменениями и документирования проекта, т.е "влез в свою же программу спустя год, а там - черт ногу сломит" Да нет. Вот я привел выше пример с автоматически генерируемым в run-time диалогом выбора - балонном-шариком а-ля MS Office 2000 и выше. Даже при самой-пресамой наилучшей документации, при возвращении к этому компоненту спустя пол года потребуется: 1. вероятнее всего другой программист (первый может уже уйти на другую работу) 2. Вникание в суть, разборка с кодом, даже по наилучшей документации минимум 2 часа (на полное "впитывание", это не мышкой пару контролов бросить). 3. 1-2 часа на кодирование и оперативное тестирование. 4. 1-2 часа на документирование дополнительно возникших фич. 4. активное тестирование в юните и в используемом ПО - 3 часа. Итого - день убит, при САМОМ лучшем раскладе. А если "предвидеть" очевидные напрашивающиеся доработки, то в процессе первоначальной разработки потребуется только лишь дополнительное время на п.3, и то, как правило, когда все делается сразу, автор тратит на дополнительное кодирование гораздо меньше времени (просто он уже "въехал в суть", и он "тепленький"). В приведенном примере доп. кодирование может занять вообще дай бог 1 час... Вот и сэкономили день. В разрабатываемом продукте таких мелочей обычно десятки и десятки. А это ого-го, в конечном итоге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 22:37 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Tulenev просто есть известная быстрая модель той же деревяшки, но ее мало кто юзает, из-за лени IMHO расскажите подробнее, пожалуйста nodes(id, any_app_fields) - сами узлы links(parent_id, child_id, metric) - связи таблица links хранит все связи от некоего со всеми его парентами, для непосредственного родителя metric=1 разумеется, что чем глубже дерево, тем больше избыточность какие проблемы решаются: - выбор без рекурсии всех подчиненных узлов от некоего - выбор без рекурсии полного пути к узлу - как следствие из 2-х предыдущих - выбор подчиненных узлов с ограничением вложенности, тоже самое насчет пути - как очередное следствие из 2-х первых - строить выборки одно удовольствие, скорость работы этого хозяйства - максимально достижимая - уже присутсвующее поле metric помогает в визуальном оформлении отчетов (просто сдвигаем некое поле пропорционально этому значению) какие проблемы создаются: - избыточность, однако, учитывая размерности обычных папок и каталогов - это не проблема - целостность, парочка доп. движений требуется при модификации дерева - в 1С все свалено в одну таблицу в иерархических справочниках, а тут - три таблицы (плодим объекты, см. далее) для уменьшения избыточности делаю обычно следующее: - таблица, например products - содержит код папки, в которой этот продукт обитает, т.е. в каждой папке - куча продуктов (и так все иерарх. справочники, а-ля обычная файловая система) - папки хранятся в таблице типа nodes - связи, в links для борьбы со сложностью и в целях унификации этого дела нужно добавить таблицу, в которой регистрировать все деревья в системе, так же добавить процедуры для создания, переименования и удаления деревьев... собрать до кучи все это хозяйство на базе вместе с клиентскими классами самих деревьев, а так же класса менеджера деревьев, плюс заготовки отчетов, задокументировали (лишь однажды, какое счастье) - вот и получили решение для многократного использования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 01:55 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 vdimas В чем прелесть структуры с только ParentID? А в том что дерево моментально перестраивается. А в вашем случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 10:11 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
...Помнится AscRus про такое дерево неплохо написал. Вообще эти все структуры, связанные с деревьями напоминают способы задать графы. Можно их задавать матрицей, а можно - списком примыканий. А способ, каким задавать зависит от "характера" графа и от задачи, которую с его помощью надо решать. В реляционных структурах получаются довольно похожие варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 12:23 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
На эти отношения в таблицу также вписывается вся цепочка от родителя до корня с значением флага 1. Денормализация на лицо - чем глубже дерево, тем больше растет таблица. - вот это мне очень не нравится. В принципе он делал так лишь из-за урезанности языка запросов в Sybase. Хорошо было бы воспользоваться типизированными таблицами для организации деревьев. Просто так разбираться с этим мне влом. Но если б был проект, и за него бы платили, я б взялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 13:13 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
gardenman "он делал так лишь из-за урезанности языка запросов в Sybase." Это у него самого надо спросить относительно мотивов использования этой структуры, а не строить предположений. А за "урезанность" можно и ответить :-). Думаю, что язык запросов в Sybase не более "урезан", чем в других распространенных СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 13:32 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
select ... where (f1,f2) in (select f1,f2 from...) - такая конструкция в Sybase невозможна select * from (select * from t1 where ...) as t2 - такая конструкция тоже невозможна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 13:48 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
про рекурсивный SQL я вообще молчу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 13:48 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
gardenman Вообще меня в этой ветке интересуют рекомендации, как сделать более надежную "программную систему" , а не преимущества или недостатки тех или иных СУБД. Этот вопрос можно обсудить в разделе "Сравнение СУБД". Вот если б ты привел пример, как какая-нибудь фича DB2 делает ПО БД более устойчивым, красивым и гибким, то это было б интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 14:08 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Чтоб проект не протух надо: 1) Иметь средства коллективной разработки к которым прежде всего относится whiteboard (доска) 2) Иметь опыт 3) Прислушиваться к чужому мнению 4) Иметь перед глазами пример (хотябы и неудачный) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 14:55 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
40% учиться 20% работать 40% отдыхать И перестань тут (в И-нете) торчать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 15:40 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
mv , Это ты кому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:13 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
mv Если ты это мне, то я тут не "торчу", а общаюсь и получаю ценную информацию. А в реале за такие слова и схлопотать недолго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:15 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
mv , а вот "торчишь" - то скорее всего ты. В нормальном состояния культурный человек себе так хамить не позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:34 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Varan Ты чего? Что mv такого обидного сказал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:42 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:42 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Извини, был груб. И, возможно, неправ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:44 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
mv , Замяли. Вот теперь видно, что ты воспитанный человек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:49 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Все помирились)) а теперь идите пить пиво )) пятница сёня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 16:58 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Ну, что, в 18:30 у метро "Парк Культуры"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 17:00 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Я Питерский) не судьба... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 17:39 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Varan: 1. мне эпиграф очень понравился. Спасибо :о) Комплимент повышает производительность женщины вдвое. /* (с) Ф. Саган */ .. Но поскольку на характеристики этой системы оказывает влияние и "проект", т.е организация процесса разработки, если я правильно понимаю, то я не буду против, если кто-то подкинет интнересную идею и из этой области. ... "организация процесса разработки" - что именно имеется в виду? "оказывает влияние" - да, процесс разработки, т.е результаты его использования, выраженные в показателях могут оказывать влияние на предмет (например, план), с к-рым работает методология УП. Например, профессиональная команда может правильно использовать оптимальный процесс разработки ПО и средства под него, но при этом руководство может "завалить" проект из-за неправильного управления (например, не расчитали силы); и наоборот хороший руководитель, но с плохим процессом разработки - тот же плохой результат. Методологии УП - это тема отдельного топика или даже формуа, но если "на пальцах", то понятно, что все методологии (УП, проектирования, программирования или тестирования) служат в итоге одной цели - созданию продукта, но предметы все же разные .. Себе я ставлю задачу попроще. Научиться проектировать красивые БД и писать надежные интерфейсы к ним. Здесь предмет - система, а процесс - методология анализа-проектирования-программирования-.., средства - RM, CASE, IDE... З.Ы. Опасайтесь: ваш топик может "погрязнуть" в SQL, OLAP и флейме :о) 2 vdimas: .. Даже при самой-пресамой наилучшей документации, при возвращении к этому компоненту спустя пол года потребуется: А что входит в твое понятие "самой-пресамой наилучшей документации", т.е название документа / назначение-содержание /уровень детализации? .. 1. вероятнее всего другой программист (первый может уже уйти на другую работу) 2. Вникание в суть, разборка с кодом, даже по наилучшей документации минимум 2 часа (на полное "впитывание", это не мышкой пару контролов бросить). Согласен, что все это нужно для качественной работы, но вот откуда взялась оценка "минимум 2 часа"? Т.е какая именно функциональность или сложность имеется в виду? Потому что за "..автоматически генерируемым в run-time диалогом выбора" может скрываться что угодно .. 3. 1-2 часа на кодирование и оперативное тестирование. 4. 1-2 часа на документирование дополнительно возникших фич. 4. активное тестирование в юните и в используемом ПО - 3 часа. Но эту же работу (затраты) придется делать, если эта функция c балонном-шариком будет реализована тобой не полгода спустя, а раньше, когда ты работаешь "про запас" или если раньше, то значения этих показателей(часы) будут меньше? .. когда все делается сразу, автор тратит на дополнительное кодирование гораздо меньше времени (просто он уже "въехал в суть", и он "тепленький"). Я бы не торопился с выводами по поводу эффективности твоего подхода, т.к нужно послушать, что ты считаешь наилучшим для "въезжания в суть" спустя полгода... .. В приведенном примере доп. кодирование может занять вообще дай бог 1 час... Вот и сэкономили день. "вообще дай бог 1 час" - старый вопрос: что именно имеется в виду? 2 gardenman: 1) Иметь средства коллективной разработки к которым прежде всего относится whiteboard (доска) Код: plaintext 1. 2. 3. 4. Мне довелось работать в паре контор, где были доски и им предавалось важное значение как раз для коллективного обсуждения, но как показывает здравый смысл и практика достоинства доски сильно преувеличены, т.е именно для рисования схем, диаграмм и обсуждения, а не для проведения семинаров, где нужно написать несколько строк, т.к... над той же моделью или ее частью всегда работает и отвечает за нее только 1 человек, т.к в противном случае - один разработчик будет "переписывать" работу другого или бесконечные compare & merge; переносить даже небольшие модели с доски/бумаги в CASE-средство или наоборот - зачем это нужно, если все можно сразу делать в CASE-средстве и при необходимости выводить на печать или на проекционный экран; нарисованные на доске диаграммы и тексты даже с использованием тонких цветных маркеров хуже и неразобрчивее, чем нарисованные в CASE-средстве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 18:57 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Репликант, так вы - женщина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 19:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32424137&tid=1546521]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 443ms |

| 0 / 0 |
