powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как не сделать "вонючий" проект?
25 сообщений из 100, страница 2 из 4
Как не сделать "вонючий" проект?
    #32421634
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Про четкую муру в проекте. Я видел одно ТЗ. Там на протяжении трех страниц описывалось, какие значения присваиваются полям суррогатные ключей. Как будто identity еще не изобрели.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32421672
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 gardenman

Проектирование баз данных - это практически искуссво.
Я заметил, что никакая теория в этом процессе практически не помагает.
Главное - опыт. Опыт, который помагает правильно разложить модель
по таблицам, таким образом, чтоб все работало быстро и правильно,
и чтоб струтура действительно соответствовала тому, чего надо получить.


Да, действительно. Взять, например, хранение того же самого иерархического справочника (деревяшка). Если брать самое простое и минимальное решение (в каждом узле храним Parent) - то оно и есть самое неудачное. Удачное же решение для деревяшек требует некоторых трудозатрат... Однако, удачное решение гораздо удобней использовать и оно быстро работает... Берем параметризируемый скрипт для БД, берем базовый класс-сущность-деревяшку (скажем, на C#, с конструкторами, принимающими интересующие имена таблиц и полей хранимой деревяшки), отлаживаем все это... И получите готовый компонент, который можно рассматривать как кубик в LEGO.

Еще пример.
"Классическая" разработка под БД подразумевает обкладку базы всевозможными ограничениями как танка броней... Ну просто замечательно, и сердце радуется, глядя на всю эту классическую строгость... особенно на этапе разработки и отладки... Однако, без оных ограничений можно увеличить быстродействие OLTP в разы, иногда в многие разы (предлагаю на это высказывание не флеймить, все за и против давно всем известны). База, без ограничений и поддержки целостности, слаба и беззащитна, здесь мы только полагаемся на правильно организованные транзакции, хорошо отлаженные процедуры, триггера и клиентские запросы. Все эти вещи (хозяйство со стороны БД и клиента) надо раскладывать в законченные и независимые модули (ключевое слово - независимые), и юзать многократно сию отлаженную эффективную реализацию ...

Так вот, продолжая про компонентную ориентацию разработки...
Зачастую, именно достижение св-ва "независимости" для модуля тоже требует неких дополнительных трудозатрат, ибо почти всегда означает расширение интерфейса компонента (будь то процедуры БД или запросы, определения классов или интерфейсов в ЯП), которые дополнительно организуют и делают то, что в закрытой и сильносвязанной системе происходит "внутренним образом". Все это ведет к дополнительному продумыванию способов взаимодействия компонентов, дополнительному документированию и т.д...

Однако! (я уже как-то упоминал это, но был раскритикован Репликантом), используя набор компонент, используя некий отлаженный фреймворк, на самом верхнем уровне (на том самом прикладном уровне), можно уже будет поиграть в XP. XP весьма неплох там, где под ним покоится мощный и надежный базис (отлаженная среда и компоненты). XP - это просто стадия макетирования и обсуждения деталей вместе с заказчиком... Только макеты никто не выкидывает, ибо они сразу являются работоспособными...

--------
Бизнес-анализ... Да... крутая штука, особенно если к середине проекта заказчику начинают приходить интересные мысли одна за одной... Да причем такие, которые самый опытный аналитик бы не предвидел... скажем, мысли о возможности переделать часть бизнеса, путем введения поддержки реализации этой гениальной мысли в разрабатываемый продукт. Вот тут-то и спасает компонентный подход и некое "резервирование" возможностей.

Почему самой массовой является 1С?
А почему дети любят кубики?
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32421921
d'n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
d'n
Гость
2 Jimmy: намек с мартышкой относится ко мне, но я считаю, что не все, кто использует RUP - мартышки. ну а испохабить все можно, согласен.
2 Varan: если вопрос стоит по затачиванию под бд, то были темы про объектные базы, может стоит присмотреться. я же когда отвечал, имел ввиду ведение проекта в целом. возможно попал "не в тему" ;)
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422052
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Jimmy: намек с мартышкой относится ко мне...

