这是 Jerry 2021 年的第 41 篇文章,也是汪子熙公众号总共第 318 篇原创文章。
一位朋友向我发起了知乎咨询:
关于这个话题,Jerry 曾经写过一篇文章:ABAP开发人员未来应该学些什么。
其英文版发布在 SAP 社区博客上并被管理员置顶,获得了超过一万阅读量。
当时文章里我建议的四个学习方向是:
(1) 熟悉一门函数式编程语言
(2) 了解 Spring
(3) 熟悉 JavaScript
(4) 了解一种 NoSQL 数据库
后来我补充了第五点,熟悉 SAP Cloud Platform (现在更名为 SAP Business Technology Platform)开发技术。
回到这位知乎朋友的咨询,作为一位 ABAP 资深顾问,如果想再选择一门除 ABAP之外的其他 SAP 技术深入钻研,我当然推荐 SAP UI5 作为下一个主攻方向。理由阐述如下。
我是 2013 年开始接触 SAP UI5 的,距今已超过 8 年,亲眼见证其从最初的 beta 版本,演进到现在最新的 1.90.0 版。
在我 2018 年的一篇文章 SAP UI和 Salesforce UI开发漫谈里,曾经回顾了 SAP 历代 UI 技术演变史。作为取代 SAP GUI,SAP ABAP Webdynpro 和 SAP WebClient UI 的下一代 UI 技术,SAP UI5 是 SAP 主推的开发 Fiori 应用的首选前端框架。
如果用其他流行的前端框架比如 Angular,React 和 Vue 来开发具有 Fiori UX 风格的前端应用,需要借助 SAP Fiori Fundamental 开发库的帮助:
而 SAP UI5 框架提供了对于应用实现 Fiori UX 页面风格的原生支持,即有些开发人员戏称的“SAP UI5 才是 SAP 前端开发的亲儿子”。
SAP UI5 作为包括 SAP 旗舰级产品 S/4HANA 以及其他众多云产品选择的前端实现技术,这体现了其在 SAP 技术家族中的核心地位。可以说,只要 S/4HANA 这面大旗不倒,应用开发人员投入在 ABAP + SAP UI5 这对组合上的时间和精力,永远不会白费。
同时,近些年来,SAP 投入了大量的开发资源,围绕 SAP UI5 打造其生态圈,推出了诸如 UI5 WebComponents,UI5-tooling,UI5 Easy Generator,UI5 Inspector,UI5 CLI,UI5 Builder,Karma for UI5,Fiori Elements 等开发库,开发框架和开发工具。因此,学习 SAP UI5,将有机会接触这些围绕 SAP UI5 衍生出的新技术领域,拓宽自己除了 ABAP 之外的技术视野。
我之前的文章 ABAP 开发人员未来应该学些什么 曾经建议 ABAP 开发人员去熟悉 JavaScript,而学习 SAP UI5,能帮助我们在实践中掌握浏览器端 JavaScript 开发的基本技能。另一方面,在学习 SAP UI5 应用构建,分发,以及部署到云服务器上时,通过使用 SAP UI5 Tooling 等工具,我们又能接触到服务器端 JavaScript 的基础知识,即 Nodejs.
下面模仿经典 ARPG 游戏《暗黑破坏神Ⅱ》里的技能树来阐述,如何通过开启 SAP UI5 的学习,来升级自己的 SAP 开发技能。
同《暗黑破坏神Ⅱ》通过箭头指向来描述技能前置条件一样,下图说明,要学习 SAP Fiori Elements,需要先学习 SAP UI5 本地开发,OData 服务开发和 CDS view 开发三项技能。而要想把本地开发好的 SAP UI5 应用部署在 SAP Business Technology Platform 上,除了掌握 SAP UI5 本地开发技能外,还要具备 SAP BTP 和 Nodejs 基础知识。
本文推荐的 SAP UI5 开发,实际是指上图红色的 SAP UI5 本地开发技能。这是掌握 SAP UI5 更高级开发技能的基础。
而如何迈开 SAP UI5 学习的第一步,可以参考我的文章:对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?
当进行过一段时间的学习和实践,自认为对 SAP UI5 本地开发比较熟悉之后,就可以按照上图技能树,开始新技能的学习。也可以使用 Chrome 开发者工具,通过单步调试的方式,从自己实际学习和工作中联系紧密的 SAP UI5 实现源代码开始阅读。分析和学习 SAP UI5 源代码,能进一步提高自己使用 UI5 框架开发应用的水平。
下面这些文章,也许对想了解 SAP UI5 源代码实现的朋友有一些帮助。
- 通过最简单的 button 控件,深入学习 SAP UI5 框架代码系列之零
- 一个用于 SAP UI5 学习的脚手架应用,没有任何后台 API 的依赖
- SAP UI5 module 懒加载机制
- SAP UI5 控件渲染机制
- HTML 原生事件 VS SAP UI5 Semantic 事件
- SAP UI5 控件元数据的元数据实现
- SAP UI5 控件的实例数据修改和读取逻辑
- SAP UI5 控件数据绑定的实现原理
- SAP UI5 控件数据绑定的三种模式:One Way, Two Way 和OneTime 实现原理比较
- 谈谈 SAP UI5 的视图控件 ID,以及其和 Angular 视图的异同
- SAP UI5 OData谣言粉碎机:极短时间内发送两个 Odata request,前一个会自动被 cancel 掉吗
- SAP UI5 和 Angular 的函数防抖(Debounce) 和函数节流(Throttle) 实现原理介绍
- 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?
更多Jerry的原创文章,尽在:"汪子熙":
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。