Мнение про Oracle Apex

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Всем привет. В Oracle решили что рендерить web страницы можно прями из базы данных без использования web сервера. На разработку потратили 18 лет и сейчас эта технология стала самой трендовой внутри компании.
С выходом версии Apex 18.1 (май 2018) и бесплатной версии Oracle XE 18 (осень 2018) у решения есть все шансы стать еще одной платформой для full-stack разработки web приложений.

Кто не в теме пару видосов демо:
youtu.be/EyHqSoTPT4Y

Разработка ботов на Апекс (длинный ролик)
youtu.be/U38xpK5hoik

Установка бесплатной под windows (длинный ролик)
youtu.be/p2bmdowgJU8

Официальная страница:
apex.oracle.com/en

Попробовать можно тут (cloud):
apex.oracle.com/pls/apex/f?p=4700 (до 50 МБ места)
https://cloud.apex.rest/ords/f?p=4700 (до 10GB места)

Интересно мнение сообщества по поводу Апекса и отвечу на любые вопросы, в теме уже 10 лет.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Що думаєте про це? Виглядає як достатньо швидкий метод створювання інтерактивних сторінок зі швидким оновленням.
jsao.io/...​t-io-and-oracle-database

Скажем так. Кто готов зарабатывать на этом продукте, — пишите в личку (включу в команду, поищем заказчиков).
Каждому свое, но мы на апексе делаем достаточно неплохие продукты и я стараюсь выводить его на хороший уровень, доказывая что платные корпорационные решения никак не стоят рядом с бесплатным корпорационным решением от Оракл.

В Oracle решили что рендерить web страницы можно прями из базы данных без использования web сервера. На разработку потратили 18 лет

это была бы бомба... если бы сейчас был 2000 год

Сейчас апекс можно использовать как бекенд с REST API для приложений на JS.

можно использовать как бекенд

А еще как бекенд можно использовать любую другую не-экзотическую зрелую технологию.

Вполне логичный шаг — в самую топовую реляционную базу данных добавить нативную поддержку REST API.

Также тут есть аналог GraphQL — SQLJSON , где вы в json передаете запрос в SQL и получаете ответ

в json передаете запрос в SQL

SQL injection?

не там все по взрослому

RAD платформы очень нишевый инструмент — их невозможно дебажить, покрывать тестами, они не успевают за развитием потребностей заказчиков и подходов в веб разработке их невозможно скейлить горизонтально и очень быстро устаревают и на них нет специалистов как следствие. Все эти подходы пережиток прошлого.

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

Поздравляю oracle — то что самое трендовое у них, сейчас самое не трендовое в мире веб-разработки;

Дело не столько в этом, сколько в нюансах бизнеса. Дьявол — в деталях. В случае написания на языке программирования, этот дьявол становится частью системы и прямо прописывается в ТЗ и в коде достаточно понятными участками. В случае же шаблонно-построенной системы код оказывается разбросан по местам совсем уж не очевидным.

Ну и конечно любимая «мелочь» — это немозможность строить многозвенную цепь, особенно с посторонними системами, надёжность которых не гарантирована. На один тракт правильной цепи алгоритма приходятся десятки исключительных ситуаций, которые, как ни странно, тоже должны иметь свои тракты и способы консолидации в потоки. В двузвенке обработка исключений — это катастрофа.

Иначе говоря, инструмент действительно нишевый. Настолько нишевый, что маркетинг должен идти впереди всей технической кавалькады. А позади — заградительные батальоны, стреляющие в спину каждому, кто произнесёт слова «универсальный», «комплексная система», и прочие термины, означающие «огромная хунья, не поддающаяся осмыслению».

В плане привлекательности для заказчиков — Апекс отлично заходит (продаю Апекс уже 5 лет) в основном благодаря своей нишевости. Например для построения сложной финансовой системы затраты для заказчика на Апекс в десятки раз меньше чем на популярных web технологиях. Конторам которые продают JS, Java, PHP, ROR и т.д очень сложно с нами конкурировать так как цена и сроки на порядок меньше, а если использовать Oracle Cloud — то заказчик получает высокую надежность и практически бесконечное вертикальное масштабирование.

Например для построения сложной финансовой системы затраты для заказчика на Апекс в десятки раз меньше чем на популярных web технологиях