Это - не так. Никаких личных выпадов.

Бизнес-анализ... Да... крутая штука, особенно если к середине проекта заказчику начинают приходить интересные мысли одна за одной... Да причем такие, которые самый опытный аналитик бы не предвидел... скажем, мысли о возможности переделать часть бизнеса, путем введения поддержки реализации этой гениальной мысли в разрабатываемый продукт. Вот тут-то и спасает компонентный подход и некое "резервирование" возможностей.

Бизнес-анализ - крутая штука, если его результаты согласованы и сведены в ТЗ, которое подписано Заказчиком.

А если Заказчику в середине проекта приходят светлые мысли, то нужно достать утвержденное и согласованное ТЗ и спросить Заказчика: "Как Ваши интересные мысли согласуются с тем, что изложено в ТЗ? Никак? Тогда извините... Или Вы просто наслаждаетесь Вашими интересными мыслями, а мы продолжаем работать по ТЗ, или оформляем допсоглашение за очень дополнительную плату."

PS Кстати, это реально происходит сейчас в проекте, в котором я работаю, так что все вышесказанное - не досужие мысли.

---------------
Данное сообщение содержит вирус!
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422135
а где Репликант?
я уже было приготовился этот топик до обеда читать, а после - осмысливать...
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422160
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Jimmy

А если Заказчику в середине проекта приходят светлые мысли, то нужно достать утвержденное и согласованное ТЗ и спросить Заказчика: "Как Ваши интересные мысли согласуются с тем, что изложено в ТЗ? Никак? Тогда извините... Или Вы просто наслаждаетесь Вашими интересными мыслями, а мы продолжаем работать по ТЗ, или оформляем допсоглашение за очень дополнительную плату."

Никто не спорит, что сроки и деньги остануться теими же. Но вот вопрос - как сильно они изменяться? Насколько критично для разрабатываемого продукта изменения и дополнения в ТЗ?

Что-то мой мозжечек говорит мне, что чем опытнее разработчики, тем менее это критично...

------------------
Кто-нибудь видел учетную систему, которую не пришлось бы ни разу
дополнить чем-нить? Или у всех их программы работают по 5-10 лет без единого исправления-дополнения?

Это абсолютно нереально, ибо видение заказчиком собственного бизнеса вполне объективно меняется со временем.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422163
Tulenev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vdimas
Да, действительно. Взять, например, хранение того же самого иерархического справочника (деревяшка). Если брать самое простое и минимальное решение (в каждом узле храним Parent) - то оно и есть самое неудачное. Удачное же решение для деревяшек требует некоторых трудозатрат... Однако, удачное решение гораздо удобней использовать и оно быстро работает... Берем параметризируемый скрипт для БД, берем базовый класс-сущность-деревяшку (скажем, на C#, с конструкторами, принимающими интересующие имена таблиц и полей хранимой деревяшки), отлаживаем все это... И получите готовый компонент, который можно рассматривать как кубик в LEGO.


Вы случайно не про реализацию собственного OLAP-сервера говорите? :)
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422272
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НУ блин и по написали.... И все равно пришли к моему первоначальному мнению:

bas
Все описано в принципе правильно, но к сожалению этот идел не достяжим, при проектировании/реализации проекта приходиться чем то жертовать по ряду причин: сроки поджимают, нет достаточной квалификации, нет возможности что-то приобрести(например всю линейку ALM Rational или др. фирм) и т.д. и т.п. А универсального рецепта нет, надо просто при проектировании/реализации/конторле иметь в виду все 7 пунктов и к ним стремиться.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422389
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tulenev

Вы случайно не про реализацию собственного OLAP-сервера говорите? :)
Какая связь?

просто есть известная быстрая модель той же деревяшки, но ее мало кто юзает, из-за лени IMHO
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422618
Tulenev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vdimas
Какая связь?

деревяшка == измерение OLAP-куба

