|
|
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Егоров АлександрТогда изменение БЛ вообще не потребует никаких ихменений кода системы, перекомпиляции и перетестирования.Может я чего не понимаю. Но как вы гарантируете работоспособность системы БЕЗ юнит-тестирования внесенных изменений? Допустим ваше изменение затронуло только BPEL. Как вы проверили что для заданных условий новая BPEL-логика дает правильный ответ? Егоров АлександрСтоп-стоп-стоп. Уровень СУБД ведь проектирует тоже автор системы, в Вашем случае - это либо Вы, либо Ваща система нагенерила этих извраты в СУБД. :) Либо давайте пример, как работает "практически страндартная весчь". На примере: справочник контрагентов с полями ИНН, ЮрАдрес и Телефоны. Одному клиенту аудит не нужен. В Вашей системе он и не закладывался. У другого - требование "Справочник Контрагенты должен обеспечить хранение предыдущих значений реквизитов и автора изменений"? Ваши действия в Вашей системе?подключаю к проекту Hibernate Envers, на сущьность "Справочник Контрагенты" ставлю @Audited, делаю перехватчик и в нем заполняю поле "кто сделал изменение". Компайл, коммит на сервер, автоматическая сборка и проверка юнитами. Егоров АлександрЯ сижу не только на СУБД, но и на УЖЕ РАБОТАЮЩЕЙ СИСТЕМЕ. Если в этой системе требуется какое-либо изменение - я обращусь к автору этой системы, а не будут покупать новую. :) При замене же системы, пускай даже системы учета - затарты на приобретение новой СУБД далеко не самые главные. Причем чем крупнее фирма, тем больше затрат ложится на "дописание бизнес-логики", переобучение пользователей и перенастройку процессов, чем на стоимость СУБД. так ко мне и обратишься клиенты не переходят на другие СУБД ибо это дорого отнюдь не потому что нужно купить лицензий. Нужно еще обучить админов и т.п. Егоров АлександрДа зарабатывайте, пожалуйста. Я же не мешаю. :) Единственное пожелание - не закрывайте полностью уровень БД от доработки на местах. А то потом DBA мучаются с тормозами, а ничего поделать не могут. ;)возможность доработки приложения компанией-заказчиком это либо если ПО изначально OpenSource либо стоит НАМНОГО дороже обычной лицензии. Чаще всего заказчик не хочет платить за возможность доработки ПО своими разрабами. Егоров АлександрVoDAКак раз на начальной стадии пока система не выведена в продакшен - на юнит-тесты можно забить. Они замедляют процесс разработки. У меня накопилась обратная статистика. Сборка готовой системы из оттестированных модулей поисходит намного быстрее. Модификация модулей происходит чаще и чаще требует тестирования именно на этапе проработки архитектуры, когда каркас системы еще окончательно не определен. тут полное согласие. я говорю что модули быстрее делать без юнитов, а вы что полностью систему быстрее собрать если модули - готовы и сделаны юниты. Согласен, это именно так. Егоров АлександрВот в этом у нас принципиальное непонимание. Любое изменение БЛ не должно требовать вообще изменения кода системы. Иначе это неправильная система. Или прикажете ходить на внедрение со средой разработки, отладчиками и тестироващиками?А какое изменение БЛ может быть в момент внедрения? В момент внедрения любые изменения БЛ уже завершены и заказчик получает результат. Если требуются еще изменения БЛ, то идет новый контракт и новая разработка + новое внедрение. Егоров АлександрVoDAТак вынос БЛ в отдельный слой (на апп-сервер) и есть архитектурное решение. ...имеющие минусы в быстройдетсвии перед решениями, позволяющими оптимально "размазывать" БЛ по раздельным слоям. Но почему-то эти минусы очень фанатично отрицаются.минусов в быстродействии SQL - нет ибо Java выдает тот же SQL, что и ХП. Разница в скорости только в случаях массовой обработки данных БЕЗ сложной логики. Тут согласен Вот только оптимальное "размазывание" логики по слоям чаще всего дороже в разработке, чем плюхнуть всю БЛ на АппСервер. И заказчик и разработчик хотят уменьшить стоимость решения, потому принимается более дешевый вариант с приемлемой скоростью работы. Опять же начинаются ситуации когда вроде как и можно вынести что-то на СУБД, но поддержка "размазанной логики" выйдет дороже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 10:47 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Егоров АлександрПроверка выполняется непосредственно в СУБД - никаких изменений в производительности всей системы опять-таки нетвот тут фундаментальная ошибка. в системах в которых скорость работы принципиальна есть правило, что любое изменение кода вызывает деградацию пока не доказано обратное. И прогонка юнитов на кластере есть как раз доказательство того, что скорость не уменьшилась. Егоров АлександрПодправляем юнит, пересобираем систему, тестируем её опять всю целиком? Параллельно получаем "нестандартную" версию системы у конкретного клиента, к которой начинаем где-то помнить, что модуль такой-то изменен, в отличии от базовой версии?а если мы внесли изменения в ХП это не будет ""нестандартную" версию системы у конкретного клиента, к которой начинаем где-то помнить, что ХП такой-то изменен, в отличии от базовой версии?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 10:52 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
2 iscrafm Пожалуй вот это высказывание наиболее точно указывает на разницу в подходах. carperТут кроется противоречие - заказчику очень редко нужна универсальность, универсальность нужна разработчику, чтобы увеличить продажи. Поскольку одному нужен пылесос, а другому швабра, разработчики привязывают пылесос к швабре и удивляется почему одни жалуются на то, что швабра слишком тяжелая и занимает много места, а другие на то, что им очень мешает пылесосить деревянная палка и тряпку постоянно засасывает в пылесос.+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 10:58 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDA какое изменение БЛ может быть в момент внедрения? В момент внедрения любые изменения БЛ уже завершены и заказчик получает результат. Если требуются еще изменения БЛ, то идет новый контракт и новая разработка + новое внедрение. Вы это только в слух не говорите в серьезном обществе. VoDA Вот только оптимальное "размазывание" логики по слоям чаще всего дороже в разработке, чем плюхнуть всю БЛ на АппСервер. И заказчик и разработчик хотят уменьшить стоимость решения, потому принимается более дешевый вариант с приемлемой скоростью работы.Опять же начинаются ситуации когда вроде как и можно вынести что-то на СУБД, но поддержка "размазанной логики" выйдет дороже. Вы с чем сравнивали? Или это воспринимать как "личное мнение, основанное на анализе только своей же работы"? Допустим я говорю, что ничего не выходит дороже и быстрее в разы. Несколько раз давал ссылку на документ, можете поискать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 11:03 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDA 2 iscrafm Пожалуй вот это высказывание наиболее точно указывает на разницу в подходах. carperТут кроется противоречие - заказчику очень редко нужна универсальность, универсальность нужна разработчику, чтобы увеличить продажи. Поскольку одному нужен пылесос, а другому швабра, разработчики привязывают пылесос к швабре и удивляется почему одни жалуются на то, что швабра слишком тяжелая и занимает много места, а другие на то, что им очень мешает пылесосить деревянная палка и тряпку постоянно засасывает в пылесос.+1 т.е. Вы признаете, что находитесь в погоне за универсальностью. Страннно. Тогда смысл Ваших постов становится еще более непонятным. Говорите что это плохо, но отстаиваете. Я понимаю, типа работа такая, но.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 11:06 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Разобъю пост. А то больно неудобно отвечать :) VoDAЕгоров Александр ...нужно изменить код функции проверки продаж, оттестировать ее (в том числе и по нагрузке на сервер[а] СУБД) и отдать в продакшн... Тогда изменение БЛ вообще не потребует никаких ихменений кода системы, перекомпиляции и перетестирования.Может я чего не понимаю. Но как вы гарантируете работоспособность системы БЕЗ юнит-тестирования внесенных изменений? Допустим ваше изменение затронуло только BPEL. Как вы проверили что для заданных условий новая BPEL-логика дает правильный ответ? Поправил отцитированное Вами, чтобы было понятно. Я протестировал изменения. Эти изменения не затрагивают остальную систему, тестировать всю систему нет никакой необходимости. Проверка эта была автоматизирована добавлением в существующий тестовый набор данных докуентов, проверяющих дополнительные варианты условий, процедура прогнана по ним, сверены как результаты процедуры, так и изменение производительности. Остальная часть системы никак не затронута изменениями, так как и вход, и выход этой процедуры не изменился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 11:45 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDAЕгоров АлександрСтоп-стоп-стоп. Уровень СУБД ведь проектирует тоже автор системы, в Вашем случае - это либо Вы, либо Ваща система нагенерила этих извраты в СУБД. :) Либо давайте пример, как работает "практически страндартная весчь". На примере: справочник контрагентов с полями ИНН, ЮрАдрес и Телефоны. Одному клиенту аудит не нужен. В Вашей системе он и не закладывался. У другого - требование "Справочник Контрагенты должен обеспечить хранение предыдущих значений реквизитов и автора изменений"? Ваши действия в Вашей системе?подключаю к проекту Hibernate Envers, на сущьность "Справочник Контрагенты" ставлю @Audited, делаю перехватчик и в нем заполняю поле "кто сделал изменение". Компайл, коммит на сервер, автоматическая сборка и проверка юнитами. Плюс "** Extra care is required if your use-case has this requirement. My recommendation is to let Envers initially creates audit tables for your auditable entities, reengineer audit tables db schema, do required modifications e.g. changing audit tables suffixes, make necessary changes in hibernate config (e.g. disable auto creation of audit tables, configure Envers to use user created audit table), and finally build, deploy and test your application. " (с) отсюда ... То есть опять скомпилить новую версию системы. И если клиент отказывается - опять все заново? Только уже "отключаю... убираю @Audited... и т.д..." ? Скажите, у Вас большая служба поддержки? Что происходит у Вас, когда одному клиенту внедрена система с аудитом, а другому - без? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 12:06 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDAЕгоров АлександрВот в этом у нас принципиальное непонимание. Любое изменение БЛ не должно требовать вообще изменения кода системы. Иначе это неправильная система. Или прикажете ходить на внедрение со средой разработки, отладчиками и тестироващиками?А какое изменение БЛ может быть в момент внедрения? В момент внедрения любые изменения БЛ уже завершены и заказчик получает результат. Если требуются еще изменения БЛ, то идет новый контракт и новая разработка + новое внедрение. Ой! Вы это серьезно? Можно примерные расценки, сколько будет стоить новый контракт + новая разработка + новое внедрение в ситуации "...а если клиент имеет статус Корпоративный (четвертая таблица), то разрешить продажу со скидкой 10%" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 12:11 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDAЕгоров АлександрЯ сижу не только на СУБД, но и на УЖЕ РАБОТАЮЩЕЙ СИСТЕМЕ. Если в этой системе требуется какое-либо изменение - я обращусь к автору этой системы, а не будут покупать новую. :) При замене же системы, пускай даже системы учета - затарты на приобретение новой СУБД далеко не самые главные. Причем чем крупнее фирма, тем больше затрат ложится на "дописание бизнес-логики", переобучение пользователей и перенастройку процессов, чем на стоимость СУБД. так ко мне и обратишься клиенты не переходят на другие СУБД ибо это дорого отнюдь не потому что нужно купить лицензий. Нужно еще обучить админов и т.п. Я не смогу уговорить боссов на покупку системы, которая на каждый чих потребует "новый контракт+новая разработка+новое внедрение". У нас гибкий бизнес. Правила меняются достаточно часто, особенно скидки, и ограниченения по ним. :) VoDAЕгоров АлександрДа зарабатывайте, пожалуйста. Я же не мешаю. :) Единственное пожелание - не закрывайте полностью уровень БД от доработки на местах. А то потом DBA мучаются с тормозами, а ничего поделать не могут. ;)возможность доработки приложения компанией-заказчиком это либо если ПО изначально OpenSource либо стоит НАМНОГО дороже обычной лицензии. Чаще всего заказчик не хочет платить за возможность доработки ПО своими разрабами. Вот тут у нас тоже какое-то принципиальное расхождение. Я видел достаточно много хороших программ, которые успешно внедрились, какое-то время успешно проработали, а потом пришел момент меняться - и суммы "нового контракта" оказались больше, чем переход на более худшую систему, но с возможностью собственной доработки. И всегда считал, что чем гибче бизнес компании, тем выгоднее иметь своего ИТ-специалиста на поддержке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 12:23 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDAЕгоров АлександрVoDAТак вынос БЛ в отдельный слой (на апп-сервер) и есть архитектурное решение. ...имеющие минусы в быстройдетсвии перед решениями, позволяющими оптимально "размазывать" БЛ по раздельным слоям. Но почему-то эти минусы очень фанатично отрицаются.минусов в быстродействии SQL - нет ибо Java выдает тот же SQL, что и ХП. Разница в скорости только в случаях массовой обработки данных БЕЗ сложной логики. Тут согласен Только ХП не гоняет ни сам этот SQL, ни результаты его исполения по сети. Hibernate, насколько я знаю, не формирует динамических хранимок для получения сложного и многообъектного фильтра, а вытягивает все необходимые данные и обрабатывает их сам. На СП. Массовая обработка данных - это, например, поток заявок покупателя, каждую позицию которых нужно проверить на корректность скидки? Представляете какой трафик поднимется между СП и БД, если таких заявок забивается тысячи в день, и в среднем состоят из десятков позиции, а некоторые и до сотни? ;) VoDAВот только оптимальное "размазывание" логики по слоям чаще всего дороже в разработке, чем плюхнуть всю БЛ на АппСервер. И заказчик и разработчик хотят уменьшить стоимость решения, потому принимается более дешевый вариант с приемлемой скоростью работы. Опять же начинаются ситуации когда вроде как и можно вынести что-то на СУБД, но поддержка "размазанной логики" выйдет дороже. Не обидеть ради. Так если Вы под каждый контракт пишите новый проект - тогда действительно дороже. Особенно с учетом, что Вам за каждое изменение будут платить. Понятно, что деньги нужны всем. Но вроде как рынок дает основания считать, что больше всего денег зарабатывают те, кто создает всякие фреймворки (конфигураторы, конструкторы, платформы и т.д.) и базовый бизнес-функционал в качестве демонстрации возможностей. Думаю, архитектурыне вопросы очень сильно зависят от того, разработкой каких именно систем заниматься. Это, кстати, тоже может быть причиной непонимания друг-друга... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 12:49 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmVoDA какое изменение БЛ может быть в момент внедрения? Вы это только в слух не говорите в серьезном обществе.как скажешь iscrafmВы с чем сравнивали? Или это воспринимать как "личное мнение, основанное на анализе только своей же работы"? Допустим я говорю, что ничего не выходит дороже и быстрее в разы. Несколько раз давал ссылку на документ, можете поискать.Это мое размышление на тему почему у нас заказывают ПО и в нем чаще всего фигурирует АппСервера (а не голые СУБД) + личное мнение основанное на анализе работы моей компании - достаточно большого вендора ПО и интегратора. iscrafmт.е. Вы признаете, что находитесь в погоне за универсальностью. Страннно. Тогда смысл Ваших постов становится еще более непонятным. Говорите что это плохо, но отстаиваете. Я понимаю, типа работа такая, но....я стараюсь понять почему большие приложения чаще пишутся применяя АппСервер, а не внутри СУБД. Тот же 1С или MS Axapta в качестве примера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 12:52 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDAiscrafmВы с чем сравнивали? Или это воспринимать как "личное мнение, основанное на анализе только своей же работы"? Допустим я говорю, что ничего не выходит дороже и быстрее в разы. Несколько раз давал ссылку на документ, можете поискать.Это мое размышление на тему почему у нас заказывают ПО и в нем чаще всего фигурирует АппСервера (а не голые СУБД) + личное мнение основанное на анализе работы моей компании - достаточно большого вендора ПО и интегратора. стоп! а кто говорил о голой СУБД без апп-сервера? С моей стороны было бы нелогично, учитывая что моя компания выпускает 3-звенную платформу и все проекты делает на ней. :) Речь, насколько я помню, идет о реализации бизнес-логики. Центром является APP сервер. Он и распределяет, какой фрагмент выполнить средствами СУБД, а какой другим способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:17 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
VoDAЕгоров АлександрПроверка выполняется непосредственно в СУБД - никаких изменений в производительности всей системы опять-таки нетвот тут фундаментальная ошибка. в системах в которых скорость работы принципиальна есть правило, что любое изменение кода вызывает деградацию пока не доказано обратное. И прогонка юнитов на кластере есть как раз доказательство того, что скорость не уменьшилась.Вы, когда меняете колесо у машины, ТО двигателя делаете? ;) Я же показывал - измения тестировались в том числе и на производительность. Ничто не мешает тестовый набор подготовить так, чтобы провести еще и стресс-тест. Но обычно достаточно анализа плана выполнения ХП и оценки изменения времени ее выполнения. VoDAЕгоров АлександрПодправляем юнит, пересобираем систему, тестируем её опять всю целиком? Параллельно получаем "нестандартную" версию системы у конкретного клиента, к которой начинаем где-то помнить, что модуль такой-то изменен, в отличии от базовой версии?а если мы внесли изменения в ХП это не будет ""нестандартную" версию системы у конкретного клиента, к которой начинаем где-то помнить, что ХП такой-то изменен, в отличии от базовой версии?" Ну, поскольку Вы не можете ответить по своей архитектуре, отвечу по своей :) Базовая архитектура содержит метод CheckRequest(), протокол взаимодействия с процедурами СУБД (на входе процедуры - ID документа, на выходе - фиксированная таблица конфликтов и предупреждений), поцедуры-заглушки, написанные на нужном диалекте SQL и минимальный функционал, определяющий "ошибка выполнения" как непустой датасет после выполнения процедуры, и умеющий выводить принятую таблицу ошибок пользователю. Тем самым, одна и таже версия системы, работает с разной бизнес-логикой проверки качества заявки покупателя. Еще чуть-чуть поднапрячься - и текст ХП можно будет компилировать по декларативному набору правил, который уже сам пользователь сможет настраивать и менять под изменения своего бизнеса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:29 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
carper, Практически полностью согласен с Вами. Замечу лишь, что хорошей архитектуры мало, для хороших продаж. А хороший маркетинг сможет хорошо продавать и не очень хорошую архитектуру :) И получается, что пока находишься на стороне "внутреннего разработика", можно и вылизать архитектуру, и оптимизировать быстродействие, и критиковать чужие разработки. :) Но когда собственноручно созданный продукт начинаешь продавать - главным уже становится далеко не качество архитектуры, а объем продаж. Тюнингом можно заниматься снова, если получится подняться и прочно выйти на рынок - тогда архитектурные изыски можно предлагать как конкурентное преимущество перед другими продуктами. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 13:48 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Егоров Александркогда собственноручно созданный продукт начинаешь продавать - главным уже становится далеко не качество архитектуры, а объем продаж. Тюнингом можно заниматься снова, если получится подняться и прочно выйти на рынок - тогда архитектурные изыски можно предлагать как конкурентное преимущество перед другими продуктами. :) Александр, есть одна деталь, напрямую связанная с архитектурой - стоимость поддержки. Она может быть такой, что всю выручку будет "съедать". Поэтому, архитектуру считаю одним из приоритетов еще до выпуска продукта на рынок. Тяжело и накладно поддерживать заплатки или переделки в случае промаха в самом начале. p.s. картинки о которых Вы говорили на пред. странице, с ходу не нашел, к сож. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:07 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Егоров АлександрЯ не смогу уговорить боссов на покупку системы, которая на каждый чих потребует "новый контракт+новая разработка+новое внедрение". У нас гибкий бизнес. Правила меняются достаточно часто, особенно скидки, и ограниченения по ним. :)Тогда вам выгоднее получить / сделать систему типа ERP имеющую свой встроенный язык- к примеру AX или 1С. Но вряд ли вы сможете сделать чтобы система работала быстро (скомпилированный код) и вы могли полностью менять ее поведение. В тех же ERP менять поведение системы можно, но в разрешенных разработчиком рамках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:13 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Егоров АлександрМассовая обработка данных - это, например, поток заявок покупателя, каждую позицию которых нужно проверить на корректность скидки? Представляете какой трафик поднимется между СП и БД, если таких заявок забивается тысячи в день, и в среднем состоят из десятков позиции, а некоторые и до сотни? ;) согласен, что оперирование массивом данных проще на СУБД. Могу даже добавить что мат.операции над байтами (когда по массиву байт пройтись и увеличить на единицу) намного быстрее сделать на С/С++, а не java. Из-за дополнительных проверок введенных в java. Егоров АлександрНо вроде как рынок дает основания считать, что больше всего денег зарабатывают те, кто создает всякие фреймворки (конфигураторы, конструкторы, платформы и т.д.) и базовый бизнес-функционал в качестве демонстрации возможностей. Думаю, архитектурыне вопросы очень сильно зависят от того, разработкой каких именно систем заниматься. Это, кстати, тоже может быть причиной непонимания друг-друга... :)Мы делаем любые системы Вот пару лет назад нам аутсорсили софт для формацевтических лабораторий, а в прошлом году эм... софт для голосового управления / помощи работникам складов перепиливали под нужды ... сортировочного цеха. Системы совсем не связанные друг с другом. Только принципы остаются общие, да написаны на одних и тех же фреймворках (Java) + требуют одинаковые сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:21 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmстоп! а кто говорил о голой СУБД без апп-сервера? С моей стороны было бы нелогично, учитывая что моя компания выпускает 3-звенную платформу и все проекты делает на ней. :) Речь, насколько я помню, идет о реализации бизнес-логики. Центром является APP сервер. Он и распределяет, какой фрагмент выполнить средствами СУБД, а какой другим способом.тогда нам проще будет найти точки взаимодействия. Выгода для производителя выносить логику на АппСервер: 1. дешевле нанять разработчиков на одном языке (АппСервера) чем на нескольких (АппСервер) + СУБД. 2. независимость от СУБД делает продукт более конкуренто-способным на большинстве рынков. Т.к. больше покупателей. 3. *сейчас только подумал* закрытость кода вынуждает заказчиков покупать саппорт или платить дополнительно за доводку системы. 4. бОльшее количество задач может быть решено на уровне АппСервера, а не СУБД. СУБД не годится ни для чего кроме оперирования персистными данными. Опять же в совсем больших системах с сотнями апп-серверов переносить БЛ с Апп на СУБД... ИМХО убьет производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:35 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Егоров Александрcarper, Практически полностью согласен с Вами. ... Замечу лишь, что хорошей архитектуры мало, для хороших продаж. А хороший маркетинг сможет хорошо продавать и не очень хорошую архитектуру :) "Сир, штыки годятся для чего угодно, кроме одного - на них нельзя усидеть". ( (С) Толейран ) Маркетологи могут завоевать рынок, но если рынок завоеван плохим продуктом они не смогут до бесконечности его поддерживать. Придется либо уходить с рынка либо кардинально перестраивать систему, последнее крайне опасно, т.к. часто дороже и требует больше времени, чем построить новую, а конкуренты уже дышат в затылок со своими не менее резвыми маркетологами. Повторить финт ушами, который делают производители продуктов питания, просто отказываясь от дискредитировавшей себя торговой марки и переходя на другую, особо не удастся, все же слишком разные жизненные циклы и затраты. Есть, разумеется, еще чисто российский путь, когда некая система навязывается гос. органами, но тут уж о какой архитектуре речь :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 14:38 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Повторить финт ушами, который делают производители продуктов питания, просто отказываясь от дискредитировавшей себя торговой марки и переходя на другую, особо не удастся, все же слишком разные жизненные циклы и затраты.А по моему это вполне справедливо и для ПО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:04 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
LSV,автор А по моему это вполне справедливо и для ПО Число грубых трудно исправимых ошибок, которые может позволить себе даже крупная софтверная компания, не меняя своей торговой марки и юр. лица, не велико, а выход на рынок под другой маркой куда сложнее и опаснее, слишком сильна конкуренция и очередь из других желающих с уже готовыми наработками. Можно пример, когда серьезный софт достигал высот исключительно за счет маркетинговых усилий, потом его продажи серьезно падали, выпускалось опять нечто от той же компании, но под другим именем, и такие циклы повторялись хотя бы 3-4 раза ? (Это минимальная "норма" для отечественных производителей продуктов "широкого потребления", которым и производить-то ничего не надо, всякие там Доярушки, Злато и прочее вообще из отечественного имеют только шрифт на этикетке, цены в рублях и подход к качеству при закупке) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:58 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
carperЕсть, разумеется, еще чисто российский путь, когда некая система навязывается гос. органами, но тут уж о какой архитектуре речь :( Извините, но это из области мифологии неудачников. Вот в нашем городе усиленно проталкивали Парус, финансировали это мероприятие из бюджета, ухлопали нормальные деньги. Выхлоп (количество внедрений) = 0. Все кто работают, используют 1С. Пробовали накоторые структуры насильно внедрить "БЭСТ" - то же самое. Количество внедрений = 0. При всех своих недостатках ПО 1С у него есть явное преимущество для пользователя - оно работает . Без привлечения высокооплачиваемых программистов, которые исправляют многочисленные ошибок. Без крутых SQL гуру, которых по крайней мере в наших краях километров на 500 нет ни одного. Без дорогостоящей поддержки. ПО 1С не лучшее ни по какому параметру, но наилучшее по их совокупности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 16:06 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
После появления ORM (nHibernate и EF) в мире .Net использую только DDD модель. Никакой логики на клиенте или бд. Свято верю, что бизнес-логика должна лежать в бизнес-слое, возможно частично в сервисном(API). А старые приложение где логика была на клиенте и/или в субд (на хранимках, констрейнтах и особо тригера) вспоминаю как страшный сон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 17:12 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
alneoСвято верю, что бизнес-логика должна лежать в бизнес-слое, возможно частично в сервисном(API).Аминь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 17:26 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmАлександр, есть одна деталь, напрямую связанная с архитектурой - стоимость поддержки.Какая такая поддержка? :) Сказано же - "новый контракт + новая разработка + новое внедрение" ;) Вопросы про поддержку я задавал тут , тут и тут. Ответов пока нет :) А так я с Вами согласен полностью. Даже считаю, что промахи в архитектуре вообще нельзя искоренить заплатками. Особенно если промах в архитектуре - это отсутствие возможности устанавливать заплатки. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 18:00 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36441934&tid=1542824]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 486ms |

| 0 / 0 |
