|
|
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Пассаж про хранимки без контекста не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2017, 23:46 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, ты про написание хранимок серьёзно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2017, 23:56 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
вадяLeonid Kudryavtsev, ты про написание хранимок серьёзно? что про хранимки? что "их на SQL не пишут" ? конечно серьезно В Oracle их пишут на PL/SQL или Java В MS SQL их пишут на Transact SQL В Postgress на PL/pgSQL AFAIK. Может конечно отстал от жизни. И сейчас все изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 00:28 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
SiemarglМурычпропущено... Хотите сказать что главное чтобы то чем Вы пользуетесь было типовым решением? Для Вас даже менее важны затраты, производительность и гибкость решения? Производительность типовых рекомендованных решений "от производителя" высокая. Затраты/гибкость меня волнуют меньше. Предлагаю вместо обсуждений реальных решений Вам вернуться к обсуждению нереалистичного SQL+++ Почему нереалистичного? Август - сентябрь - в Firebird 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 00:32 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevвадяLeonid Kudryavtsev, ты про написание хранимок серьёзно? что про хранимки? что "их на SQL не пишут" ? конечно серьезно В Oracle их пишут на PL/SQL или Java В MS SQL их пишут на Transact SQL В Postgress на PL/pgSQL AFAIK. Может конечно отстал от жизни. И сейчас все изменилось. Ну настолько акцентироваться на отличиях sql ansi от реализаций - это буквоедство, надо за такое морду бить ) МурычSiemarglпропущено... Производительность типовых рекомендованных решений "от производителя" высокая. Затраты/гибкость меня волнуют меньше. Предлагаю вместо обсуждений реальных решений Вам вернуться к обсуждению нереалистичного SQL+++ Почему нереалистичного? Август - сентябрь - в Firebird 3. Я упоминал psql. FB3 уже давно вышла, 3.0.2 на дворе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 00:46 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
SiemarglПочему нереалистичного? Август - сентябрь - в Firebird 3. Я упоминал psql. FB3 уже давно вышла, 3.0.2 на дворе[/quot] Да, но в FB3 пока обычный сиквел, пусть и с процедурной частью. Будет с классами. Можно будет средствами сиквела создавать классы, методы, объекты, и манипулировать ими. Все старые возможности сохраняются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 00:55 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Мурыч, Я еще упоминал ее "на крайний случай" - там интересные особенности. Сервер за целостностью [метаданных] следит как мама несовершеннолетней дочки. Ты на ходу ничего поменять в структуре толком не можешь, причем транзакции мимо. Отладка в ООП-технике будет адом. Подробности лучше уточни в профильной ветке, я так себе в курсе - только примус починяю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 01:00 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
SiemarglМурыч, Я еще упоминал ее "на крайний случай" - там интересные особенности. Сервер за целостностью [метаданных] следит как мама несовершеннолетней дочки. Ты на ходу ничего поменять в структуре толком не можешь, причем транзакции мимо. Отладка в ООП-технике будет адом. Подробности лучше уточни в профильной ветке, я так себе в курсе - только примус починяю. Спасибо за предупреждение. У Вас видимо какие-то свои представления о том как это сделано, но реальность немного другая. Этих рисков там нет. Отладка будет - одно удовольствие.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 01:15 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
SiemarglНу настолько акцентироваться на отличиях sql ansi от реализаций - это буквоедство, надо за такое морду бить ) НЕТ !!! [цензурой русский язык вырезан] Это НЕ реализация. SQL - это [цензурой вырезано] Query Language. PL/SQL - это сокращение от Procedural Language HTML - это сокращение от Hipertext Markup Language а CSS - это даже не language, а Cascading Style Sheets ))) Давайте тогда уж сразу на HTML сторед процедуры писать. А мелочи реализации - это буквоедство. Все эти споры, очень сильно напоминают Айсидору Дункан. Если все делать через одно место, то и появляется желание скрестить ООП и SQL. Если все делать нормально, то и желаний таких не возникает. Дабы одно теплое, а другое мягкое. А если их скрещивать, то может получится что то еще и дурно пахнущее. - Извиняюсь, - перебил его Швондер, - вот именно по поводу столовой и смотровой мы и пришли говорить. Общее собрание просит вас добровольно, в порядке трудовой дисциплины, отказаться от столовой. Столовых ни у кого нет в Москве. - Даже у Айседоры Дункан! - звонко крикнула женщина. С Филиппом Филипповичем что-то сделалось, вследствие чего его лицо нежно побагровело, но он не произнес ни одного звука, выжидая что будет дальше. - И от смотровой также, - продолжал Швондер, - смотровую прекрасно можно соединить с кабинетом. - Угу, - молвил Филипп Филиппович каким-то странным голосом, - а где же я должен принимать пищу? - В спальне, - хором ответили четверо. Багровость Филипп Филипповича приняла несколько сероватый оттенок. - В спальне принимать пищу, - заговорил он придушенным голосом, - в смотровой - читать, в приемной - одеваться, оперировать - в комнате прислуги, а в столовой - осматривать? Очень возможно, что Айседора Дункан так и делает. Может быть, она в кабинете обедает, а кроликов режет в ванной. Может быть... Но я не Айседора Дункан!! - вдруг рявкнул он, и багровость его стала желтой. - Я буду обедать в столовой, а оперировать в операционной! Передайте это общему собранию, и покорнейше прошу вас вернуться к вашим делам, а мне предоставить возможность принять пищу там, где ее принимают все нормальные люди, то есть в столовой, а не в передней и не в детской. p.s. Пошутил про сторед процедуры на HTML... Но ведь уже и до этого дошло. Народ уже начинает пропагандировать подход, когда вся логика на JavaScript'е, а через AJAX и REST чисто SELECT'ы гоняются.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 01:32 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, тебе просто хочется пов...ся, в любом случае необходимо указывать имя субд mssql, mysql, fb,.... и этим будет сказаны все языковые тонкости и различия sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 06:35 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Господа, господа! (звон председательского колокольчика) Попрошу не отклоняться от темы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 08:16 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
вадятебе просто хочется пов...ся, в любом случае необходимо указывать имя субд mssql, mysql, fb,.... и этим будет сказаны все языковые тонкости и различия sql. Да нет языковых тонкостей SQL (Select) для программирования (написания кода) не предназначен. И Select изначально предназначен исключительно как язык доступа к нормализованным реляционным данным, представленный в виде нормализованных табличек и описания отношений между ними. Для программирования сторед процедур предназначены языки ПРОГРАММИРОВАНИЯ. В последних, проблем с ООП нет как класс. Ну хочешь ООП, ну создай себе классы хотья на Java, хоть на PL/SQL. В чем-пробема? Проблемы начинаются при попытке скрестить ежа и удава. ООП и реляционной базы данных. Специально нашел Гради Буча "Объектно ориентированный анализ и проектирование". На 3-ей же страницы Пять признаков сложной системы Исходя из такого способа изучения, можно вывести пять общих признаков любой сложной системы. Основываясь на работе Саймона и Эндо, Куртуа предлагает следующее наблюдение [7]: 1. "Сложные системы часто являются иерархическими и состоят из взаимозависимых подсистем, которые в свою очередь также могут быть разделены на подсистемы, и т.д., вплоть до самого низкого уровням." Саймон отмечает: "тот факт, что многие сложные системы имеют почти разложимую иерархическую структуру, является главным фактором, позволяющим нам понять, описать и даже "увидеть" такие системы и их части" [8]. В самом деле, скорее всего, мы можем понять лишь те системы, которые имеют иерархическую структуру. Важно осознать, что архитектура сложных систем складывается и из компонентов, и из иерархических отношений этих компонентов. Речтин отмечает: "Все системы имеют подсистемы, и все системы являются частями более крупных систем... Особенности системы обусловлены отношениями между ее частями, а не частями как таковыми" [9]. Что же следует считать простейшими элементами системы? Опыт подсказывает нам следующий ответ: 2. Выбор, какие компоненты в данной системе считаются элементарными, относительно произволен и в большой степени оставляется на усмотрение исследователя. Низший уровень для одного наблюдателя может оказаться достаточно высоким для другого. Саймон называет иерархические системы разложимыми, если они могут быть разделены на четко идентифицируемые части, и почти разложимыми, если их составляющие не являются абсолютно независимыми. Это подводит нас к следующему общему свойству всех сложных систем: 3. "Внутрикомпонентная связь обычно сильнее, чем связь между компонентами. Это обстоятельство позволяет отделять "высокочастотные" взаимодействия внутри компонентов от "низкочастотной" динамики взаимодействия между компонентами" [10]. Это различие внутрикомпонентных и межкомпонентных взаимодействий обуславливает разделение функций между частями системы и дает возможность относительно изолированно изучать каждую часть. Как мы уже говорили, многие сложные системы организованы достаточно экономными средствами. Поэтому Саймон приводит следующий признак сложных систем: 4. " Иерархические системы обычно состоят из немногих типов подсистем, по-разному скомбинированных и организованных" [11]. Иными словам и, разные сложные системы содержат одинаковые структурные части. Эти части могут использовать общие более мелкие компоненты, такие как клетки, или более крупные структуры, типа сосудистых систем, имеющиеся и у растений, и у животных. Выше мы отмечали, что сложные системы имеют тенденцию к развитию во времени. Саймон считает, что сложные системы будут развиваться из простых гораздо быстрее, если для них существуют устойчивые промежуточные формы [12]. Гэлл [13] выражается более эффектно: 5. "Любая работающая сложная система является результатом развития работавшей более простой системы... Сложная система, спроектированная "с нуля", никогда не заработает. Следует начинать с работающей простой системы". В процессе развития системы объекты, первоначально рассматривавшиеся как сложные, становятся элементарными, и из них строятся более сложные системы. Более того, невозможно сразу правильно создать элементарные объекты: с ними надо сначала повозиться, чтобы больше узнать о реальном поведении системы, и затем уже совершенствовать их. Найдите хоть один из них в РЕЛЯЦИОННОЙ и нормализованной базе данных. Нафига тогда приплетать ООП, к языку ЗАПРОСОВ для реляционной БД ? ООП предназначено в первую очередь уменьшить сложность систем... Реляционные базы данныхи и SQL, аналогично уменьшить сложность, за счет замены сети и иерархии (есть/были еще сетевые, иерархические СУБД) на таблицы и отношения между таблицами. В настоящий же момент, зачем-то пытаются наоборот, увеличить сложность системы. В общем, почти как трусы и крестик. Отсюда и образуются два координально разных подход к скрещиванию ООП и Реляционных Баз данных: 1. Реляционный - переложить модель внешнего мира в нормальную структуру таблиц и по возможности максимально нормализовать ее. Но при этом, ООП становится нужен как собаке пятая нога. (для программ и сторед процедур, ООП как бы и не плохо, просто как развитие идеи модульности. Но никто и не мешает его использовать в этом качестве) 2. ООП-сериализационный - сделать табличку ID, Object и в Object запихать все данные объекта. В XML, Json'е или вообще бинари. А потом удивляться, что реляционная БД плохо работают. Точнее, что разница между реляционной БД и обычным текстовым файлом становится чуть больше, чем ни какая. В крайнем случае, вполне можно и key - value БД обойтись. Ну и разные попытки скрестить ежа и удава... Только IMHO до сих пор получается колючая проволока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 09:13 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevа CSS - это даже не language полноценный формальный язык ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 09:33 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Дядька с усами и часамиГоспода, господа! (звон председательского колокольчика) Попрошу не отклоняться от темы! Дядька, да я собственно и не отклоняюсь, просто предлагаю еще один вариант архитектуры)) Двузвенка с тонким клиентом и СУБД в которой совмещены хранение и обработка. Плюсы такие: 1. Для написания ИС нужно в 2-3 раза меньше кода, потому что не нужно программировать отдельно клиента, отдельно сервер, и налаживать между ними. Соответственно меньше времени на написание, дешевле. 2. Производительность выше существенно, по предварительной оценке на пару порядков. потому что нет трафика между хранящей и обрабатывающей частью системы. Плюс, как в СУБД остается групповая обработка данных. 3. Гибкость системы выше. Простая архитектура, проще внедрять, проще модифицировать. Там есть еще совсем новые возможности по модификации, которые повышают гибкость. 4. Ничего нового для разработчиков практически нет. Используются всем известные методы и подходы. Опытный программист поймет как с этим работать за полдня. Я в общем понимаю общий психоз на тему "все придумано до нас" и "ты че, самый умный", привычное отношение, но так же привычно что оно кардинально меняется при полном понимании того что предлагается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 09:50 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevвадятебе просто хочется пов...ся, в любом случае необходимо указывать имя субд mssql, mysql, fb,.... и этим будет сказаны все языковые тонкости и различия sql. Да нет языковых тонкостей SQL (Select) для программирования (написания кода) не предназначен. И Select изначально предназначен исключительно как язык доступа к нормализованным реляционным данным, представленный в виде нормализованных табличек и описания отношений между ними. Для программирования сторед процедур предназначены языки ПРОГРАММИРОВАНИЯ. В последних, проблем с ООП нет как класс. Ну хочешь ООП, ну создай себе классы хотья на Java, хоть на PL/SQL. В чем-пробема? Проблемы начинаются при попытке скрестить ежа и удава. ООП и реляционной базы данных. Специально нашел Гради Буча "Объектно ориентированный анализ и проектирование". На 3-ей же страницы Пять признаков сложной системы Исходя из такого способа изучения, можно вывести пять общих признаков любой сложной системы. Основываясь на работе Саймона и Эндо, Куртуа предлагает следующее наблюдение [7]: 1. "Сложные системы часто являются иерархическими и состоят из взаимозависимых подсистем, которые в свою очередь также могут быть разделены на подсистемы, и т.д., вплоть до самого низкого уровням." Саймон отмечает: "тот факт, что многие сложные системы имеют почти разложимую иерархическую структуру, является главным фактором, позволяющим нам понять, описать и даже "увидеть" такие системы и их части" [8]. В самом деле, скорее всего, мы можем понять лишь те системы, которые имеют иерархическую структуру. Важно осознать, что архитектура сложных систем складывается и из компонентов, и из иерархических отношений этих компонентов. Речтин отмечает: "Все системы имеют подсистемы, и все системы являются частями более крупных систем... Особенности системы обусловлены отношениями между ее частями, а не частями как таковыми" [9]. Что же следует считать простейшими элементами системы? Опыт подсказывает нам следующий ответ: 2. Выбор, какие компоненты в данной системе считаются элементарными, относительно произволен и в большой степени оставляется на усмотрение исследователя. Низший уровень для одного наблюдателя может оказаться достаточно высоким для другого. Саймон называет иерархические системы разложимыми, если они могут быть разделены на четко идентифицируемые части, и почти разложимыми, если их составляющие не являются абсолютно независимыми. Это подводит нас к следующему общему свойству всех сложных систем: 3. "Внутрикомпонентная связь обычно сильнее, чем связь между компонентами. Это обстоятельство позволяет отделять "высокочастотные" взаимодействия внутри компонентов от "низкочастотной" динамики взаимодействия между компонентами" [10]. Это различие внутрикомпонентных и межкомпонентных взаимодействий обуславливает разделение функций между частями системы и дает возможность относительно изолированно изучать каждую часть. Как мы уже говорили, многие сложные системы организованы достаточно экономными средствами. Поэтому Саймон приводит следующий признак сложных систем: 4. " Иерархические системы обычно состоят из немногих типов подсистем, по-разному скомбинированных и организованных" [11]. Иными словам и, разные сложные системы содержат одинаковые структурные части. Эти части могут использовать общие более мелкие компоненты, такие как клетки, или более крупные структуры, типа сосудистых систем, имеющиеся и у растений, и у животных. Выше мы отмечали, что сложные системы имеют тенденцию к развитию во времени. Саймон считает, что сложные системы будут развиваться из простых гораздо быстрее, если для них существуют устойчивые промежуточные формы [12]. Гэлл [13] выражается более эффектно: 5. "Любая работающая сложная система является результатом развития работавшей более простой системы... Сложная система, спроектированная "с нуля", никогда не заработает. Следует начинать с работающей простой системы". В процессе развития системы объекты, первоначально рассматривавшиеся как сложные, становятся элементарными, и из них строятся более сложные системы. Более того, невозможно сразу правильно создать элементарные объекты: с ними надо сначала повозиться, чтобы больше узнать о реальном поведении системы, и затем уже совершенствовать их. Найдите хоть один из них в РЕЛЯЦИОННОЙ и нормализованной базе данных. Нафига тогда приплетать ООП, к языку ЗАПРОСОВ для реляционной БД ? ООП предназначено в первую очередь уменьшить сложность систем... Реляционные базы данныхи и SQL, аналогично уменьшить сложность, за счет замены сети и иерархии (есть/были еще сетевые, иерархические СУБД) на таблицы и отношения между таблицами. В настоящий же момент, зачем-то пытаются наоборот, увеличить сложность системы. В общем, почти как трусы и крестик. Отсюда и образуются два координально разных подход к скрещиванию ООП и Реляционных Баз данных: 1. Реляционный - переложить модель внешнего мира в нормальную структуру таблиц и по возможности максимально нормализовать ее. Но при этом, ООП становится нужен как собаке пятая нога. (для программ и сторед процедур, ООП как бы и не плохо, просто как развитие идеи модульности. Но никто и не мешает его использовать в этом качестве) 2. ООП-сериализационный - сделать табличку ID, Object и в Object запихать все данные объекта. В XML, Json'е или вообще бинари. А потом удивляться, что реляционная БД плохо работают. Точнее, что разница между реляционной БД и обычным текстовым файлом становится чуть больше, чем ни какая. В крайнем случае, вполне можно и key - value БД обойтись. Ну и разные попытки скрестить ежа и удава... Только IMHO до сих пор получается колючая проволока. Эээх))) Хотел было поизголяться, ибо тут есть над чем, но не буду, а то всех распугаю))) В общем, понимаю Ваше отношение, оно основано на совершенно правильных, современных представлениях. Видно что Вы прекрасный специалист. Но поймите, что иногда ситуация меняется. появляются инновации. Вот у Вас же наверное в гараже машина а не в пещере лошадь? Так и здесь, есть инновация, которая позволяет гармонично скрестить ООП и реляционную модель, которые, как оказалось не так уж друг другу ортогональны. Что и пытались сделать много лет назад все кому не лень, но просто не вышло. Иначе вся бизнес-логика давно уже жила бы в СУБД, ибо с точки зрения архитектуры систем это дает множество преимуществ, которые я описал выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 09:57 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Если ближе к теме топика, то аналогично... Пока происходить декомпозиция сложной задачи , то увеличение кол-ва слоев и упрощение каждого из них по отдельно, все хорошо. СУБД - обрабатывают данные, Апп-сервер - содержит какую-то логики, Web-брайзер - HTML отображает на клиента Когда же пытаются простые (относительно) задачи, сделать многослойными "что бы было", приходим к тому, что имеем. Куча разных слоев, своя парадигма и язык программирование на каждом из слое (SQL, Java, HTML, CSS, JavaScript) и full stack разработчика, у которого голова от всего этого пухнет... Если он хорошо знает SQL и PL/SQL, он радостно начинает лабать сайты на Oracle HTML-картридже в духе бесконечно лапши из println'ов, от которой любому верстальщику, хоть раз видевшему ASP, PHP, JSP становится дурно. Если он хорошо знает HTML и JavaScript, то радостно все на них и делает, А всякие AJAX и REST'ы максимум, что бы SELECT в БД выполнить. Это, разумеется, крайние случае. Параллельно, не прекращаются попытки запихать таки ежа в рот удаву. При этому, изначально, ежик был мышкой. Которую сначала специально (!) превращают в ежа (!), а потом уже в виде ежа и пасть удаву и запихивают. 95% прикладных систем для БД, на экране содержит.... таблички! обычные таблички! 95% задачи прикладной системы: бизнес-объекты и бизнес-задачу (о сложности которой и говорил Гради Буч) преобразовать в GUI. Что же мы делаем? 1) На HTML рисуем табличку, AJAX'ом кидаем запрос на сервер приложения 2) Тут, зачем-то, преобразовываем ее из вида ПРОСТОЙ таблички в вид СЛОЖНЫХ ООП-объектов со все кучей сложных бизнес-отношений между ними (а нам для отображения на экране не пофиг?). 3) Начинаем сложные иерархические данные (точнее даже сетевые), пытаться пропихнуть в реляционную СУБД. Хотя, изначально, пользователь хотел всего лишь табличку увидеть. В реальной системе (!) Oracle CC&B, только диву давался. Сколько народ не нужных преобразований делает. Табличка на экране -> Json -> XML -> коллекции классов -> Hibernate -> DAO, Copy Book'и -> табличка в реляционной СУБД Можно того же Гради Буча процитировать (страничкой ранее) Почему программному обеспечению присуща сложность? Как говорит Брукс, "сложность программного обеспечения - отнюдь не случайное его свойство" [3]. Сложность вызывается четырьмя основными причинами: сложностью реальной предметной области, из которой исходит заказ на разработку; трудностью управления процессом разработки; необходимостью обеспечить достаточную гибкость программы; неудовлетворительными способами описания поведения больших дискретных систем. В общем, кому мало "сложности реальной предметной области", начинают делать все возможное, что бы увеличить "трудностью управления процессом разработки". При этом прикрываясь мнимой "необходимостью обеспечить достаточную гибкость программы", т.к. по факту, получившийся продукт в 95% случаев ничуть не более гибок, чем обычный. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 09:58 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
МурычДядька с усами и часамиГоспода, господа! (звон председательского колокольчика) Попрошу не отклоняться от темы! Дядька, да я собственно и не отклоняюсь, просто предлагаю еще один вариант архитектуры)) Двузвенка с тонким клиентом и СУБД в которой совмещены хранение и обработка. Плюсы такие: 1. Для написания ИС нужно в 2-3 раза меньше кода, потому что не нужно программировать отдельно клиента, отдельно сервер, и налаживать между ними. Соответственно меньше времени на написание, дешевле. 2. Производительность выше существенно, по предварительной оценке на пару порядков. потому что нет трафика между хранящей и обрабатывающей частью системы. Плюс, как в СУБД остается групповая обработка данных. 3. Гибкость системы выше. Простая архитектура, проще внедрять, проще модифицировать. Там есть еще совсем новые возможности по модификации, которые повышают гибкость. 4. Ничего нового для разработчиков практически нет. Используются всем известные методы и подходы. Опытный программист поймет как с этим работать за полдня. Я в общем понимаю общий психоз на тему "все придумано до нас" и "ты че, самый умный", привычное отношение, но так же привычно что оно кардинально меняется при полном понимании того что предлагается. упс, если с 0, возможно... но если пришел, а там уже крутят несколько/МНОГО оч разных СУБД и с трафиком между ними, хранением и обработкой и ломать ничего нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:01 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
МурычДядька с усами и часамиГоспода, господа! (звон председательского колокольчика) Попрошу не отклоняться от темы! Дядька, да я собственно и не отклоняюсь, просто предлагаю еще один вариант архитектуры)) Двузвенка с тонким клиентом и СУБД в которой совмещены хранение и обработка. Плюсы такие: 1. Для написания ИС нужно в 2-3 раза меньше кода, потому что не нужно программировать отдельно клиента, отдельно сервер, и налаживать между ними. Соответственно меньше времени на написание, дешевле. 2. Производительность выше существенно, по предварительной оценке на пару порядков. потому что нет трафика между хранящей и обрабатывающей частью системы. Плюс, как в СУБД остается групповая обработка данных. 3. Гибкость системы выше. Простая архитектура, проще внедрять, проще модифицировать. Там есть еще совсем новые возможности по модификации, которые повышают гибкость. 4. Ничего нового для разработчиков практически нет. Используются всем известные методы и подходы. Опытный программист поймет как с этим работать за полдня. Я в общем понимаю общий психоз на тему "все придумано до нас" и "ты че, самый умный", привычное отношение, но так же привычно что оно кардинально меняется при полном понимании того что предлагается. Ничего себе не отклоняетесь. Человек пишет реальное приложение и интересуется сравнением двух реальных архитектур. А Вы ему: а давайте пофантазируем о сферическом коне в вакууме :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:02 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Мурыч, Все нормально, только ООП туда приплетать не надо ) Максимум модульность. Кстати статья на хабре недавняя про подобную реализацию на pg/plsql https://habrahabr.ru/company/pgdayrussia/blog/326758/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:09 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
skyANAМурычпропущено... Дядька, да я собственно и не отклоняюсь, просто предлагаю еще один вариант архитектуры)) Двузвенка с тонким клиентом и СУБД в которой совмещены хранение и обработка. Плюсы такие: 1. Для написания ИС нужно в 2-3 раза меньше кода, потому что не нужно программировать отдельно клиента, отдельно сервер, и налаживать между ними. Соответственно меньше времени на написание, дешевле. 2. Производительность выше существенно, по предварительной оценке на пару порядков. потому что нет трафика между хранящей и обрабатывающей частью системы. Плюс, как в СУБД остается групповая обработка данных. 3. Гибкость системы выше. Простая архитектура, проще внедрять, проще модифицировать. Там есть еще совсем новые возможности по модификации, которые повышают гибкость. 4. Ничего нового для разработчиков практически нет. Используются всем известные методы и подходы. Опытный программист поймет как с этим работать за полдня. Я в общем понимаю общий психоз на тему "все придумано до нас" и "ты че, самый умный", привычное отношение, но так же привычно что оно кардинально меняется при полном понимании того что предлагается. Ничего себе не отклоняетесь. Человек пишет реальное приложение и интересуется сравнением двух реальных архитектур. А Вы ему: а давайте пофантазируем о сферическом коне в вакууме :) Ну да, согласен, наверное слегка не туда занесло. Хотя я как раз про сравнения архитектур... просто зашел издалека)) но если человек сейчас пишет, то конечно зря. Если бы в агусте-сентябре, мог бы и нас попробовать. Дядька, Вы когда писать собираетесь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:10 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
SiemarglМурыч, Все нормально, только ООП туда приплетать не надо ) Максимум модульность. Кстати статья на хабре недавняя про подобную реализацию на pg/plsql https://habrahabr.ru/company/pgdayrussia/blog/326758/ Нет, не похоже. почти во первых строках про аппликейшн сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:14 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Мурыч.... Иначе вся бизнес-логика давно уже жила бы в СУБД, ибо с точки зрения архитектуры систем это дает множество преимуществ, которые я описал выше. Во многих системах вполне себе и живет. Давно и успешно. Если на разных уровнях системы один и тот же язык (например Oracle Forms: PL/SQL на клиенте или апп.сервер и PL/SQL в СУБД), то где живет бизнес-логика, вообще риторический вопрос. Т.к. в ряде случаев, ее можно просто Copy/Past с клиента на сервер перенести. МурычТак и здесь, есть инновация, которая позволяет гармонично скрестить ООП и реляционную модель Все попытки, которые видел до этого, явно удав и ежик Требование реляционной модели - нормализация данных. Один из принципов ООП объекта, как меня учили, - "инкапсуляция", т.е. совмещения данных об объекте и его поведение в одном месте Как минимум, это друг другу противоречит. AFAIK Те ООП расширения, которые видны, или: 1. попытки денормализовать данные на уровне самого SQL. (всякие вложенные объекты, XML, XPath, JSon и так далее) 2. попытка программистов заинкапсулировать логику поиска данных в объекте - прощай SQL (Query Language), да здравствуют циклы и PL (Procedural/Program Language). IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:20 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
МурычskyANAпропущено... Ничего себе не отклоняетесь. Человек пишет реальное приложение и интересуется сравнением двух реальных архитектур. А Вы ему: а давайте пофантазируем о сферическом коне в вакууме :) Ну да, согласен, наверное слегка не туда занесло. Хотя я как раз про сравнения архитектур... просто зашел издалека)) но если человек сейчас пишет, то конечно зря. Если бы в агусте-сентябре, мог бы и нас попробовать. Дядька, Вы когда писать собираетесь? И сколько вы уже существуете на рынке, чтобы вас пробовать? Сколько лет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:23 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
МурычSiemarglМурыч, ООП попендикулярно сиквелу. Разные парадигмы т.е А продвинутую логику в базе - пожалуйста pl/sql, pl/pgsql, на худой конец psql, а хочется объектных извращений - кашаскрипт Да знаю я про этот импеданс мисматч, но не вечен же он. Раньше думали что земля плоская. И хочется объектных, но не извращений. Да в общем не о том речь. Импеданс, не импеданс, не имеет значения. Я собственно спросил о том что если в sql появятся ооп возможности, сравнимые с с++, или даже более мощные, и будет возможность для хранения и обработки данных использовать только реляционную субд, и отказаться от аппликейшн сервера, будет ли это кому-то интересно? Я не обсуждаю возможно это или нет, потому что это отдельный и не маленький разговор, учитывая понятный мне негативный опыт индустрии. Когда появятся тогда и поговорим.... пока же не появились? Вот и посмотрим на причины - почему. Объект.... коллекция объектов? похожа на таблицу. ну так, примерно. наследование допустим - внешний ключ. Каждый потомок является еще и родителем. ...... иииии? собственно что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:25 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevМурыч.... Иначе вся бизнес-логика давно уже жила бы в СУБД, ибо с точки зрения архитектуры систем это дает множество преимуществ, которые я описал выше. Во многих системах вполне себе и живет. Давно и успешно. Если на разных уровнях системы один и тот же язык (например Oracle Forms: PL/SQL на клиенте или апп.сервер и PL/SQL в СУБД), то где живет бизнес-логика, вообще риторический вопрос. Т.к. в ряде случаев, ее можно просто Copy/Past с клиента на сервер перенести. МурычТак и здесь, есть инновация, которая позволяет гармонично скрестить ООП и реляционную модель Все попытки, которые видел до этого, явно удав и ежик Требование реляционной модели - нормализация данных. Один из принципов ООП объекта, как меня учили, - "инкапсуляция", т.е. совмещения данных об объекте и его поведение в одном месте Как минимум, это друг другу противоречит. AFAIK Те ООП расширения, которые видны, или: 1. попытки денормализовать данные на уровне самого SQL. (всякие вложенные объекты, XML, XPath, JSon и так далее) 2. попытка программистов заинкапсулировать логику поиска данных в объекте - прощай SQL (Query Language), да здравствуют циклы и PL (Procedural/Program Language). IMHO & AFAIK Ну хорошо, нельзя скрестить ужа и ежа, это я признаю. Но вот реляционную модель и ООП можно. Просто раньше это пытались, как Вы совершенно справедливо заметили, делать неправильно. Но мы поняли как правильно, и скрестили. Что же теперь делать? )) Я понимаю что трудно в это поверить, но рано или поздно придется. )) Ну не знаю, можем в принципе даже рассказать как это делается. И даже прятаться не будем, можем по скайпу например показать презу, если найдутся желающие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2017, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39477402&tid=1340354]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 431ms |

| 0 / 0 |