просто есть известная быстрая модель той же деревяшки, но ее мало кто юзает, из-за лени IMHO

расскажите подробнее, пожалуйста
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422732
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закладывать в компоненты больше, чем требуется в конкретном бизнесс-приложении, не жалеть времени на то самое среднее звено

Позвольте две копейки добавить...

ИМХО можно юзать примерно такую методу:

1. Структура БД должна быть избыточной
2. Приложение должно включать в себя ...свой ГЕНЕРАТОР.

1. Избыточность. Допустим вам говорят - мы хотим тупо учитывать деньги (дата.... сумма). А вы про себя, никому ниче не говоря сразу закладываете..как то..

Код ресурса (из вашего мета_справочника)
Код документа (из вашего мета_справочника)
Един_измрения
Цена
Кол-во
Сумма....
И код валюты...не забудьте ищо...

И когда юзер войдет во вкус и будет мечтать о ...ценах - у вас уже все готово!! И в отчете вы сможете ...фильтроваться...по типу ресурса....или бланковки_разные туда подсовывать...

2. Генератор.
Если ваша прога имеет Генератор ЭФ, Генератор отчетов - 90% проблем позади. Но только если вы - модульны. Про другие системы не скажу - а про оракле....оракле + девелопор = все само получается. Если имена модулей ран_таймов в журнале....БД... хранить (ну и пути_файлы все знать...) ....и почти как заповедь_проповедь ....

- ЗАБУДЬТЕ о такой фиче как МЕНЮ. Юзайте аналоги, где список айтемов = всегда ДИНАМИЧЕСКИ из БД формируется...

Юзайте аналоги - Сценарии свои....имейте минимальный набор команд в этом....типа - запуск модуля.....присвоение значения глобал_переменной, условный-безусловный переход по шагам сценария.... сами удивитесь как потом легко будет ....из модулей как из ЛЕГО новый АРМ (типа) собрать..."на лету"....без ПЕРЕКОМПИЛЯЦИИ чего либо...
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422772
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Varan
....вот вспомнил...на заре так сказать...САПР проектирования технологических процессов ковки крупных поковок.....на Ижоре...10 лет создавали...
Это была ОЧЕНЬ СЛОЖНАЯ ВЕЩЬ. ЭВМ дескать...вместо...профи....все сама пыталась придумать.....И делала это!! . Только вот как? почему она именно режим_техпроцес выбирала ....а не ИНОЙ???. Черт голову сломит. И тогда (однажды... но ПОЗДНО уже ) промелькнула ИДЕЯ

А что , если прога будет иметь подсистему: "Система Диагностики Принятия Решения"?????. Вот было бы здорово, в логе все увидать - что там и как...по каким так сказать соображеньицам, Машина решение свое принимала....

Но САПР не дожил до эпохи ПК, и помер. А идея - осталась. И мне однажды удалось ее применить...

Идет расчет СЕБЕСТОИМОСТИ. Задали ПЛАН, Нормативы задали, Цены ввели - и считаем. СТОП-МАШИНА. НСИ не все подготовили. И вот тут то и всплывает один такой интерфейс.....где все сразу видно - чего и где не хватило... И можно сразу по всей НСИ пробежаться....по этапам, по маршрутам....по траектории.... значит.... расчета всего...

Система Диагностики Принятия Решения.... вот значит какая штука....
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32422856
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UK0IAI & vdimas

Т.е. я так понимаю - предлагается разрабатывать системы с функциональностью прозапас - причем за деньги заказчика. А направление, вероятно, будет указывать ведущий экстрасенс-программист?
:)
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423005
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересное замечание про "генераторы отчетов".
Никто случайно не обращал внимание на то, как часто появляются
заказы на "новый отчет". Никто случайно не пытался проанализировать
почему вдруг появилась потребность в "новом отчете"?
По своему опыту могу сказать - что в 90% случаев можно предвидеть,
что отчет в той или иной форме будет нужен и заложить его
при проектировании системы.