Сильное высказывание. Проблема любой маргинальной технологии — дефицит сильных спецов. Подавляющее большинство вменяемых профи просто не хотят рисковать, связывая карьеру с чем-то крайне нишевым. Я знаю пару человек, умеющих в Апекс (и вполне способных как-то решать практические задачи) — (потому что работал в компании, использующей OEBS древней как говно мамонта версии, и нас апекс реально вывез из серьезного тупика в области докручивания системы под меняющиеся потребности бизнеса) — ни один из них бы не прошел соседование в любую мало-мальски приличную компанию (в т.ч. занимающуюся презренным формошлепством). Не по причине незнания модных фреймворков, а по более фундаментальной: они слабы в базе — алгоритмах, структурах данных, архитектуре/дизайне приложений. Прикрутить свистоперделку на апексе к приложению на «апсах» еще в состоянии, но не более того... Хорошо отношусь к апексу (выше сказал почему), но вы его так агрессивно продаете, что уши, пардон, вянут.

бесплатной версии Oracle XE 18 (осень 2018)

щытыо ? 18 ???
це ж огризок від Оракла, остання версія 11 була
P.S.
а-а, мля, „легким движением руки брюки превращаются ...превращаются брюки ...”
Oracle Database 18c is really another version of 12c Release 2 with a different name. It doesn’t contain major new features... Oracle 13c, 14c, 15c, 16c or 17c — those versions never existed.

Oracle суеверные, решили 13 версию не пилить

Вспоминаю свой опыт работы с Апех как страшный сон....Может сейчас стало лучше?Верится с трудом, но возвращаться в Апех не хочется,разве только ну за очень большие деньги...

После версии 5 (2015 год) стало хорошо. Может вспомните что конкретно не нравилось ? У меня Апекс с 2013 года вызывает только положительные эмоции

На разработку потратили 18 лет

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

Можете на Java запилить бизнес логику и записать на видео, а я на Апексе тоже самое сделаю, интересно посмотреть у кого костыли (намекаю например на Spring )

Разница не в том, кто быстрее. Разница в том, насколько «то же самое». Чем более «универсален» инструмент, тем сложнее вплоть до невозможности внедрить туда то, что изначально не предусматривалось.

Спринг — не костыль, это честная платформа, попросту говоря то, что создатели Java отказались реализовать сами. Хотя надо было. Впрочем, его отдельность пошла только на пользу — то что было в первых версиях Спринга уже давно на помойке. Вы не представляете, сколько нервных клеток уходит на программирование бизнес-логики через грёбаный XML.

Для показательных случаев все платформы хороши. Разница начинается в столкновении с реальностью, которая подчиняется женской «логике»: тут читать, тут не читать, а то мы рыбу заворачивали.

Апекс как раз хорош тем что идея разработки бизнес-логики непосредственно внутри базы данных (на PL/SQL) показала себя как надежное, быстрое в разработке и удобное в обслуживании решение. Тот факт что сам Oracle все больше использует апекс в своих внутренних системах, а также такие проекты как UBER, A Watsons Group, полиция LA, железная дорога в Италии — которые частично используют Апекс — говорит о его зрелости как решения. Если у вас есть данные в Oracle — это одно из идеальных на сегодня решений для построения бизнес-логики.

идея разработки бизнес-логики непосредственно внутри базы данных (на PL/SQL)

Гусары, молчать!
Страшнее «логичности» и «удобства» PL/SQL за свою жизнь встречал только язык сценариев Asterisk — там вообще магия. А вот второй по ипанутости — тот самый PL/SQL.

Никогда не задумывались, почему программисты используют базу данных только как хранилище, и при всей колоссальности средств вбуханных в их разработку — дальше CRUD не высовываются?

трашнее «логичности» и «удобства» PL/SQL за свою жизнь встречал только язык сценариев Asterisk — там вообще магия. А вот второй по ипанутости — тот самый PL/SQL.

Ну так еще бы, привет леди Августе Аде Байрон

— Simple program to demonstrate how similar Ada is to Oracle’s PL/SQL
with Ada.Text_IO;

PROCEDURE HelloWorld is
BEGIN
Ada.Text_IO.Put_Line("Look Ma, I can write Ada programs!");
EXCEPTION
WHEN OTHERS =>
NULL;
END HelloWorld;

