|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Дааааа.... не ожидал такого поворота событий :(( ! Dmitry V. Liseev , проверьте почту! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2006, 11:43 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
iscrafmЯ не требую, а предлагаю за Вас выполнить работу.Я не просил выполнять за меня работу. Я просил "...Если что-то утверждаешь, то будь готов показать..." iscrafmпо правде сказать ситуации блокировки конечно же есть.Ага... Когда к стенке приперли, так сразу правда пошла. Вы не стесняйтесь правду говорить, тут все свои ;) iscrafmНо они настолько мизерны, что о них не говорятА самое интересное, что они будут именно в тех случаях, о которых я говорил. Причем в ЛЮБОЙ СУБД. Берем PostgreSQL 8.1.4, который весь из себя MVCC. Берем первого клиента: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: plaintext 1. 2.
Код: plaintext 1. 2. 3.
Код: plaintext 1. 2.
iscrafmпросите дать какой-либо пример. Да еще и с апломбом утверждаете что это миф :).Утверждение о существовании "СУБД без блокировок" высказали Вы. Вам его и доказывать. iscrafmПо этому поводу я уже сказал. У меня нет времени и желания показывать как работают системы с интенсивным обновлением данных.Вас никто не обязывает писать в форум утверждения, которые Вы не желаете доказывать. Слив засчитан. iscrafmИ не употребляйте "нет блокировок - нет транзакций". Для технического специалиста не солидно.Для технического специалиста это очевидно. Пусть изначально на счете в банке записан "0". Первый юзер хочет положить 100 баксов, второй - снять 80. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
iscrafmПрибавляет ответственности. Если что-то утверждаешь, то будь готов показать.Ну, и где? Пока Ваши слова расходятся с делом. Либо показываете "СУБД без блокировок", либо признаетесь, что сами таких не знаете. Пока что я вынужден Вас обучать. Причем бесплатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2006, 15:47 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
iscrafmУдивительно, что Вы много времени уделили обратному варианту. При подключении к серверам открываете транзакции, а потом неспешно занимаетесь своими делами? :)Люди спрашивают - я консультирую. Потому что самая распространенная ошибка - взять визард и нагенерить автоматом кучу "объектного кода" по принципу "одна таблица - один класс, одна запись - один объект". Слова "объектно-реляционный маппинг" действуют на людей магически. Им кажется, что это и есть трехзвенка с крутой масштабируемостью. А когда осознают, что в итоге трафик между клиентом и сервером приложений возрос на порядок, а масштабируемость на порядок упала, то уже поздняк метаться. Надо все переписывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2006, 16:13 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
!!! Dmitry V. LiseevЛадно. Начнем с начала. Вот есть у нас система. Очень сложные данные с кучей зависимостей и констрейнов. Очень сложная логика. Логика такая сложная, что большинство нужных нам операций одним SQL запросом выполнить не получается. Даже прочитать нужные нам данные одним запросом не получается. Знаете, я не Станиславский, но вслед за ним скажу "Не верю!". То, что вы сейчас описали не бывает никогда , за исключением одной единственной ситуации - очень криво спроектированная структура данных.Простой пример: оператор вводит в систему накладную на отгрузку товара. Накладная состоит из "шапки" (номер склада, дата, фамилия оператора и т.д.) и нескольких записей в табличной части (название товара, количество коробок и т.д.). Очевидно, что накладную в систему нужно ввести целиком за одну транзакцию. Каким образом Вы предлагаете спроектировать данные, чтобы сделать это все за один SQL запрос? !!! Dmitry V. LiseevВообще, вопросы изолирования транзакций и стратегии блокировок описаны в специальной литературе.А про отложенные проверки целостности слыхали?Впервые слышу. Это как? Тут соседний магазин неделю торговал по ошибочным ценникам раза в полтора дешевле. Потом решили ценники проверить: "А мы понять не могли, откуда такой наплыв покупателей". Такой отложенной проверки целостности не надо, спасибо. В моей системе инженеры потом месяцами будут руками все разгребать и перепроверять. Если системе задан констрейн, то она должна его обеспечивать в реалтайме. !!!Хотя, конечно, судя по тому, что Вы тут рассказываете, Вы, вероятно, уже нашли серебряную пулю Я еще 10 лет назад так думал. Но потом осознал, что нет предела совершенству !!! Dmitry V. LiseevТо есть нужен принцип "один пакет - одна транзакция". Аналогично, было-бы хорошо, если бы все нужные для отображения данные передавались бы с сервера на клиент также одним пакетом.Правильно, не пойму только, почему бы так и не поступить?В двухзвенке через ODBC? Каким образом? Пример задачи с вводом накладной за одну транзакцию я приводил. Как делать предлагаете? !!! Dmitry V. LiseevА с другой стороны наш СП имеет толстый канал связи с СУБД. Совсем физически независимая сеть, даже отдельная сетевая карта, чтобы никто не мешал ему как можно быстрее провести транзакцию.А если работать с сервером напрямую, через ХП, то никакой независимой сети вообще не нужно. Не говоря уж об отдельной сетевой карте Можно и без отдельной подсети. Только экономии на копейки, а масштабирование ухудшится весьма заметно. !!! Dmitry V. LiseevУ нас нет dll. Сервер приложений полностью на скриптах. Поставляется заказчику целиком в хорошо откомментированных исходниках.Интересный подход. А если не отчет, то тоже может исправить в хорошо откомментированных исходниках ? А отвечают за это рукоблудие, насколько я понимаю, другие разработчики (см. ниже)Отвечает за рукоблудие тот, кто исправляет. То есть, системный администратор заказчика. !!! Dmitry V. LiseevЕсли заказчик не может сам сделать отчет, то просит нас.Скорее, не "если", а "когда". Когда испортит все до такой степени, что исправить будет сложнее, чем написать все заново.Когда что-нибудь испортит, сервер приложений за пять минут можно переустановить с дистрибутивного диска. !!! Dmitry V. LiseevПроектировалась мной лично с нуля. Я занимался реализацией всей серверной части. Клиентские части делали другие разработчики. Приход меня "на готовое" обычно сопровождается полным перепроектированием системы. Я это обычно сразу уточняю при приеме на работу ;) На поддержку готового нанимают сисадминов, а я - проектировщик.Тоже знакомый подход. То, что было раньше, в корзину, потому что у меня свой взгляд на мир.Потому, что ставится такая задача. Еще ни разу мне заказчик не говорил: "Вот у нас есть старая система, которая 15 лет назад написана на клиппере, и она нас полностью устраивает. Нужно только проводить регламентное обслуживание". Обычно вываливается "портянка" со списком проблем, которые так и не получилось решить в старой системе. Да еще и исходников обычно нет. Ну не принято было 15 лет назад отдавать заказчику все исходники. !!!Я только бумажку с красивыми и умными словами напишу, а что в результате получится - это не мои проблемы, для этого есть другие разработчики .Что получится в результате - как раз мои проблемы, ибо мне это потом годами сопровождать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2006, 18:23 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Dmitry V. LiseevДля технического специалиста это очевидно. Пусть изначально на счете в банке записан "0". Первый юзер хочет положить 100 баксов, второй - снять 80. Вы хотя бы суммы в школьных примерах меняйте, для солидности. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2006, 00:05 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Dmitry V. LiseevПростой пример Кстати, "ради искусства" я возьмусь реализовать Ваш простой пример одним SQL-оператором. Термин "запрос", который Вы употребляете, представляется мне неудачным - запрос по идее возвращает данные, и называть таковым оператор модификации грешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2006, 17:10 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
softwarer Dmitry V. LiseevПростой пример Кстати, "ради искусства" я возьмусь реализовать Ваш простой пример одним SQL-оператором. Термин "запрос", который Вы употребляете, представляется мне неудачным - запрос по идее возвращает данные, и называть таковым оператор модификации грешно. +1 вроде бы у Oracl технология блокировок в корне отличная от MS SQL. Было бы интересно сравнить "2 решения - 2 планеты - 2 подхода." ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2006, 18:35 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Dmitry V. LiseevПростой пример: оператор вводит в систему накладную на отгрузку товара. Накладная состоит из "шапки" (номер склада, дата, фамилия оператора и т.д.) и нескольких записей в табличной части (название товара, количество коробок и т.д.).Очевидно, что накладную в систему нужно ввести целиком за одну транзакцию.Я бы сказал, что Вы привели удивительно неудачный пример. Если Вы действительно предполагаете, что подобную структуру данных следует заполнять в одной транзакции в случае, если мы говорим об интерактивном вводе данных, то как вы представляете себе такого оператора, который не отрываясь вводит тысячи полторы-две позиций? Dmitry V. Liseev Каким образом Вы предлагаете спроектировать данные, чтобы сделать это все за один SQL запрос? Передергиваете, юноша. Процитирую Ваши слова повторно Dmitry V. Liseev Даже прочитать нужные нам данные одним запросом не получается. Dmitry V. Liseev !!! Dmitry V. LiseevВообще, вопросы изолирования транзакций и стратегии блокировок описаны в специальной литературе.А про отложенные проверки целостности слыхали?Впервые слышу. Это как? Можно было бы просто отослать вас к RTFM, но, поскольку мы не обсуждаем достоинства и недостатки конкретных серверов БД, скажу только о том, что существуют СУБД, позволяющие отложить декларативную проверку целостности на конец транзакции. Dmitry V. LiseevТут соседний магазин неделю торговал по ошибочным ценникам раза в полтора дешевле. Потом решили ценники проверить: "А мы понять не могли, откуда такой наплыв покупателей". Такой отложенной проверки целостности не надо, спасибо. В моей системе инженеры потом месяцами будут руками все разгребать и перепроверять. Если системе задан констрейн, то она должна его обеспечивать в реалтайме.И тут все наконец начинают понимать, что Вы пытаетесь проектировать системы с длинными транзакциями, а про то, что транзакции могут быть короткими, Вы вероятно не слышали. Пора в школу Dmitry V. Liseev !!! Dmitry V. LiseevТо есть нужен принцип "один пакет - одна транзакция". Аналогично, было-бы хорошо, если бы все нужные для отображения данные передавались бы с сервера на клиент также одним пакетом.Правильно, не пойму только, почему бы так и не поступить?В двухзвенке через ODBC? Именно в двухзвенке. Про ODBC Вы сами только что придумали. Dmitry V. LiseevКаким образом? Пример задачи с вводом накладной за одну транзакцию я приводил. Как делать предлагаете?Очевидность использования в приведенном примере длинной транзакции очевидна только Вам. Никто не мешает оформить сохранение накладной в виде: 1. Сохранение заголовка 2. Сохранение порций строк между, введенных после предыдущего сохранения. Транзакции при этом точечные и все надуманные Вами проблемы пропадают сами собой. Dmitry V. Liseev !!! Dmitry V. LiseevА с другой стороны наш СП имеет толстый канал связи с СУБД. Совсем физически независимая сеть, даже отдельная сетевая карта, чтобы никто не мешал ему как можно быстрее провести транзакцию.А если работать с сервером напрямую, через ХП, то никакой независимой сети вообще не нужно. Не говоря уж об отдельной сетевой карте Можно и без отдельной подсети. Только экономии на копейки, а масштабирование ухудшится весьма заметно.Так-так, ну ка, расскажите нам поподробнее о масштабировании, особенно в случае самописного сервера приложений, написанного на скриптовом языке, желательно в сравнении, скажем, с возможностями масштабирования Oracle 10g Dmitry V. Liseev !!!Интересный подход. А если не отчет, то тоже может исправить в хорошо откомментированных исходниках ? А отвечают за это рукоблудие, насколько я понимаю, другие разработчики (см. ниже)Отвечает за рукоблудие тот, кто исправляет. То есть, системный администратор заказчика.Ага, т.е., Вы с себя всю ответственность за поддержку и развитие системы снимаете? Ну что ж, тоже вариант. Только, к сожалению, не наш. Dmitry V. Liseev !!! Dmitry V. LiseevЕсли заказчик не может сам сделать отчет, то просит нас.Скорее, не "если", а "когда". Когда испортит все до такой степени, что исправить будет сложнее, чем написать все заново.Когда что-нибудь испортит, сервер приложений за пять минут можно переустановить с дистрибутивного диска.Измененный заказчиком функционал, обеспечивающий процессы заказчика у вас тоже на дистрибутиве? Dmitry V. Liseev...тут лишнее скипнуто... !!!Я только бумажку с красивыми и умными словами напишу, а что в результате получится - это не мои проблемы, для этого есть другие разработчики .Что получится в результате - как раз мои проблемы, ибо мне это потом годами сопровождать.Вы постоянно противоречите самому себе. То вы отдаете заказчику все в исходниках - правь-не хочу, то сначала заявляете, что заказчик не может написать ТЗ, но пишет требования. Вы уж определитесь сначала, какой именно линии собираетесь придерживаться в дискуссии ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 00:02 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Дмитрий , Вы получили почту от меня или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 01:05 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Самый правильный способ, если отчеты на серевере будут компилироваться на лету в некий П-Код (при первом запуске). А потом буду исполняться специальной виртуальной машиной. Для этого нужно написать свой интерпретатор. При всем страшном слове "написать свой интерпретатор" стоит это достаточно мало. Если интересно могу даже сказать почему... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 02:55 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
МетапрограммистСамый правильный способ, если отчеты на серевере будут компилироваться на лету в некий П-Код (при первом запуске). А потом буду исполняться специальной виртуальной машиной. Это не "самый правильный" способ, а "самый интересный программисту". Ну и позволяющий объяснить, почему он не занимается такими скучными и неинтересными вещами, как создание чего-то, реально нужного пользователю. МетапрограммистДля этого нужно написать свой интерпретатор. Фи. Интерпретаторы suxx. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 11:08 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
авторНикто не мешает оформить сохранение накладной в виде: 1. Сохранение заголовка 2. Сохранение порций строк между, введенных после предыдущего сохранения. Транзакции при этом точечные и все надуманные Вами проблемы пропадают сами собой. сомневаюсь, что на сервере нужно сохранение накладной из шапки и детали-строк в двух транзакциях а не в одной. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 11:31 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Petro123сомневаюсь, что на сервере нужно сохранение накладной из шапки и детали-строк в двух транзакциях а не в одной. Серверу в принципе пофиг (если не говорить о криво спроектированных приложениях, следствием которых является "не пофиг"). А вот пользователю не пофиг - ему хочется, чтобы кнопки типа "Сохранить"/"Отменить" работали неким разумным образом, а не в соответствии с представлениями программиста об оптимальном количестве транзакций. Допустим, я создам шапку документа, три позиции, нажму кнопку "Сохранить". В этот момент произойдет нечто, например падение сервака по питанию. Если после подъема сервака моей накладной в базе не окажется - печально, но понятно. А вот если в базе окажется шапка накладной, но не окажется позиций - у меня возникнет желание возлюбить программиста. Сучковатым деревянным любилом размера XXL. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 13:15 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
softwarer Допустим, я создам шапку документа, три позиции, нажму кнопку "Сохранить". В этот момент произойдет нечто, например падение сервака по питанию. Если после подъема сервака моей накладной в базе не окажется - печально, но понятно. А вот если в базе окажется шапка накладной, но не окажется позиций - у меня возникнет желание возлюбить программиста. Сучковатым деревянным любилом размера XXL. я с тобой согласен: Есть бизнес-требование - Сохранить накладную (а не шапку отдельно и детальки отдельно). Поэтому транзакция одна или составная из подтранзакций. При незавершении подтранзакции - основная транзакция должна откатится (шапка документа). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 13:27 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
авторПри незавершении подтранзакции - основная транзакция должна откатится (шапка документа). Это зависит от бизнес-требований. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 13:37 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
softwarerЭто не "самый правильный" способ, а "самый интересный программисту". Ну и позволяющий объяснить, почему он не занимается такими скучными и неинтересными вещами, как создание чего-то, реально нужного пользователю. Фи. Интерпретаторы suxx. Еще раз повторяю самый правильный способ для дальнейшей поддержки и сопровождения системы. Принцип которой - отделить мух от котлет. Бизнес-логику от ядра платформы. Язык интерпретатор должен быть таким, чтобы эту бизнес логику писать влет. Так чтобы в паре десятке строк можно было уместить нехилый отчетик. Должно быть разделение труда. Человек который будет писать такие отчетики должен больше разбираться в прикладной области (в бизнес семах) и меньше в хитрых схемах программирования. Кстати уважаемый просьба: меньше эмоций, а больше конкретики ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 19:27 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
МетапрограммистЯзык интерпретатор должен быть таким, чтобы эту бизнес логику писать влет. Так чтобы в паре десятке строк можно было уместить нехилый отчетик. Открою Вам страшную тайну - такой язык уже есть. Более того, он довольно широко распространен и худо-бедно стандартизирован - это Язык Структурированных Запросов. Ну и интерпретаторы этого языка тоже имеют место быть - про СУБД, надеюсь, слыхали? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 19:48 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
МетапрограммистЕще раз повторяю самый правильный способ для дальнейшей поддержки и сопровождения системы. Уважаемый, я далеко не самый молодой из программистов, но песня, которую Вы сейчас исполняете, примерно на двадцать лет старше меня. На этом пути были достигнуты некоторые интересные результаты, в частности справедливо упомянутый !!! язык SQL. Эта тема разрабатывалась достаточно серьезно, и на сегодня известные решения такого рода вполне естественным образом делятся на "весьма дорого стоившие" и "откровенно дерьмовые" (пояснение - много худшие, нежели уместно примененная комбинация готовых решений). Более того, даже некоторые "весьма дорого стоившие" решения сдают позиции. В силу этих соображений явление пророка, готового показать легкую дорогу, вызывает у меня некоторый скепсис относительно финальной точки маршрута. МетапрограммистКстати уважаемый просьба: меньше эмоций, а больше конкретики Видите ли, уважаемый, у меня есть привычка подстраиваться под стиль собеседника. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2006, 20:22 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Какой-то скадальный топик. :) Возвращаясь к теме 3-х звенок... ситуация ниже просто нереальная: автор1 юзер: Запускает транзакцию. 1 юзер: Читает 0, прибавляет 100, записывает 100. Теперь на счете 100 баксов. 2 юзер: Запускает транзакцию. 2 юзер: Читает 100, отнимает 80, записывает 20. Теперь на счете 20 баксов. 2 юзер: Подтверждает транзакцию. 1 юзер: Откатывает транзакцию. Это пример того, как работает транзакция в худшем варианте. Хотя бы потому что после записи 100$ не было подтверждения, а юзер 2 уже положил 100$ в карман. Этот пример приводится как иллюстрация того, как не нужно делать. Во-вторых, непонятна ситуация "открыл транзакцию....делаю.... думаю... отменяю или подтверждаю". Транзакции открываются не для того, чтобы пойти выпить текилы и потом подтвердить сей факт. А потому, логично, что одним запросом или двумя (а иногда и десятью) не столь важно. Ради искусства конечно можно, с удовольствием бы посмотрел, как уважаемый softwarer это сделал бы. У меня пока получается двумя как минимум :) Если конечно под запросом не понимается запуск хп. МетапрограммистТак чтобы в паре десятке строк можно было уместить нехилый отчетик Пара десятков - это пока SQL. Хотя хорошо спроектированный QBE может и в меньше уложится, но уж слишком зависим от структуры. Последователи тоже, пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 01:17 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
iscrafmКакой-то скадальный топик. :) Возвращаясь к теме 3-х звенок... ситуация ниже просто нереальная: автор1 юзер: Запускает транзакцию. 1 юзер: Читает 0, прибавляет 100, записывает 100. Теперь на счете 100 баксов. 2 юзер: Запускает транзакцию. 2 юзер: Читает 100, отнимает 80, записывает 20. Теперь на счете 20 баксов. 2 юзер: Подтверждает транзакцию. 1 юзер: Откатывает транзакцию. Это пример того, как работает транзакция в худшем варианте. Хотя бы потому что после записи 100$ не было подтверждения, а юзер 2 уже положил 100$ в карман. Этот пример приводится как иллюстрация того, как не нужно делать. Во-вторых, непонятна ситуация "открыл транзакцию....делаю.... думаю... отменяю или подтверждаю". Транзакции открываются не для того, чтобы пойти выпить текилы и потом подтвердить сей факт. А потому, логично, что одним запросом или двумя (а иногда и десятью) не столь важно. Ради искусства конечно можно, с удовольствием бы посмотрел, как уважаемый softwarer это сделал бы. У меня пока получается двумя как минимум :) Если конечно под запросом не понимается запуск хп. МетапрограммистТак чтобы в паре десятке строк можно было уместить нехилый отчетик Пара десятков - это пока SQL. Хотя хорошо спроектированный QBE может и в меньше уложится, но уж слишком зависим от структуры. Последователи тоже, пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 01:30 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
!!!Открою Вам страшную тайну - такой язык уже есть. Более того, он довольно широко распространен и худо-бедно стандартизирован - это Язык Структурированных Запросов. Ну и интерпретаторы этого языка тоже имеют место быть - про СУБД, надеюсь, слыхали? Кончено же SQL никто не отменял. А вот описание бизнес-логики должно вестись на специально заточенном для него языке. Конечно же это в идеале. Такого языка еще нет. По крайней мере стандатризованного и общепринятого. Разные фирмы создают свой язык. Но оно и понятно - так как прикладная задача у всех разная, поэтому здесь нельзя создать что-то одно универсальное. Как например SQL, который по своему существу опирается на теорию множеств и математическую логику. В нашем же случае такой теории нет. Слишком близко подходим к реалии повседневной жизни :) Итак нужен специальный язык - не только для построения отчетов, но и для самого главного - описания бизнес процессов. Причем легкого, не напрямую через язык SQL. А например для того чтобы раз и навсегда покончить с такими траблами: iscrafmЭто пример того, как работает транзакция в худшем варианте. Хотя бы потому что после записи 100$ не было подтверждения, а юзер 2 уже положил 100$ в карман. Этот пример приводится как иллюстрация того, как не нужно делать... Создается системный прикладной объект РегистрОстатковДенег, РегистрЕщеЧегоТо и так далее. Через который происходят операции, связанные с соответствующей бизнес логикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 01:31 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
Дополнение: В чем достоинство такого языка-интерпретатор, это то что программист разработчик бизнес-логики не обязательно должен знать об особенностяз работ СУБД, например как описываемая выше проблема с блокировками. Об этом позаботится программист ядра платформы. Разделение труда приводит к увеличению производительности и улучшению качества продукта. Разве не так? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 01:35 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
softwarer В силу этих соображений явление пророка, готового показать легкую дорогу, вызывает у меня некоторый скепсис относительно финальной точки маршрута. Видите ли, Автор топика избрал построение приложения самостоятельно, без использования платформ сторонних производителей. Отсюда я делаю вывод, что у него очень много энергии и сил, а раз так, то хватит осилить и правильную дорогу, несмотря на то что этот путь тернист и труден. Другими словами я говорю как бы сделал я на его месте. Я уверен что я знаю как сделать правильно и я могу это доказать. В то же время говорить чтобы он вообще отказывался от создания своего приложения или платформы это неправильно (хотя бы с педагогической точки зрения). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 01:42 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
iscrafmКакой-то скандальный топик. :) Ну вот, хоть кто-то опомнился!!! Иногда стОит оглядываться назад. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 02:44 |
|
Вопросы по реализации 3-х звенного приложения...
|
|||
---|---|---|---|
#18+
МетапрограммистСоздается системный прикладной объект РегистрОстатковДенег, РегистрЕщеЧегоТо и так далее. Через который происходят операции, связанные с соответствующей бизнес логикой. Вот это уже звучит разумно. Осталось понять, что для создания объектов типа РегистрОстатковДенег совершенно незачем мутить свой язык вместе со всеми его недоработками. МетапрограммистВ чем достоинство такого языка-интерпретатор, это то что программист разработчик бизнес-логики не обязательно должен знать об особенностяз работ СУБД, например как описываемая выше проблема с блокировками. Об этом позаботится программист ядра платформы. Ой, господи. Вы собираетесь рассказать все старые бредовые сказки нашей отрасли? Воспользуйтесь поиском, эта сказка обсуждалась достаточное количество раз, и в очередной раз развенчивать ее неинтересно. МетапрограммистРазделение труда приводит к увеличению производительности и улучшению качества продукта. Разве не так? ;) Что касается увеличения производительности - я бы с удовольствием посмотрел, как увеличится производительность при разделении труда между разработчиками, один из которых ставит открывающие скобки, другой закрывающие, а третий пишет текст между ними (вот только он сегодня на работу не вышел). Что касается качества продукта - если скорость работы отчета, масштабируемость решения и прочие подобные факторы исключить из понятия качества, то может быть описываемый интерпретатор его и повысит. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2006, 09:03 |
|
|
start [/forum/topic.php?fid=33&msg=33960682&tid=1549276]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 515ms |
0 / 0 |