Как вы думаете, приятно и есть ли желание юзеру изучать
как пользоваться вашим генератором отчетов? Позволяет ли ваш генератор
отчетов вытащить любые данные? А как быстро работает ваш генератор
отчетов? Какими ласковыми словами называют разработчики юзеров
когда пользуются вашими генераторами?
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423095
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman,
Очень странная мысль. Генератор отчетов делает систему более гибкой, позволяя пользователю (или программисту) оперативно решать вопросы. Да и как можно предвидеть, что может понадобиться завтра? Вдруг макет захотят поменять, или какой-то новый специфический отчет сделать. Вам что, больше импонирует такой вариант: пользователь захотел отчет, прораммист его сделал,прораммист перекомпилил клиентский проект, прораммист пересталил его везде...Второй путь мне не кажется более простым.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423141
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 funikovyuri
А направление, вероятно, будет указывать ведущий экстрасенс-программист?

Про запас - я в первую очередь понимаю решения на уровне структуры БД. Это не трудоемко, и при наличия опыта в предметной области - не сложно.

Потом, если в БД добавляется поляна...то прога может то и "полететь", перекомпиляцию может тотальную потребовать то...а так - уже нет.

При наличии общего базиса в системе (журналы разные описывающие в БД системные вещи) - тоже хорошо, в целом в духе 7 пунктов из топика сабжа...

2 gardenman

Как вы думаете, приятно и есть ли желание юзеру изучать
как пользоваться вашим генератором отчетов?


По видимому можно и нужно делать различие. Генератор отчетов - это инструмент, прежде всего Программера - а не Юзера. Тогда прога - всего лишь может (должна) обеспечить режим автозагрузки - когда Генератор может запущен под управлением САМОЙ проги (ну просто менеджер задач....что всегда запукает ИЛИ ран-тайм ИЛИ билдер)

И Генератор это уже та самая промышленная тулза....что могучие корпорации уже много лет развивают....
оракле + девелопор = все само получается
(здесь понималось разработка приложения в системе ORACLE Developor 2000...)
Про другие системы не скажу
(не вижу никаких ограничений - для иных сред разработки, в духе этого...)

Тогда наша прога станет не просто приятной во всеъ отношениях - а еще и легкой в сопровождении и в коллективном ведение проекта...

НО, я знаю, я видел, я уверен - что прога может иметь и Юзерский Генератор Отчетов. Это уже - дело техники, мастерства программера в целом - и это - служит залогом успеха в целом - как возможный ответ автору топика на вопрос по существу - "как не сделать вонючий проект".

хотите пример - я решил это, когда отчет выходит в ексель, и в нем, "на лету", после вывода данных - создается пайлот-табле. Отличная идея и инструмент для Юзера - из исходных данных отчета - тут же другой отчет получить....Кстати, ИЗБЫТОЧНОСТЬ - если при этом, где-то сбоку, выводить некие доп_данные (ну коды там разные...) - то возможности юзера сильно расширятся.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423157
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не трудоемко, и при наличия опыта в предметной области - не сложно.

Код как код - почему это он не трудоемкий? Вы ведь не о простом добавлении одного двух столбцов говорите? К тому же - если у вас есть эти самые знания предметной области - почему бы их не добавить в ТЗ?
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423194
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UK0IAI,
" Допустим вам говорят - мы хотим тупо учитывать деньги (дата.... сумма). А вы про себя, никому ниче не говоря сразу закладываете..как то.."
Вот с этим я очень даже согласен. Я вообще прихожу к выводу, что успешный проект возможен, если в нем задействованы "мегачеловеки", которые одновременно и знают бизнес лучше любого из клиентов и могут на несколько шагов просчитать, что им луше для бизнеса надо, а чего - не надо, и с другой стороны опытны в плане структур и могут предвидеть, какая структура наиболее благоприятна и приведет к меньшему геморру при наиболее вероятном изменении требований.
Не могли бы Вы разъяснить про генераторы ЭФ - что это такое и в чем их польза. Это какие-то шаблоны основных форм что-ли?
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423222
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varan

