Я работаю на предприятии, которое создаст архитектуру стека веб-сервисов (на основе вероятностного остатка), я являюсь техническим руководителем. Эта архитектура будет создана с использованием платформы Java, но у меня есть проблема с некоторыми членами команды: они из старой школы Oracle (т.е. они сделали наследие, используя PL/SQL, и в их голове бизнес-логика должна быть только в базе данных с небольшим вызовом java-слоя), у меня есть некоторые аргументы по этому поводу, но я хотел бы знать ваши аргументы в пользу или против этого вопроса.

Java Favor (на мой взгляд)

  • Масштабируемость
  • Мониторинг
  • Объектно-ориентированный язык
  • Синхронный/асинхронный процесс
  • Расширенный домен
  • Тестируемость
8
irobson 7 Янв 2011 в 21:13
+1 за все. Я недавно начал работать в корпорации и эта тема никогда не была мне так близка и актуальна, как сейчас. Я также хотел бы услышать любые мнения от Вас.
 – 
Rekin
7 Янв 2011 в 21:57
+1, и я думаю, что ваш вопрос может быть еще более общим: речь идет о том, что нужно сделать на верхних уровнях (например, в коде Java) и что нужно «переместить вниз» в БД. Это не обязательно о SQL/CRUD. Не все БД являются SQL, и не все БД являются CRUD: есть некоторые очень широко используемые БД, которые не являются SQL и где можно задать точно такой же вопрос :)
 – 
SyntaxT3rr0r
7 Янв 2011 в 22:16
1
Много нужно сказать и о позоре, которым являются ORM. ORM является доказательством того, что произошел крупный сбой: база данных SQL и язык "ОО", такой как Java, являются двумя полностью ортогональными концепциями (в основном теория множеств, основанная на математике и объектной ориентации, на основе чего мы точно не знаем) . Есть замечательная статья Теда Ньюарда (а также продолжение и множество последователей) под названием "Вьетнам разработки программного обеспечения", в которой ORM подвергается резкой критике. Вы действительно хотите прочитать эту статью.
 – 
SyntaxT3rr0r
7 Янв 2011 в 22:21

4 ответа

Я работал над таким проектом, используя MS SQL, а не Oracle. Это был неприятный опыт. Проблема в том, что T-SQL не очень современный язык, и поэтому мы не были настолько продуктивны, как могли бы, и было больше дублирования кода, чем могло бы быть в противном случае.

Есть аргумент, что производительность разработчика важнее языка, так что если эти ребята настолько хороши, ну и что. Но вы не найдете много молодых разработчиков, которые захотят работать таким образом.

3
sblundy 7 Янв 2011 в 21:37

Должно быть судебное решение. Любой из них может быть более подходящим в зависимости от варианта использования. Для простого примера

Если у вас есть бизнес-правило, которое требует данных из нескольких таблиц и на основе полученных данных решает выполнить окончательную операцию с базой данных (вставить или обновить), то, на мой взгляд, процедура pl/sql - это то место, где это можно сделать. . Так как это сэкономит n/w время и пропускную способность и будет немного быстрее.

1
Nrj 7 Янв 2011 в 21:26

Это немного сложный вопрос, но очень заставляет задуматься.

Начиная с Oracle 9i, он имеет полную поддержку хранимых процедур Java, то есть вы можете хранить классы Java внутри сервера базы данных и выполнять их при выполнении процедур Pl/Sql.

Всегда лучше выбрать идеального работника, чем придерживаться сантиментов! Как вы сказали, в Java есть и поддерживаются универсальные концепции в различных областях.

Здесь я могу продумать следующие варианты оптимального решения, приемлемого для всех.

  • Напишите необходимые процедуры в java, сохраните их на сервере
  • Напишите хотя бы основные требования, которые реально уменьшат сложность задачи по сравнению с Pl/Sql и вызовите их на Pl/Sql
  • Не загрязняя ни одну из сред, сохраняйте отдельные слои, что является вторым лучшим вариантом.
1
SyntaxT3rr0r 7 Янв 2011 в 22:12
Господи, я не носитель английского языка, поэтому я могу понять ваши орфографические и грамматические ошибки, но, по крайней мере, вы могли бы постараться над пунктуацией. Прописные буквы в начале предложения, пробелы после «,» и т. д. Не стесняйтесь нажимать пробел чуть больше (но не перед «!»).
 – 
SyntaxT3rr0r
7 Янв 2011 в 22:14