Тем не менее, PL/SQL, как и ABAP — живее всех живых и на свалку истории оба языка явно не собираются

s+=i>0?"''":"' closed'";
А теперь переведи эту срочку на PL/SQL и узри его [я таких плохих слов не знаю]

Вариант 1
s:=s||CASE WHEN i>0 THEN '''' ELSE '''closed ''' END;

Вариант 2
s:=s||DECODE(i>0 ,'''' , '''closed ''');

Все очень просто — многие платформы используют ОРМ и сами работают с базой для обеспечения «независимости от базы данных» и разработчики дальше ОРМ как правило не ходят пока не столкнутся с реальными задачами где нужно лопатить массу данных и ОРМ не вывозит. И тогда начинают городить костыли в виде представлений, дополнительных таблиц и т.д. Со временем это приводит (особенно в opensource) что молодеж боится баз данных так как «старшие сказали что join зло» и начинают выдумывать велосипеды в модели сервера приложений, использовать nosql там где не нужно и т.д.
«Специалисты» изучают технологии которые нужны для резюме и на изучение баз данных нет времени, а потом на проде в каком нибудь финансовом проекте все ложится и начинают искать нас — специалистов в одной сфере с опытом больше 5 лет.

И тогда начинают городить костыли в виде представлений, дополнительных таблиц и т.д.

И давно это считается костылями?

Если вы работаете в идеологии ORM то это костыли.

Например вам нужно посчитать стоимость партии одного товара при продаже для ERP системы
У вас есть 2 варианта
1 — посчитать на сервере приложений, для этого нужно на сервер приложений загнать миллионы записей про движение товара и перебрать посчитав нужную партию.
2 — можно написать запрос в базу данных или функцию в БД и мгновенно получить результат.
Понятно что разработчики (в вашем случае на ROR) начинают использовать вариант прямого запроса в базу данных минуя ORM — я это видел и на костыль это точно похоже.

Наверное, когда в ebay пользовательские дашборды завалились в продакшине пришли специалисты Oracle с опытом >5 лет и все начало работать с реляционной СУБД. 😂

Вы очень точно угадали, ebay использует реляционную Oracle для ERP системы stackshare.io/ebay/ebay

www.dba-oracle.com/...​s_ebay_massive_oracle.htm

Most of all, we see that eBay has moved processor-intensive operations out of the database, and all sorting and SQL joins are handled within the application layer, nt the database.

Also common with very large systems, eBay does not employ referential integrity, ostensible because of the overhead, and relies on their application to manage table integrity.

😂

Это было больше 10 лет назад, тогда не было Exadata которая имеет аппаратную поддержку сортировки на ядре процессора и я думаю что ситуация сейчас другая.
www.oracle.com/...​ase-machine-x7/index.html

Вместо exadata там hadoop стек.
www.infoworld.com/...​-like-under-the-hood.html

Oracle предлагает решения, на отмирающих подходах —

Сложные централизированные RAD решения вместо совместимых с CD идеологией простых распределенных решений;
Сложные универсальные космодромы на дорогом железе, вместо специлизированного легковестного софта\инфраструктуры, совместимого с devops культурой и immutable infrastructure;
Дорогие лицензии и железо под платформу, вместо простых и OSS технологий помогающих продавать в облаках вычислительные мощности.

hadoop это для bigdata, транзакционная OLTP база там однозначно есть.
Насчет лицензий и стоимости — сравните Amazon RDS (PG) и Oracle Cloud (Oracle) для базы размером от 1TB — Амазон будет дороже. Насчет горизонтального масштабирования есть Oracle RAC которые используют ebay и Amazon.
Для маленьких бесплатный Apex + XE или недорогой AWS RDS — это отличный инструмент для разработки бизнес приложений, при этом не дороже opensource решений.

Если сравнивать цены то почему бы не сравнить Oracle RDS vs PostgreSQL RDS в Амазоне на той же самой конфигурации? Сравнивая разные облачные сервисы мы на деле имеем разницу не в стоимости решений, а в ценообразовании владельца сервиса. Плюс возможности, предоставляемые разными облаками, равно как и ограничения, не один к одному.

Exadata которая имеет аппаратную поддержку сортировки на ядре процессора

— ноды Exadata давно используют исключительно х64-процессоры (Intel Xeon)
— SPARC M8 — это другая серверная линейка

www.oracle.com/...​x7-2-ds-3908482_ru1-4.pdf

Среди множества уникальных функций ПО серверов хранения Exadata стоит указать
технологию интеллектуального сканирования Smart Scan, которая позволяет выполнять
сложные SQL-операции по обработке данных не на серверах баз данных,
а непосредственно на серверах хранения. В этом случае фильтрация и обработка
данных выполняются незамедлительно, причем параллельно на всех серверах хранения
по мере считывания данных с диска или из флеш-памяти. На серверы баз данных
отправляются только строки и столбцы, непосредственно связанные с запросом.

на ядре процессора
Smart Scan
на серверах хранения

в общем снова все из разряда — то ли он украл, но ли у него украли

выше был вопрос про сортировки на уровне приложения, и как пример ebay в 2006. Сейчас Exadata будет сортировать данные однозначно быстрее чем сервера приложений и преимущество бизнес логики внутри БД и Апекс как инструмента очевидно.

Exadata имеет аппаратную поддержку сортировки на ядре процессора

еще раз — кто кого имеет?

Exadata будет сортировать данные однозначно быстрее

не быстрее in-memory database
при чем оно OLAP only, с производительностью под OLTP (масштабированием) там с рождения все плохо

быстрее чем сервер приложений

начинают использовать вариант прямого запроса в базу данных минуя ORM

Как использование ORM там, где это уместно, противоречит более низкуровневой работе с базой там, где ORM не вывозит?

лопатить массу данных и ОРМ не вывозит.

Если руки кривые — то ничего не вывезет. У нас десятки и сотни тысяч записей нормально вывозит. Добавьте потоков. Не сохраняйте 100.000 объектов в 1 транзакции. И все вывезет.

Кроме того, любой орм-фреймворк все также позволяет делать скуль. Кроме того, любой фреймворк даст вам доступ к DataSource, а там вы ограничены только собственным уровнем sql-кунгфу.

Для примера десятки и сотни тысяч записей вывезет Oracle XE с 1 GB Ram

Зачем?

Вообще, все очень похоже на то, что Оркл успешно решил проблемы, которые стояли на повестке дня — вчера. В прошлое никто возвращаться не хочет — вникать в решения для задач, которые ты уже решил сам другим образом (и неважно насколько хорошо/плохо, это все уже проалось вчера). И польза от этого решения сейчас тем, кому «спешить некуда».

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

Страшнее «логичности» и «удобства» PL/SQL за свою жизнь встречал только язык сценариев Asterisk — там вообще магия. А вот второй по ипанутости — тот самый PL/SQL.

Неасилятор в квадрате детектед. В Астериске вообще что-то типа Барсика, а он существует с 70х и вполне логичен

Ровно до тех пор, пока тебе не понадобится читать чужой код :)

у кого костыли (намекаю например на Spring )

У вас. Неумно прийти в тред про оракл, в который априори набигут джависты, и объявить основополагающий фреймворк костылем.

Апекс в оракле раньше был, так что джависты пусть не набегают со своим основополагающим

Не видел, но тонко :)

там видео не было :) да и популярность платформы (особенно как замена 1С) растет

даже в страшном сне никто не заменит одноце на апекс. Хотя бы потому что в одноце готовые конфигурации под законодательство а для апекса надо штат програмистов держать чтобы допилить до такого уровня.

Насчет конфигураций — дело времени, 1С тоже только с бухучета начиналась.

только она начала бухучет 20 лет назад а у вас он в лучшем случае на уровне 1С 2.0
Уверен в моей наколенной поделке бухучет (пл украиское законодательство разумеется) и то в большем обьеме реализован. Причем на обычном mysql

Я видел Ваши работы и это очень не плохо. Чем больше таких активистов как мы с вами будет — тем быстрее 1С уйдет из Украины. А насчет Апекса — присмотритесь, может понравится и будете использовать в своих проектах, я готов даже вам помочь ресурсами, если интересно пишите в личку.

в своих проектах я обхожусь php mysql в этом и смысл. Сложно конкурировать с одноце такими громоздкими продуктами как апекс. На уровне какой нибудь масштабной энтерпрайз где размер и количество внедренцемd не имеет значения — может быть. Yо на уровне малого бизнеса — вряд ли. Вы лучше с SAP конкурируйте.

Підписатись на коментарі