И где ты таких видел? Ну допустим ты выучишь бух учет - а вот все детали той же банковской деятельности никто знать никогда не будет...
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423244
----------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Varan

Я вообще прихожу к выводу, что успешный проект возможен, если в нем задействованы "мегачеловеки", которые одновременно и знают бизнес лучше любого из клиентов и могут на несколько шагов просчитать, что им луше для бизнеса надо, а чего - не надо, и с другой стороны опытны в плане структур и могут предвидеть, какая структура наиболее благоприятна и приведет к меньшему геморру при наиболее вероятном изменении требований.

Мегачеловеки потребуют гигазарплату (и будут правы)
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423253
Репликант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы люди находили счастье в своей работе, необходимы три условия:\r
работа должна быть им по силам, она не должна быть изнуряющей и ей обязательно\r
должен сопутствовать успех.\r
\r
/* (с) Дж. Рескин */\r
\r
\r
2 Varan: \r
Тов Р.К. Мартин в одной из своих книг определил несколько признаков плохого проекта.\r
...\r
Не даст ли кто оригинальных рекомендаций, как не сделать вонючий проект, а сделать нечто красивое?
\r
\r
Позвольте внести терминологическую ясность, что следует различать и отделять такие понятия (объекты) как проект и система (ИС/ПО/сайт/БД, создаваемая или поддерживаемая). Если этого не делать, называя все "проектом", то это будет не обсуждение, а "каша". Например, ваши пп.1-6 (и, наверное, п.7) и все, что тут говорилось выше имеет отношение в основном к системе \r
\r
Ну ентот RUP в расчете на крупные которы. А меня в основном интересуют как маленький проектик (в котором 2-3 человека задействованы, не больше) красиво и качественно сделать, чтоб перед людями не стыдно было. \r
\r
А какой именно RUP имеется в виду? Если "урезанный"/редуцированный RUP, то он может быть использван в маленьком проекте с 1 человеком. Это уже обсуждалось в топике Подходы к проектированию системы.... Еще топики по теме:\r
\r
Раздвоение личности или "а сейчас-то что делать?\r
(бизнес-логика, объектный & реляционный подходы, методологии, ООП & ООАП лит-ра)\r

Есть ли у кого статистика скоко уходит времени на разработку "больших&q (стр.1-4)\r
(проекты, характеристики, затраты, sloc; роль аналитика, проектировщика, программиста)\r

Стоит ли убеждать заказчика?\r
(структурный и ООАП подходы, фазы, деятельности; лит-ра)\r
\r
\r
2 bas & All: \r
.. нет достаточной квалификации, нет возможности что-то приобрести(например всю линейку ALM Rational или др. фирм) \r
\r
Что-то все на IBM-Rational/Borland-Together зациклились... Других средств что ли нет? Например, начнем с того, что есть бесплатные + open source средства для AMDC (анализ, моделирование, проектирование, кодогенерация), т.е большая часть. Есть средства для AMDC (+NET/J2EE) + TM + PM недороже 200EUR, а также учитывая, что есть бесплатные или недорогие CVS средства, то это уже весь ALM. Причем упомянутые средства имеют открытый и хорошо документированный API (COM, VBScript, Java), т.е любой программист, знающий эти языки сможет написать плагин-аддон, если что-то не устраивает. Ну и какой теперь смысл в Rational или в Borland? Не вижу никакого смысла особенно для небольших компаний, к-рые не могут покупать XDE или Together за 10,000+EUR. Если есть вопросы и желание обсуждать эти альтернативные средства, то это лучше делать в топике Помогите выбрать CASE. Добро пожаловать :о)\r
\r
\r
2 gardenman: \r
На вскидку вопрос: у кого сколько времени занимает собственно проектирование (процентная доля) от всего процесса разработки? \r
\r
В топике Обсуждение и Вопросы по ОБЪЕКТНО-ОРИЕНТИРОВАННЫМ МЕТОДАМ (ООАП / OOAD) и UML я приводил типичные значения, к-рые уже пару лет, наверное, выдерживаются, т.е анализ-проектирование + вспомогательные деятельности точно:\r
\r

