昊 2019-06-27
本文是钢哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下:
不知不觉在Oracle ERP这个领域已经13个年头了,从刚毕业学习最基本的SQL、PL/SQL、Linux Shell脚本、Oracle Form、Oracle Report、Workflow、Discovery、Middleware (BPEL)、OBIEE、BI (XML) Publisher、OAF、ADF,到后来的环境搭建、克隆等应用DBA的工作,可以说要想成为一名合格的Oracle ERP技术顾问,要掌握的东西太多了,远不是一个普通互联网开发人员的技能可比的。
但随着互联网技术的崛起,新的开发框架和技术层出不穷。成熟的互联网架构的出现、前后端技术的分离、缓存的大量使用、微服务的兴起,动辄就提全栈开发等等,都使得今天的Oracle技术从业者无论从技术方面还是待遇方面,都受到了不小的打击(想想10年前一名Oracle ERP技术顾问的待遇,绝对比相同经验的Java开发人员的薪资高一倍不止)。很多以前的从事Oracle ERP开发的同事现在不是另谋高就,就是在维护一些古董级的项目,偶尔聊起前途也是一片唉声叹气,感叹生不逢时。
是否从事Oracle开发出路就一定越来越窄呢?答案肯定是否定的。Oracle的数据库至今为止还是市场占有率最大的数据库,而Oracle ERP领域也不是互联网技术可以简单比拟的,其复杂的业务逻辑和行业经验才是你最宝贵的资本。如何合理利用自己已有的知识和技能,在当今互联网当道的时代重新闯出一片天地,恐怕是大部分Oracle技术人员目前面临的困惑。
不可否认,Oracle的产品线非常丰富,但带来的问题是技术栈也非常杂。另外在其主打的Oracle ERP产品:Oracle Fusion Application技术选型和设计上有硬伤。当年(2009年)我第一次了解Oracle Fusion Application时,就已经预判到Oracle ERP要走下坡路了。虽然Java很好,但Oracle打开的方式不对,它选择了ADF作为开发框架,性能和扩展性大打折扣,非常差的用户体验使得Oracle在坚持了多年、投入了巨大的资源后不得不放弃继续开发Oracle Fusion Application,转而收购了云ERP厂商(NetSuite)作为现在主推的ERP产品,浪费了大量的时间和人力物力,令人惋惜。
不过Oracle众多的产品,有一个是非常好的。(其实叫产品也不太贴切,因为它既是产品、又是开发工具、同时又可以作为框架来理解)自从我10年前使用,到最近两年Oracle加速发展,使得这一产品迎来了新的春天,它就是今天的主角:Oracle Application Express
(简称Oracle APEX
)。
本系列文章力求把我这些年使用 Oracle APEX 的经验积累沉淀下来,方便自己查询。同时也希望能为广大 Oracle 技术从业者带来一点儿灵感和思路,跟大家共同学习、共同进步!!
如果你满足以下任意一项:
Oracle Developer
Oracle DBA
Oracle ERP技术开发顾问
并且想要秒变全栈开发,一人把前端后端全搞定,just follow me!
Oracle APEX 是Oracle公司出品的基于Oracle数据库的一款Web应用快速开发工具,旨在方便Oracle数据库开发人员快速搭建Web应用系统。其历史最早可以追述到2004年,之前叫HTML DB
,2009年更名为Oracle APEX
。
但 Oracle APEX 真正被人们关注,要从 APEX 4.0 这个版本算起了。从这个版本开始,Oracle大大加强了APEX的开发效率,同时增强了很多新功能,使Web开发变得更加简单。
而 APEX 5.0 可以说是 Oracle APEX 的一个里程碑。从5.0版本起,Oracle APEX增加了一系列新组件和新特性(特别是Dynamic Actions
动态行为,允许用户嵌入自定义的javascript代码,也使得Ajax更加容易被应用到开发中),括开发工具的增强,可视化效果的提升,把 Oracle 开发Web应用的速度和质量推向了一个新高度,可以说是非常重要的一个版本。
而 APEX 5.1 增加了Interactive Grid
控件,可以零代码实现对数据库表的增删改查,并且有很多非常易用的功能,极大地提高了开发效率。同时整合了Oracle最新的Javascript图标库Oracle Jet
,使数据可视化更加方便高效。
现在互联网概念已经深入人心了,往往出来一门新技术或者工具,大家都喜欢放在互联网的范畴内进行比较。诚然,互联网技术有很多好东西值得借鉴,包括很多思想都可以运用到传统ERP领域。然而,很多时候我们做事还是要看性价比,不能为了“互联网”而“互联网”。对于个人而言,要考虑自身现有技能情况,最大化的利用已有技能,同时要保留技术敏感度,认识到自己现有技能有哪些缺失,有意识的学习。对于企业而言,要综合考虑今后一段时间的发展,目前的技术栈和人员技术水平,不能什么新上什么,而是什么适合自己上什么。做到“适合”也最不容易,这里就不展开讨论了。
钢哥感悟:Oracle APEX适合做to B类
的企业应用(Enterprise Application
),即 ERP、CRM 类应用产品。这类产品的特点是对UI和并发要求不像 to C 类互联网产品那么高,但同时业务逻辑相对更复杂,更适合企业内部使用。优势也是相当明显的,往往一个有 Oracle 开发经验的初级程序员,通过 Oracle APEX 可以完成前端 + 后端
的所有工作,而且基本属于零代码开发,无论从开发效率,还是开发质量方面,都不是传统企业开发工具或者技术能够比拟的,这一点在后面使用过程中大家就会深刻体会到。
放几张图大家直观感受下APEX:
开发者门户:整体 APEX 开发门户入口,包括:应用程序构建器、SQL工作室、小组开发以及打包的应用程序几大模块。
应用开发界面:大部分时间都是在这里完成的。
SQL工作室:又是熟悉的场景,可以替代SQL工具。
小组开发:Oracle APEX天然支持云端开发部署,远程协作当然已经考虑到了。
打包的应用程序:自带的Web应用是学习APEX最佳途径。
Interactive Grid 控件:是我见过的最NB的控件,零代码实现数据增删改查 + 搜索排序 + 级联等功能,也是APEX 5.1 以后新推出的功能,强烈推荐。
更多图示:
值得一提的是,Oracle APEX 开发工具本身就是用 APEX 开发的,是真正意义上的“APEX on APEX
”,也是我们学习参考的重要规范。
目前 Oracle APEX 在全球拥有超过40万的开发者,但在中国真正使用 Oracle APEX 的公司或开发者却很少,鉴于目前国内对于 Oracle APEX 最新的技术资料有限,我有必要把自己的所学心得整理出来,以便更多的人了解学习。
截止到目前,最新版本2017年12月17日发布的 Oracle APEX 5.1.4.00.08
使用Oracle APEX 的唯一要求,就是要有一个Oracle数据库(因为Oracle APEX必须依赖Oracle Database)。在下一篇文章里,我会带领大家一步一步的安装部署一个Oracle APEX开发环境,让大家更近一步了解Oracle APEX的强大所在。
跟着钢哥的步伐走,包你迅速掌握全栈开发,为了让脚下的路更宽,我们一起努力!!
亲测可用,部分网站需要翻墙。