
OracleAPEX开发工具是一款基于Oracle数据库的低代码开发工具(一般安装了Oracle数据库就有Apex),简单易学,上手快,开发界面简单易懂,开发人员,只需要懂一些SQL,PL/SQL,就可以开发出漂亮的应用程序。它可以开发绝大多数企业WEB应用程序,Oracle公司内部很多系统,就是由APEX开发。在全球范围内,也广泛使用,尤其是非常方便开发云平台上的快速Web,Mobile应用。
为什么会有这篇分享呢?因为低代码平台的一个常见的特点,就是可能被限制在一个范围内,实现的效果必须在预定义组件里面选,无法像利用各自开源web framwork ,各自开发语言来做一个自由飞翔,天马行空的创作。这个分享展示了,在Apex中,可以非常方便,编写调用CSS,Javascript和外部JS框架,来完成复杂的动态效果(贪吃蛇游戏)。通常Apex开发,你根本不用特别写CSS和JS,但如果你想发挥更多潜力,Apex同样支持扩展的JS,CSS,HTML的嵌入,绝对可以给你自由!
First Frost
从架构看,Apex其实也是一个三层架构

但Apex又不是一个MVC架构,或者MTV架构。

在MVC模型下,最早是用JSP/Servlet,但这个架构前后端不分离,为了解耦合,后来流行JQuery,Vue来做前端效果,通过JSON,XML和Model层交换数据,最后html返回给客户,或者刷新客户html的DOM。简单来说,客户看到HTML,业务逻辑和数据处理都在中间层处理,发送数据到前端,前端由JS框架来搞定html中的客户体验。
Apex和这种模型有显著的不同,传统的开发者可能会认为很奇怪,Apex的大部分Html的template是存储在数据库中,业务逻辑,和html的拼接大部分都是在数据库完成,然后返回给ORDS服务,再返回给客户端。
我们拉通看看,
1 . JSP/Severtlet 前后端不分离,业务逻辑写在html中,后端负责out.print生成jsp页面,数据库就是数据库
2 . 后来前端JS CSS各自框架做Web效果运行在比如nginx,后端有tomcat+应用服务器,专门做业务逻辑和数据访问,数据库就是数据库
3 . Apex前端就是浏览器 ,URI到了ORDS,它提供基于Restful的web服务,业务逻辑和HTML效果都在数据库生产,ORDS用JDBC获取,返回前端。你仿佛是访问了一个数据库Web服务器感觉

我这里表达是Apex落后吗?完全不是。
前端架构的演变的及其内卷,诞生了很多我认为“鬼哭神嚎”的方法,各自模型也是反复变迁。以前前端要独立,诞生好多vue,react框架,时至今日,大神们又觉得前端太累,渲染DOM太消耗资源了,树太深,又响应慢,最终又诞生了反潮流的HTMX,由服务器生成 html 本体并发送至客户端,意味着 UI 事件会被发送至服务器进行处理,在后端渲染HTML返回,前端回归本源。(可以搜索htmx去官网看例子,hx-标签!)
我是极度讨厌前端的任何东西,对CSS JS都是极度厌倦,但如果用刀架着我选一个框架,我会选htmx+django...
这样看来,Apex只不过更进一步,把后端直接搬到数据库,显然更符合我的重口味。
探长最近为了编写一个破案的架构师工具,用jquery做了很多工作,为了熟悉jquery,我的方法和以前一样,写贪吃蛇游戏。下面这个html就是一个单独的页面,完全用js+jquery实现的贪吃蛇游戏。大家有兴趣,可以下载,用VSCODE自己改着玩玩。
链接:https://pan.baidu.com/s/1SxeFoY60pdDk7lTesklTKA
提取码:9krf
那么怎么把它运行在Apex中呢?非常简单几步。这个页面其实就是三块内容,
CSS stype部分,

JS函数部分,实现就在这里,有400多行,用golang写一个不过至少代码少50%

html架子(没啥东西,都是加载和运行时候,动态渲染的)。

运行起就这样,可以加速,有计分,想实现更多玩法,但没时间~

我们如何移植到Apex呢,首先,用Apex随意的创建一个页面snake_demo,

编辑页面的root

在javascript处,填写Jquery引用

以及粘贴入核心JS代码,注意不要标签了

在CSS,inline部分粘贴入CSS代码,注意不要标签了

最后,在content bady创建一个空白区域,在source处,把html架子代码粘贴进去,

点击运行,一个Apex的贪吃蛇就完工了。

这个Case说明Oracle Apex可以方便的调用外部各自JS框架,来实现更加酷炫的效果(虽然绝大数情况下,都没必要,Apex已经很完善了)。
今天的分享到此结束。