получение требований/ВИ и анализ с построением модели ВИ/анализа/GUI - 15-20% 1) \r

проектирование архитектуры с созданием модели проектирования/реализации - 15-20% 1) \r

реализация (программирование, создание контента и т.д) - 20-40% 1) \r

создание модели тестирования и тестирование - 1-5% 2) \r

развертывание ("внедрение") - 5-10% 1) \r

DCT/CM, планирование и др.вспомогательные деятельности - 2-5% \r
\r
1) изменяется в зависимости от наличия опыта создания таких приложения,\r
разработки под платформу, уже имеющихся шаблонов и т.п,\r
2) 1% - большую часть тестирования выполняет заказчик.\r
\r
Признаюсь честно: у меня на то, чтобы нарисовать структуру \r
таблиц+индексы+триггеры+процедуры - это примерно 70% времени \r
и трудностей от проекта. Остальные 30 -написание клиентского приложения \r
+ доводка/отладка.
\r
\r
Вообще это зависит от используемого процесса, т.е нет смысла сравнивать временные затраты при некорректном, безсистемном или неавтоматизированном подходе с системным и автоматизированным подходом. Эти значения, например, для UP (ООАП) приведены в книге Крэга Лармана "Применение UML и шаблонов проектирования. (Введение в объектно-ориентированный анализ и проектирование)" – М.: «Вильямс», 2002. – 624 с. (ISBN 5-845-90250-9) или еще в Фатрелле, Шафере и др. Управление программными проектами. Достижение оптимального качества при минимуме затрат – М.: «Вильямс», 2003. – 1136 с. (ISBN 5-845-90413-7) Анализ показателей, поиск неэффективных или даже ненужных деятельностей, повышение эффективности своей работы - отдельная тема, относящаяся к управлению проектами и качеством процесса разработки
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423259
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri
Ну, бухучет - это вообще не бизнес, не деятельность, не "предметная область" с моей точки зрения, а какая-то абстракция, в которую играют занятые ей люди.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423265
Репликант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vdimas:
применение RUP ничего не гарантирует, это методология, а не готовое техническое решение.

Привет, vdimas! Конечно, не гарантирует, т.к я уже не первый раз цитирую это: "успех складывается из 3-х "П"-составляющих? Процесс (включает также средства), персонал (читай профессионализм) и проект (цели, внешняя среда). ..."

ну ка, знатоки RUP, давайте-ка попробуйте ответить на пункты автора топика:

Ответим, ответим. Только скоро уже будем справлять 30-летие ООАП, 40-летие ВИ и 50-летие ООП. Да, не зря в Америке программистам семинары по основам ООАП, шаблонам и УП(PM) читают, а потом они еще зачет сдают. В серьезных американских компаниях вроде ATT, Локхид или индийских компаниях уже давно обязательна сертификация по UML и ISO-IT. Россия c Украиной как всегда в заду тащятся, несмотря на то, что их закрома полны талантливыми программистами...

>1. Закрепощенность: система с трудом поддается изменениям, поскольку любое минимальное изменение вызывает эффект ""Снежного комма"", затрагивающие другие компоненты системы.
проектирование только сверху вниз приводит к подобному эффекту быстрее всего


RUP не дает никаких рекомендаций относительно наиболее предпочтильного подхода к анализу-проектированию, т.е "снизу-вверх", "сверху-вниз", "из-середины". Одно из Правил: использовать инкрементный подход - ИС/БД не должна создаваться сразу и целиком, а частями или приращениями. Предпочтительнее всего, когда сначала реализуется т.н "ядро" - важнейшие ВИ/данные, а затем к ним приделывается все остальное.
Что же касается изменений, то в RUP нет такого понятия как "окончательные требования", а отсюда сам процесс, направляемый ВИ, а также его программные средства направлены и позволяют:

