|
|
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Про четкую муру в проекте. Я видел одно ТЗ. Там на протяжении трех страниц описывалось, какие значения присваиваются полям суррогатные ключей. Как будто identity еще не изобрели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2004, 20:41 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 gardenman Проектирование баз данных - это практически искуссво. Я заметил, что никакая теория в этом процессе практически не помагает. Главное - опыт. Опыт, который помагает правильно разложить модель по таблицам, таким образом, чтоб все работало быстро и правильно, и чтоб струтура действительно соответствовала тому, чего надо получить. Да, действительно. Взять, например, хранение того же самого иерархического справочника (деревяшка). Если брать самое простое и минимальное решение (в каждом узле храним Parent) - то оно и есть самое неудачное. Удачное же решение для деревяшек требует некоторых трудозатрат... Однако, удачное решение гораздо удобней использовать и оно быстро работает... Берем параметризируемый скрипт для БД, берем базовый класс-сущность-деревяшку (скажем, на C#, с конструкторами, принимающими интересующие имена таблиц и полей хранимой деревяшки), отлаживаем все это... И получите готовый компонент, который можно рассматривать как кубик в LEGO. Еще пример. "Классическая" разработка под БД подразумевает обкладку базы всевозможными ограничениями как танка броней... Ну просто замечательно, и сердце радуется, глядя на всю эту классическую строгость... особенно на этапе разработки и отладки... Однако, без оных ограничений можно увеличить быстродействие OLTP в разы, иногда в многие разы (предлагаю на это высказывание не флеймить, все за и против давно всем известны). База, без ограничений и поддержки целостности, слаба и беззащитна, здесь мы только полагаемся на правильно организованные транзакции, хорошо отлаженные процедуры, триггера и клиентские запросы. Все эти вещи (хозяйство со стороны БД и клиента) надо раскладывать в законченные и независимые модули (ключевое слово - независимые), и юзать многократно сию отлаженную эффективную реализацию ... Так вот, продолжая про компонентную ориентацию разработки... Зачастую, именно достижение св-ва "независимости" для модуля тоже требует неких дополнительных трудозатрат, ибо почти всегда означает расширение интерфейса компонента (будь то процедуры БД или запросы, определения классов или интерфейсов в ЯП), которые дополнительно организуют и делают то, что в закрытой и сильносвязанной системе происходит "внутренним образом". Все это ведет к дополнительному продумыванию способов взаимодействия компонентов, дополнительному документированию и т.д... Однако! (я уже как-то упоминал это, но был раскритикован Репликантом), используя набор компонент, используя некий отлаженный фреймворк, на самом верхнем уровне (на том самом прикладном уровне), можно уже будет поиграть в XP. XP весьма неплох там, где под ним покоится мощный и надежный базис (отлаженная среда и компоненты). XP - это просто стадия макетирования и обсуждения деталей вместе с заказчиком... Только макеты никто не выкидывает, ибо они сразу являются работоспособными... -------- Бизнес-анализ... Да... крутая штука, особенно если к середине проекта заказчику начинают приходить интересные мысли одна за одной... Да причем такие, которые самый опытный аналитик бы не предвидел... скажем, мысли о возможности переделать часть бизнеса, путем введения поддержки реализации этой гениальной мысли в разрабатываемый продукт. Вот тут-то и спасает компонентный подход и некое "резервирование" возможностей. Почему самой массовой является 1С? А почему дети любят кубики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2004, 21:46 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Jimmy: намек с мартышкой относится ко мне, но я считаю, что не все, кто использует RUP - мартышки. ну а испохабить все можно, согласен. 2 Varan: если вопрос стоит по затачиванию под бд, то были темы про объектные базы, может стоит присмотреться. я же когда отвечал, имел ввиду ведение проекта в целом. возможно попал "не в тему" ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 09:58 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Jimmy: намек с мартышкой относится ко мне... Это - не так. Никаких личных выпадов. Бизнес-анализ... Да... крутая штука, особенно если к середине проекта заказчику начинают приходить интересные мысли одна за одной... Да причем такие, которые самый опытный аналитик бы не предвидел... скажем, мысли о возможности переделать часть бизнеса, путем введения поддержки реализации этой гениальной мысли в разрабатываемый продукт. Вот тут-то и спасает компонентный подход и некое "резервирование" возможностей. Бизнес-анализ - крутая штука, если его результаты согласованы и сведены в ТЗ, которое подписано Заказчиком. А если Заказчику в середине проекта приходят светлые мысли, то нужно достать утвержденное и согласованное ТЗ и спросить Заказчика: "Как Ваши интересные мысли согласуются с тем, что изложено в ТЗ? Никак? Тогда извините... Или Вы просто наслаждаетесь Вашими интересными мыслями, а мы продолжаем работать по ТЗ, или оформляем допсоглашение за очень дополнительную плату." PS Кстати, это реально происходит сейчас в проекте, в котором я работаю, так что все вышесказанное - не досужие мысли. --------------- Данное сообщение содержит вирус! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 11:00 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
а где Репликант? я уже было приготовился этот топик до обеда читать, а после - осмысливать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 11:38 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Jimmy А если Заказчику в середине проекта приходят светлые мысли, то нужно достать утвержденное и согласованное ТЗ и спросить Заказчика: "Как Ваши интересные мысли согласуются с тем, что изложено в ТЗ? Никак? Тогда извините... Или Вы просто наслаждаетесь Вашими интересными мыслями, а мы продолжаем работать по ТЗ, или оформляем допсоглашение за очень дополнительную плату." Никто не спорит, что сроки и деньги остануться теими же. Но вот вопрос - как сильно они изменяться? Насколько критично для разрабатываемого продукта изменения и дополнения в ТЗ? Что-то мой мозжечек говорит мне, что чем опытнее разработчики, тем менее это критично... ------------------ Кто-нибудь видел учетную систему, которую не пришлось бы ни разу дополнить чем-нить? Или у всех их программы работают по 5-10 лет без единого исправления-дополнения? Это абсолютно нереально, ибо видение заказчиком собственного бизнеса вполне объективно меняется со временем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 11:49 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
vdimas Да, действительно. Взять, например, хранение того же самого иерархического справочника (деревяшка). Если брать самое простое и минимальное решение (в каждом узле храним Parent) - то оно и есть самое неудачное. Удачное же решение для деревяшек требует некоторых трудозатрат... Однако, удачное решение гораздо удобней использовать и оно быстро работает... Берем параметризируемый скрипт для БД, берем базовый класс-сущность-деревяшку (скажем, на C#, с конструкторами, принимающими интересующие имена таблиц и полей хранимой деревяшки), отлаживаем все это... И получите готовый компонент, который можно рассматривать как кубик в LEGO. Вы случайно не про реализацию собственного OLAP-сервера говорите? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 11:50 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
НУ блин и по написали.... И все равно пришли к моему первоначальному мнению: bas Все описано в принципе правильно, но к сожалению этот идел не достяжим, при проектировании/реализации проекта приходиться чем то жертовать по ряду причин: сроки поджимают, нет достаточной квалификации, нет возможности что-то приобрести(например всю линейку ALM Rational или др. фирм) и т.д. и т.п. А универсального рецепта нет, надо просто при проектировании/реализации/конторле иметь в виду все 7 пунктов и к ним стремиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 12:39 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Tulenev Вы случайно не про реализацию собственного OLAP-сервера говорите? :) Какая связь? просто есть известная быстрая модель той же деревяшки, но ее мало кто юзает, из-за лени IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 13:33 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
vdimas Какая связь? деревяшка == измерение OLAP-куба просто есть известная быстрая модель той же деревяшки, но ее мало кто юзает, из-за лени IMHO расскажите подробнее, пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 14:46 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Закладывать в компоненты больше, чем требуется в конкретном бизнесс-приложении, не жалеть времени на то самое среднее звено Позвольте две копейки добавить... ИМХО можно юзать примерно такую методу: 1. Структура БД должна быть избыточной 2. Приложение должно включать в себя ...свой ГЕНЕРАТОР. 1. Избыточность. Допустим вам говорят - мы хотим тупо учитывать деньги (дата.... сумма). А вы про себя, никому ниче не говоря сразу закладываете..как то.. Код ресурса (из вашего мета_справочника) Код документа (из вашего мета_справочника) Един_измрения Цена Кол-во Сумма.... И код валюты...не забудьте ищо... И когда юзер войдет во вкус и будет мечтать о ...ценах - у вас уже все готово!! И в отчете вы сможете ...фильтроваться...по типу ресурса....или бланковки_разные туда подсовывать... 2. Генератор. Если ваша прога имеет Генератор ЭФ, Генератор отчетов - 90% проблем позади. Но только если вы - модульны. Про другие системы не скажу - а про оракле....оракле + девелопор = все само получается. Если имена модулей ран_таймов в журнале....БД... хранить (ну и пути_файлы все знать...) ....и почти как заповедь_проповедь .... - ЗАБУДЬТЕ о такой фиче как МЕНЮ. Юзайте аналоги, где список айтемов = всегда ДИНАМИЧЕСКИ из БД формируется... Юзайте аналоги - Сценарии свои....имейте минимальный набор команд в этом....типа - запуск модуля.....присвоение значения глобал_переменной, условный-безусловный переход по шагам сценария.... сами удивитесь как потом легко будет ....из модулей как из ЛЕГО новый АРМ (типа) собрать..."на лету"....без ПЕРЕКОМПИЛЯЦИИ чего либо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 15:34 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Varan ....вот вспомнил...на заре так сказать...САПР проектирования технологических процессов ковки крупных поковок.....на Ижоре...10 лет создавали... Это была ОЧЕНЬ СЛОЖНАЯ ВЕЩЬ. ЭВМ дескать...вместо...профи....все сама пыталась придумать.....И делала это!! . Только вот как? почему она именно режим_техпроцес выбирала ....а не ИНОЙ???. Черт голову сломит. И тогда (однажды... но ПОЗДНО уже ) промелькнула ИДЕЯ А что , если прога будет иметь подсистему: "Система Диагностики Принятия Решения"?????. Вот было бы здорово, в логе все увидать - что там и как...по каким так сказать соображеньицам, Машина решение свое принимала.... Но САПР не дожил до эпохи ПК, и помер. А идея - осталась. И мне однажды удалось ее применить... Идет расчет СЕБЕСТОИМОСТИ. Задали ПЛАН, Нормативы задали, Цены ввели - и считаем. СТОП-МАШИНА. НСИ не все подготовили. И вот тут то и всплывает один такой интерфейс.....где все сразу видно - чего и где не хватило... И можно сразу по всей НСИ пробежаться....по этапам, по маршрутам....по траектории.... значит.... расчета всего... Система Диагностики Принятия Решения.... вот значит какая штука.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 15:53 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
UK0IAI & vdimas Т.е. я так понимаю - предлагается разрабатывать системы с функциональностью прозапас - причем за деньги заказчика. А направление, вероятно, будет указывать ведущий экстрасенс-программист? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 16:20 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Очень интересное замечание про "генераторы отчетов". Никто случайно не обращал внимание на то, как часто появляются заказы на "новый отчет". Никто случайно не пытался проанализировать почему вдруг появилась потребность в "новом отчете"? По своему опыту могу сказать - что в 90% случаев можно предвидеть, что отчет в той или иной форме будет нужен и заложить его при проектировании системы. Как вы думаете, приятно и есть ли желание юзеру изучать как пользоваться вашим генератором отчетов? Позволяет ли ваш генератор отчетов вытащить любые данные? А как быстро работает ваш генератор отчетов? Какими ласковыми словами называют разработчики юзеров когда пользуются вашими генераторами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 16:59 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
gardenman, Очень странная мысль. Генератор отчетов делает систему более гибкой, позволяя пользователю (или программисту) оперативно решать вопросы. Да и как можно предвидеть, что может понадобиться завтра? Вдруг макет захотят поменять, или какой-то новый специфический отчет сделать. Вам что, больше импонирует такой вариант: пользователь захотел отчет, прораммист его сделал,прораммист перекомпилил клиентский проект, прораммист пересталил его везде...Второй путь мне не кажется более простым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 17:25 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 funikovyuri А направление, вероятно, будет указывать ведущий экстрасенс-программист? Про запас - я в первую очередь понимаю решения на уровне структуры БД. Это не трудоемко, и при наличия опыта в предметной области - не сложно. Потом, если в БД добавляется поляна...то прога может то и "полететь", перекомпиляцию может тотальную потребовать то...а так - уже нет. При наличии общего базиса в системе (журналы разные описывающие в БД системные вещи) - тоже хорошо, в целом в духе 7 пунктов из топика сабжа... 2 gardenman Как вы думаете, приятно и есть ли желание юзеру изучать как пользоваться вашим генератором отчетов? По видимому можно и нужно делать различие. Генератор отчетов - это инструмент, прежде всего Программера - а не Юзера. Тогда прога - всего лишь может (должна) обеспечить режим автозагрузки - когда Генератор может запущен под управлением САМОЙ проги (ну просто менеджер задач....что всегда запукает ИЛИ ран-тайм ИЛИ билдер) И Генератор это уже та самая промышленная тулза....что могучие корпорации уже много лет развивают.... оракле + девелопор = все само получается (здесь понималось разработка приложения в системе ORACLE Developor 2000...) Про другие системы не скажу (не вижу никаких ограничений - для иных сред разработки, в духе этого...) Тогда наша прога станет не просто приятной во всеъ отношениях - а еще и легкой в сопровождении и в коллективном ведение проекта... НО, я знаю, я видел, я уверен - что прога может иметь и Юзерский Генератор Отчетов. Это уже - дело техники, мастерства программера в целом - и это - служит залогом успеха в целом - как возможный ответ автору топика на вопрос по существу - "как не сделать вонючий проект". хотите пример - я решил это, когда отчет выходит в ексель, и в нем, "на лету", после вывода данных - создается пайлот-табле. Отличная идея и инструмент для Юзера - из исходных данных отчета - тут же другой отчет получить....Кстати, ИЗБЫТОЧНОСТЬ - если при этом, где-то сбоку, выводить некие доп_данные (ну коды там разные...) - то возможности юзера сильно расширятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 17:41 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Это не трудоемко, и при наличия опыта в предметной области - не сложно. Код как код - почему это он не трудоемкий? Вы ведь не о простом добавлении одного двух столбцов говорите? К тому же - если у вас есть эти самые знания предметной области - почему бы их не добавить в ТЗ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 17:47 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
UK0IAI, " Допустим вам говорят - мы хотим тупо учитывать деньги (дата.... сумма). А вы про себя, никому ниче не говоря сразу закладываете..как то.." Вот с этим я очень даже согласен. Я вообще прихожу к выводу, что успешный проект возможен, если в нем задействованы "мегачеловеки", которые одновременно и знают бизнес лучше любого из клиентов и могут на несколько шагов просчитать, что им луше для бизнеса надо, а чего - не надо, и с другой стороны опытны в плане структур и могут предвидеть, какая структура наиболее благоприятна и приведет к меньшему геморру при наиболее вероятном изменении требований. Не могли бы Вы разъяснить про генераторы ЭФ - что это такое и в чем их польза. Это какие-то шаблоны основных форм что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:02 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Varan И где ты таких видел? Ну допустим ты выучишь бух учет - а вот все детали той же банковской деятельности никто знать никогда не будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:08 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 Varan Я вообще прихожу к выводу, что успешный проект возможен, если в нем задействованы "мегачеловеки", которые одновременно и знают бизнес лучше любого из клиентов и могут на несколько шагов просчитать, что им луше для бизнеса надо, а чего - не надо, и с другой стороны опытны в плане структур и могут предвидеть, какая структура наиболее благоприятна и приведет к меньшему геморру при наиболее вероятном изменении требований. Мегачеловеки потребуют гигазарплату (и будут правы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:18 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Для того, чтобы люди находили счастье в своей работе, необходимы три условия:\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) Анализ показателей, поиск неэффективных или даже ненужных деятельностей, повышение эффективности своей работы - отдельная тема, относящаяся к управлению проектами и качеством процесса разработки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:22 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
funikovyuri Ну, бухучет - это вообще не бизнес, не деятельность, не "предметная область" с моей точки зрения, а какая-то абстракция, в которую играют занятые ей люди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:26 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
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-чатах, пугая их заумными словами типа "анализ", "проектирование", "компонент" ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:31 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
Репликант, 1. мне эпиграф очень понравился. 2. Вы правы, я не совсем точно выразился. Под "вонючим" проектом я подразумевал программную систему, сконструированную и запрограммированную так, что имеют место эти 7 принципов Мартина. Но поскольку на характеристики этой системы оказывает влияние и "проект", т.е организация процесса разработки, если я правильно понимаю, то я не буду против, если кто-то подкинет интнересную идею и из этой области. Кстати, в той книге приводятся примеры как разные манеры ведения проекта привдят к разным результатам (причем с кодом) - довольно занимательно. Конечно, точность в формулировках приводит к лучшему пониманию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:38 |
|
||
|
Как не сделать "вонючий" проект?
|
|||
|---|---|---|---|
|
#18+
2 UK0IAI По поводу встроенных генераторов отчетов: все эти "фичи" работают весьма неоптимально. Конечно можно реализовать создание SQL запросов из генератора отчетов, но ) в этом случае юзер должен разбираться в структуре БД. А как правило многие конторы на этот счет не очень то распространяются. Результат: кнопку нажал - вся спина в мыле. => юзеру легче нарисовать такой отчет в Crystal ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 18:53 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32422052&tid=1546521]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 524ms |

| 0 / 0 |
