|
|
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Кифирчик кто что ещё хочет сказать по поводу моей специфики... в смысле квалификации? ))) Скорее всего, они имеют в виду, что условие a.build_num = null никогда не выполнится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 21:32 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСiscrafm, Смысл какого именно слова вам объяснить? да начиная с самого первого перла ОКСiscrafm Верификацию действительно делают на клиенте. Валидацию тоже конечно можно, если система для монопольного использования. Очень, очень красивое решение - валидация на клиенте. Вам бы банковское ПО проектировать. p.s. какой-то бестолковый тролль попался, ничего не понимает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 21:34 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmdrev, многие путают эти понятия. у них даже определения, в том же ISO практически одинаковые. Несколько "но"... 1. верификация всегда выполняется до валидации, ни никак не наоборот 2. если верификация говорит, что да, данные соответствуют, то валидация подтверждает результаты верификации... утверждает, фиксирует.. как больше нравится, смысл от этого не меняется. если, допустим, на клиенте выполняется верификация правильности исходных данных для транзакции (проверка на соответствие заданным ограничениям), то процедура валидации, выполнив транзакцию и доказав тем самым их правильность, подтверждает это. Слово "доказав" - ключевое для понимания различий в этих двух терминах. Ладно, Б-г с ними, с терминами.. чувствую, что прояснить до конца не получится Я пытался донести мысль, что проверка одного и того же поля, в зависимости от бизнес-правил, ограничений на трафик и требований удобства пользователя должна выполнятся как минимум на одном из уровней - в базе, а во многих случаях и на клиенте с возможным кешированием информации. Например, проверка на максимальную сумму снятия может быть простой (для всех < $500) или зависеть от типа пользователя (или даже от конкретного пользователя ). Таким образом мы приходим к необходимости частичного или полного дублирования бизнес логики как минимум в БД и на клиенте. В чрезвычайно редких случаях ее также нужно имплементировать на МТ, который, кстати, вовсе не обязательно СП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 22:24 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
drevТаким образом мы приходим к необходимости частичного или полного дублирования бизнес логики как минимум в БД и на клиенте. Почему дублировать? Клиент может кешировать вместе с данными и те бизнес-правила, которые необходимы для проверки этих данных :) Зависит от конкретной реализации клиентской части, не более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 10:36 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey, Bogdanov AndreyЯ правильно понимаю, что обяснить сделай "insert into..." существенно сложнее, чем вызови процедуру "insertInto". Неужели все так плохо с разработчиками среднего слоя? Неудачный минимализм. Если вам не нравится идея - это не повод приводить глупые примеры. Процедур "insertInto" не бывает, бывают "CreateClient", "CreateWorkOrder" и т.п. "Сегодня" в них может оказаться и один инсерт, а "завтра" не только. А ещё у нас разработчики среднего слоя не только не делают "инсерты" и не проектируют БД , но и не проектируют интерфейс пользователя - это тоже делают отдельные люди, хотя и большинству разработчиков не составит труда никидать формочку и без UI-дизайнера, но не делают, потому что не специалисты в этом и они не будут сидеть и просчитывать, например, число действий пользователя для выполнения сценария в системе. Идею я объяснил - распредление работ в соответствии с профессиональными навыками. Мы не расчитываем на Java-программистов, которые спокойно могут сертифицироваться на разработчика под Oracle. Мы задачи распределяем по-другому. И я не называю ваш подход "костылями", программируйте на здоровье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 12:01 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
разработчик среднего слоя 1. не знает структуру БД 2. не занимается бизнес-логикой, т.к. сказано, что вся логика на процедурах БД 3. не занимается клиентской частью и интерфейсом Загадка: чем занимается разработчик среднего слоя в таком случае? Все что осталось - ретрансляция запросов от клиента к СУБД. Эта задача один раз проектируется, кодируется и забывается. К тому же, полно таких ретрансляторов в готовом виде. Может о чем-то умалчивается? Или просто нет информации о том, кто и чем занимается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 12:25 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
web_foxЕсли вам не нравится идея - это не повод приводить глупые примеры. Процедур "insertInto" не бывает, бывают "CreateClient", "CreateWorkOrder" и т.п. Правда не бывает? Во всех встречавшихся мне примерах реализации вашего подхода "вся работа с БД только через ХП" как раз процедуры insertInto (а также updateInto и т.п.) встречались в изобилии. Да и Кифирчик именно такую процедуру приводил. Ну если вы так не делаете, то ваш подход в целом понятен, правда средства его реализации на мой взгляд не лучшие. РСУБД позволяет организовать данные в соответствии с реляционной моделью. Наиболее естественным и удобным языком для работы с реляционными данными является SQL. Вы поверх реляционной модели строите объектную - именно в рамках этой модели появляются такие объекты, как Client, WorkOrder и т.п. Согласен, для реализации бизнес-логики объектная модель данных действительно удобнее (то есть имеем не два слоя "модель данных"-"бизнес-логика", а три "реляционная модель"-"объектная модель"-"бизнес логика"). Но вот ее реализация средствами хранимых процедур в РСУБД не самый удобный вариант. Гораздо удобнее вынести слой преобразования реляционной модели в объектную на более подходящие для этого средства. Может быть и вообще стоит отказаться от слоя реляционной модели (зачем она вам?), а использовать ООБД. Теперь можно вернуться в основное русло темы немного расширив его и к вопросу "где должна лежать бизнес-логика?" добавить еще и вопрос "где должна лежать объектная модель данных?" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 12:28 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andreyможно вернуться в основное русло темы немного расширив его и к вопросу "где должна лежать бизнес-логика?" добавить еще и вопрос "где должна лежать объектная модель данных?" все движется к этому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 13:01 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafm Ничего, наберетесь опыта и сами поймете, почему ваше решение размещать валидацию на клиенте выглядит смешным и по-студенчески наивным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 13:10 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСiscrafm Ничего, наберетесь опыта и сами поймете, почему ваше решение размещать валидацию на клиенте выглядит смешным и по-студенчески наивным. у меня нет таких решений? Ты меня наверное с кем-то перепутал. Какой-то бестолковый тролль. Костя отвечай уже под своим ником. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 13:16 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Ну нет, так нет. Тогда вам лучше пояснить, что это была шутка: iscrafm Верификацию действительно делают на клиенте. Валидацию тоже конечно можно, если система для монопольного использования. А то кто-нибудь может воспринять, как хорошую идею. Некрасиво может получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 13:24 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСНу нет, так нет. Тогда вам лучше пояснить, что это была шутка: iscrafm Верификацию действительно делают на клиенте. Валидацию тоже конечно можно, если система для монопольного использования. А то кто-нибудь может воспринять, как хорошую идею. Некрасиво может получиться. нет, это была не шутка. Там по-русски все написано. Скажи на какой язык перевести, я переведу смысл фразы " если система для монопольного использования ", если по-русски не понимаешь. Могу помочь. Странно, что ты с незнанием русского языка взялся флудить на русскоязычном форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 13:36 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmнет, это была не шутка. Там по-русски все написано. Скажи на какой язык перевести, я переведу смысл фразы " если система для монопольного использования ", если по-русски не понимаешь. Могу помочь. Странно, что ты с незнанием русского языка взялся флудить на русскоязычном форуме. Есть какие-нибудь мысли по обоснованности данного решения или ваши слова следует воспринимать как "личное мнение, не основанное на сравнении и анализе"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 14:42 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСiscrafmнет, это была не шутка. Там по-русски все написано. Скажи на какой язык перевести, я переведу смысл фразы " если система для монопольного использования ", если по-русски не понимаешь. Могу помочь. Странно, что ты с незнанием русского языка взялся флудить на русскоязычном форуме. Есть какие-нибудь мысли по обоснованности данного решения или ваши слова следует воспринимать как "личное мнение, не основанное на сравнении и анализе"? мнение о чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 14:43 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
о том, что в однопользовательской системе без разницы, где делать проверку? Или о том, что если человек не понимает по-русски, то ему нужно помочь, перевести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 14:45 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
если по первому варианту, то могу даже дополнить: в системе для одного пользователя даже сервер не нужен. Если по второму, то хоть и говорят, что не нужно кормить троллей, но если бедолага не понимает простых вещей, то почему бы и не дать кроху хлеба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 14:49 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmв системе для одного пользователя даже сервер не нужен. У вас необходимость использования сервера определяется исключительно количеством пользователей системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 15:27 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСiscrafmв системе для одного пользователя даже сервер не нужен. У вас необходимость использования сервера определяется исключительно количеством пользователей системы? нет, она определяется необходимостью. А у вас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 15:32 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmнет, она определяется необходимостью. А у вас? Вы как-то сами себе противоречите: iscrafmв системе для одного пользователя даже сервер не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 15:37 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
Разницу же между монопольным использованием системы и количеством пользователей системы предлагаю изучить самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 15:42 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСiscrafmнет, она определяется необходимостью. А у вас? Вы как-то сами себе противоречите: iscrafmв системе для одного пользователя даже сервер не нужен. необходимость - это когда что-то нужно. Для одного пользователя в сервере нет необходимости. Может не возникнуть необходимости и для двух-трех и т.п., если они работают в монопольном режиме (извини за употребление незнакомых тебе слов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 15:43 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСРазницу же между монопольным использованием системы и количеством пользователей системы предлагаю изучить самостоятельно. если не понимаешь что это такое применительно к информационным системам, попробуй дома с DVD центром провести эксперимент. Посади несколько человек послушать музыку. Уровень громкости регулируй на DVD, чтобы он всех удовлетворил. Потом, в гнездо для наушников, воткни эти самые наушники и отрегулируй звук при помощи регулятора на них (на клиенте), так чтобы было комфортно тебе. Поверь, барабанные перепонки остальных от этого не пострадают. Наслаждайся монопольным использованием звука. Можешь убрать сервер (центр), за ненадобностью, и воткнуть наушники в персональный плеер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 16:01 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
iscrafmДля одного пользователя в сервере нет необходимости. Забавный максимализм. Где же тогда хранить данные, скажем, той или иной мобильной системе сбора данных, системе видеорегистрации или хотя бы единственному бухгалтеру небольшой компании? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 16:26 |
|
||
|
Где должна лежать бизнес-логика в мнгоуровневом приложении
|
|||
|---|---|---|---|
|
#18+
ОКСiscrafmДля одного пользователя в сервере нет необходимости. Забавный максимализм. Где же тогда хранить данные, скажем, той или иной мобильной системе сбора данных, системе видеорегистрации или хотя бы единственному бухгалтеру небольшой компании? на компьютере. p.s. с нашниками получилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2010, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36490530&tid=1542824]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
146ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 423ms |

| 0 / 0 |