получать и централизованно управлять изменениями требований, т.е
  с минимумом затрат поддерживать ЖЦ требований "от рождения до смерти";


предотвращать появление масштабных ad-hoc изменений требований,
  к-рые могут привести к коллапсу проекта. Это достигается как за счет
  итеративности и инкрементности, так и за счет подхода, когда сначала
  в результате итераций, получаются стабильные требования и прототипы,
  а затем уже релиз и т.д;


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

>2. Неустойчивость: в результате осуществляемых изменений система разрушается в тех местах, которые не имеют непостредственного отношения к изменяемуму компоненту
это следствие из пред.п.


Необязательно, т.к это может быть результатом локальных ошибок проектирования, т.е низкой модульности, слабой связности и т.д, а не всего процесса или подхода "сверху-вниз"

>3. Неподвижность:достаточно трудно разделить систему на компоненты, которые могли бы повторно использоваться в других системах
Для того, чтобы компоненты можно было использовать повторно, они должны быть заранее спроектированы с учетом последующего повторного использования. Обычно это означает дополнительные трудозатраты по реализации дополнительной функциональности сверх предписанной в рамках конкретной системы (иногда плюс 50%-100% работы, что окупается только в случае заведомого нацеливания на повторное применение).
Кстати, мне очень импонирует компонентный подход в разработке. К изолированному компоненту можно применять самостоятельно стоящий RUP, компонент необходимо разрабатывать вне рамок какой-то системы, а именно как самодостаточный имеющий простой интерфейс модуль .


Мне тоже импонирует компонентный подход, но затраты в "50%-100% сверху" - ведь не всю функциональность, к-рая может неожиданно или внезапно потребоваться в будущем можно предугадать, например, возможны изменения в бизнесе, при к-рых ГУИ может сильно измениться или вообще могут не понадобиться целые подсистемы (это, кстати, нормально и к этому надо быть готовым - тем более, что заказчик платит), т.е получается, что твоя функциональсть "сверху" - это потенциально работа впустую

если же тот же самый программист будет добавлять эти же ф-ии спустя пол-года, то ему потребуется время, сравнимое со временем первоначального написания оного

Пример, к-рый ты привел funikovyuri добавлением функций/объектов в диалог - это можно сделать и по требованию заказчика-пользователя. При чем не ясно почему потребуется "время, сравнимое со временем первоначального написания оного". IMHO такие временные затраты - результат отсутствия или плохого управления изменениями и документирования проекта, т.е "влез в свою же программу спустя год, а там - черт ногу сломит"

>4. Вязкость:сделать что-то правильно намного сложнее, чем выполнить некорректные действия
В принципе, это последствия необходимости что-то постоянно менять после завершения разработки системы, постепенно можно прийти и к такому. Компонентный подход выручает и здесь.


Менять что-то после "создания системы" - это довольно естественно и не так затратно, если изменения требований автоматически отображаются во все артефакты, т.е после изменения требований разработчикам сразу ясно, ЧТО и ГДЕ нужно изменить. Так что компонентный подход никогда не заменит автоматизированный процесс, если ты это имел в виду :о)

>5. Неоправденная сложность: проект включает инфраструктуру, применение которой не влечет непостредственной выгоды
Можно поспорить, особенно если система заведомо спроектирована с учетом расширений и масштабирования. В какой-то момент эта сложность будет неправдана, но ситуация может поменяться и эта сложность всех спасет.


Согласен, т.к непонятно, что именно имеется в виду под "применение которой не влечет непостредственной выгоды"

>6. Неоправданные повторения: проект включает повторяющиеся структуры, которые могут унифицироваться с применение простой абстракции
Опять же, речь о том, чтобы не проектировать тупо сверху вниз, а создавать и нарабатывать библиотеки, типовые интерфейсы объектов и реализовать типовые операции в них. Далее при проектировании необходимо не столько разрабатывать каждую сущность с 0-ля и смотреть что получится, сколько смотреть - а что уже есть, и пытаться "подгонять" целевую систему под некоторые наработки. (почти всегда это идет на пользу любой прикладной системе)


Тут vdimas вне конкуренции как проектировщик. Теперь буду его цитировать... :о)

>7. Неопределенность : проект трудно читать и понимать. Недостаточно четко выражено содержимое проекта."
Это зависит от организации и артефактов. Тут может помочь применение хоть какой-нибудь методологии или же просто здравого смысла.


Согласен, просто в дополнение: методология желательна, т.к ее достоинство не в том, что "она позволяет строить диаграммы", а в том, что это некий обоснованный, оптимальный и обкатанный "шаблон" процесса, применяемого для решения проблемы, т.е "вот для ЭТОГО - делай раз, делай два, делай... как положено, без вопросов и получишь хороший результат"

>Не даст ли кто оригинальных рекомендаций, как не сделать вонючий проект, а сделать нечто красивое?
Надо ставить производство ПО на поток. Закладывать в компоненты больше, чем требуется в конкретном бизнесс-приложении, не жалеть времени на то самое среднее звено.


Главное грамотный системный подход и автоматизированный, чтобы не создавать себе проблемы - тогда и не надо будет закладывать в компоненты больше, чем требуется, т.к это "больше" может вообще и не потребуется. Зачем делать, если можно не делать

Стремиться к максимальной простоте на самом верхнем уровне (т.е. если по смыслу надо сделать A=B+C, то желательно, чтобы в коде именно так и было, а не нечто типа:
- заблокировать А, обработать ошибки
- заблокировать B, опять обработать ошибки


Совершенно правильно, т.к чисто техническая или служебная функциональность должна быть скрыта в определенных классах/компонентах, реализующих ее

Кто-нибудь видел учетную систему, которую не пришлось бы ни разу
дополнить чем-нить? Или у всех их программы работают по 5-10 лет без единого исправления-дополнения?


Я видел. Не веришь? Представь, сделали и забыли! Правда, мужики, к-рые ее нам заказывали были из другого региона, т.е они ее забрали и мы больше в ней ничего не меняли... :о))


OFFTOPIC:
2 акуз-поклонник Репликанта:
а где Репликант?
я уже было приготовился этот топик до обеда читать, а после - осмысливать...


Привет, я заменяю Настоящего Репликанта. Кстати, он передает привет своим поклонникам и сообщает, что он в конец (или до конца) обленился и на работе его хватает только на то, чтобы делать необходимый минимум, лениво таскать Ж. в столовую и громить ламеров в Web-чатах, пугая их заумными словами типа "анализ", "проектирование", "компонент" ...
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423275
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Репликант,
1. мне эпиграф очень понравился.
2. Вы правы, я не совсем точно выразился. Под "вонючим" проектом я подразумевал программную систему, сконструированную и запрограммированную так, что имеют место эти 7 принципов Мартина.
Но поскольку на характеристики этой системы оказывает влияние и "проект", т.е организация процесса разработки, если я правильно понимаю, то я не буду против, если кто-то подкинет интнересную идею и из этой области. Кстати, в той книге приводятся примеры как разные манеры ведения проекта привдят к разным результатам (причем с кодом) - довольно занимательно.
Конечно, точность в формулировках приводит к лучшему пониманию.
...
Рейтинг: 0 / 0
Как не сделать "вонючий" проект?
    #32423292
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 UK0IAI
По поводу встроенных генераторов отчетов:
все эти "фичи" работают весьма неоптимально.
Конечно можно реализовать создание SQL запросов из генератора отчетов,
но ) в этом случае юзер должен разбираться в структуре БД.
А как правило многие конторы на этот счет не очень то распространяются.
Результат: кнопку нажал - вся спина в мыле.

=> юзеру легче нарисовать такой отчет в Crystal
...
Рейтинг: 0 / 0
25 сообщений из 100, страница 2 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как не сделать "вонючий" проект?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]