首页 > 其他分享 >我的心血之作:一套适合 SAP UI5 从业人员从入门到进阶的学习教程,以及教程背后的故事

我的心血之作:一套适合 SAP UI5 从业人员从入门到进阶的学习教程,以及教程背后的故事

时间:2023-12-02 16:12:20浏览次数:43  
标签:教程 进阶 ABAP 开发 UI5 文章 SAP

一转眼 2023 年又要结束了。我从 2007 年开始,以软件开发工程师的角色进入职场,马上也快满 17 年了。

在这里插入图片描述

在这快 17 年的软件开发职业生涯里,我也见识并使用了许许多多的开发技术,编程语言,开发框架,平台。IT 界这十多年来涌现出的一些新技术,我也主动或被动地去追逐过。

比如 2015 年时,大数据计算框架 Spark 非常火爆。虽然我的工作内容,和 Spark 没有半点关系,但我还是随波逐流,看到技术社区上很多人都在讨论 Spark,我也跟着学了起来,包括这个框架的开发语言 Scala.

在这里插入图片描述

可是我学习这些流行技术的动机究竟是什么?现在回想起来,可能还是自己的程序员思维在作祟吧——因为 Spark/Scala 流行,我跟着学,说明我跟上了技术发展的最新潮流。这算不算是程序员的虚荣心?当时断断续续花了大半年的功夫,每天下班后学习 Spark/Scala, 可是效果如何呢?因为在工作中根本任何实战机会,后来就不了了之了,白白浪费了大半年的时间。到现在如果你问我,我当年到底学了哪些内容,我最多只能说出当初所学的 5% 内容。

这些年来也曾经和一些同行讨论过技术这个话题。有的同行觉得大厂用的流行技术都是最先进的,如果自己用了这些技术,就说明自己也是走在技术发展最前列。有的同行喜欢开源技术,认为一门技术,使用者越多,说明这项技术越受欢迎,越有前途。

每人都有权利表达自己的观点,对于这些观点,我不发表自己的看法。关注我的朋友们绝大多数都是 SAP 圈子的从业者。在过去很长一段时间里,ABAP 几乎就是 SAP 的代名词。在现在和将来,ABAP 也一如既往是 SAP 旗舰级产品,SAP S/4HANA 的实现语言。我已经把自己 16 年积累下来的 ABAP 开发经验,输出成一套 ABAP 学习教程(目前仍然在持续更新中),我之前的文章里已经介绍过这套教程:

一套适合 ABAP 初级和中级开发人员,从入门到提高的 ABAP 学习教程

继 SAPGUI,BSP,WebClient UI 和 ABAP Webdynpro 之后,Fiori 成了 SAP 从 2012 年起就开始力推的 UI 设计语言( Design Language)和用户体验设计规范( User Experience Design Guideline). Fiori 的技术实现,采用的前端框架就是 SAP UI5. 包括 SAP 旗舰级产品 SAP S/4HANA 在内的众多 SAP 产品的 UI 界面,都是采用 SAP UI5 开发而成,甚至 SAP 公司内部,众多员工使用的 Internal 系统,也是用的 SAP UI5 开发的界面。SAP UI5 这款前端框架,或许没有 Angular,Vue 和 React 这些流行框架有着同等数量级的使用者,但论起对 SAP 生态圈的重要性,SAP UI5 绝对远胜市面上任何一款前端框架。

在这里插入图片描述

笔者 2013 年正式接触 SAP UI5,在工作中使用这个框架进行 SAP CRM Fiori 应用的开发。这一年我正式从 ABAP 技术栈切换到 JavaScript/HTML 技术栈进行编程工作,刚开始写 SAP UI5 应用代码时,各种陌生,别扭,不自在。所以最近看到一位朋友在 CSDN 上给我的私信,我以前是做 ABAP 的,最近刚接触 SAP UI5,看到 XML 视图里那些怪兽级别的语法,感觉好可怕,我真的感同身受。我也是以零前端开发基础转到 SAP UI5 开发的,所以不少朋友遇到的困扰,我特别能理解,只因我也曾亲身经历过。

2014 年算是我艰难转型的一年。2015 年我就感觉好多了,也开始在 SAP 官方社区上发布一些关于 SAP UI5 的技术博客,内容主要包含这几类:

  1. 工作中遇到的 SAP UI5 问题,我的分析和解决思路。
  2. SAP UI5 开发技巧。这些技巧一般都是从我工作中实际的开发需求出发,记录了我对这些需求的技术实现细节。
  3. SAP UI5 源代码分析。

我在 SAP 官方社区总共发布了 633 篇技术博客,其中 SAP UI5/Fiori 有 221 篇,超过了总数的三分之一。这 200 多篇博客,都是用英文写作的,而且都是面向 SAP UI5 的进阶者。

在这里插入图片描述

2016 年,我自认为对 SAP UI5 的运用已经纯熟了,想更上一层楼。正好在 SAP 公司内网 Portal 看到了 SAP 德国总部 UI5 开发团队,招聘 Fellowship 的一则公告,工作内容非常吸引我:在 6 个月的时间里,进行 SAP UI5 Extensibility 模块的设计和开发。我当时认为自己过往的开发经历和这个职位是比较吻合的,因为我 2008 年到 2011 年,一直从事 SAP Business-by-Design 这款产品的 Extensibility 相关工作,自认为对 SAP 产品 Extensibility 的设计理念有比较深的了解,再加上我已经有使用 SAP UI5 进行应用开发的实战经验了。因此我很快写好了简历,投递给德国总部 UI5 团队的 manager. 很快我收到了回复,团队 manager 对我的简历确实很感兴趣,无奈这个职位没有出差的预算,因此只接受德国本地员工的申请,我就这样遗憾的错过了一个能够参与 SAP UI5 框架开发的机会。

好在 2020 年我获得了基于 Angular 进行 SAP 另一款代号为 Spartacus 的 Storefront 框架的开发机会,算是一定程度上满足了我在工作中进行框架级开发的心愿吧,有点失之桑榆,收之东隅的感觉。

这些年来也陆续有很多出版社的朋友,通过社交媒体联系上我,建议我把这么多年写的关于 SAP UI5 的技术文章,整理成图书出版。

因为工作和家庭的原因,我现阶段没有时间和精力写书。但是这些建议给了我一个启发:把这些年来我关于 SAP UI5 的技术文章进行归纳整理,以一种更加系统的方式输出。于是就有了本文接下来介绍的这套 SAP UI5 学习教程。

教程亮点

  • 写作风格深入浅出。笔者虽然是 SAP UI5 技术专家,但没有在文章中使用艰深的技术词藻,来炫耀自己对于前端框架理解的深度和广度。每篇文章都用平实和通俗易懂的语言,把一个个 SAP UI5 知识点讲解清楚。

  • 有自己的独到见解。我们固然可以从 SAP UI5 帮助文档里找到控件的功能说明和 API 列表,不过我也经常收到一些学习者的咨询,询问观察到的 SAP UI5 某某功能点的行为,为什么是这样?为什么 SAP 要这样设计?背后的动机是什么?这些 Why 都成为笔者的写作灵感和素材来源。笔者结合自己多年的 SAP UI5 使用经验,教程每篇文章都力求传达出自己的独特见解,不但给大家讲解了 SAP UI5 知识点,同时还分享自己对这些知识点的个人理解。通过这些拓展介绍,力求让大家在学习过程中,做到知其然更知其所以然。

  • 从入门到进阶。本教程从 Hello World 级别,只有几行代码,能够直接在浏览器里打开并运行的 SAP UI5 应用开始,由浅入深,逐步介绍 SAP UI5 开发涉及到的方方面面。每篇文章只精讲一个知识点。建议大家如果没有任何 SAP UI5 基础,则按照文章序号依次进行学习。如果已经有开发基础,想进一步提高,则可以根据教程目录里文章的标题,挑选自己感兴趣的知识点进行学习,不用受文章序号的限制。

  • 图文并茂。笔者在 SAP 中国研究院撰写内部技术文档时,就养成了图文并茂的写作习惯。一图胜万语。不少抽象的知识点,就算大段文字描述,也很难帮助初学者有一个直观的理解。此时配上几张图片,往往事半功倍。另外编程语言的学习是一个对动手能力要求很高的活动,教程里这些在开发工具里的实际截图,能帮助学习者把握动手操作的要点,高效掌握 SAP UI5 开发的核心步骤。

  • 内容全面,自成体系。本教程计划通过多达 300 余篇的篇幅,来全面介绍 SAP UI5. 目前已经完成了 199 篇。而 300 篇远非教程最终的篇幅,正所谓学无止境,笔者会在写作过程中,根据学习者的反馈和要求,在本教程的写作列表中不断添加新的 TODO 项目。

  • 面向实战。本教程写作的素材主要来自两方面。第一方面是笔者多年 SAP UI5 开发生涯过程中,总结出每一个 SAP UI5 开发者都必须掌握的核心内容,将其以文章的形式输出。另一方面,笔者经常会从自己的微信公众号,知乎咨询,知识星球,和国内各大技术社区收到 SAP UI5 从业人员给我发起的各种咨询。有些问题我如果觉得非常具有代表性,也会将背后的知识点的讲解,编入这套教程。因此,教程的大多数文章,都是 SAP UI5 开发者在工作中会遇到的实际问题和任务,每篇文章都配有学习者能够自己动手练习的完整源代码,这些代码发布在我的 Github 上,每篇文章配套的源代码存储在一个以文章序号命名的文件夹内,方便大家查阅。

在这里插入图片描述

  • 授人以渔。所谓授人以鱼不如授人以渔。本教程不少文章,来源于笔者在 SAP 官方社区发布的英文博客。这些博客记录的是我在实际工作中遇到的具体问题,以及我的分析思路和解决方案。我把这些英文博客遇到的问题,提炼到了本教程的文章中,希望大家从教程文章里,不仅仅学到 SAP UI5 具体的知识点,更能学会我是如何使用 Chrome 开发者工具,UI5 Inspector 等各种工具对问题进行隔离,分析,定位的套路。

  • 反馈及时。学习者在学习这套教程中如果遇到问题,可以在对应的文章末尾留言。我会每天抽时间查看评论区并回复。包括每天上下班的地铁途中,中午晚上吃饭的间隙,种种碎片时间段,我都会和学习者的评论留言互动。这些互动,其实也是我自己不断查漏补缺,完善自己 SAP UI5 知识体系的一个渠道。学无止境。大家可以通过目前已经完成的 199 篇文章的评论区,来查看以往的学习者曾经遇到的问题,以及我的解答。

在这里插入图片描述

学习者的收获

跟随本套 SAP UI5 教程进行学习后,大家能够获得下面这些收获:

  • 能够自行搭建 SAP UI5 本地开发环境和云上浏览器内的开发环境配置。本人相比云上浏览器里的 SAP Business Application Studio,更喜欢在本地使用 Visual Studio Code 进行开发。大家也可以根据个人喜好,在这两种开发环境中任选一种。

  • 了解并能熟练使用 Visual Studio Code/SAP Business Application Studio 提供的各种 Extension,提高 SAP UI5 开发效率。

  • 熟悉 SAP UI5 实战项目中使用频次最高的控件们的使用方式。遇到标准 SAP UI5 控件无法满足需求的时候,知道如何创建自定义控件。

  • 熟悉 SAP UI5 数据绑定的设计原理和在应用开发中的运用方式。遇到数据绑定的相关问题,能知道从哪里设置断点进行调试。熟悉 OData 模型和 JSON 模型的使用。

  • 熟悉将本地开发好的 SAP UI5 应用,部署到远端 ABAP 服务器,以及公网 Node.js 服务器上的步骤。

  • 了解 SAP UI5 应用的运行生命周期。

  • 熟悉如何将本地开发好的 SAP UI5 应用,配置到 SAP 产品的 Fiori LaunchPad 中的步骤。

  • 当 SAP UI5 应用不能按照自己期望的方式工作时,知道大致应该从哪些方面去分析问题,而不是一筹莫展。

  • 当遇到因为 SAP UI5 版本升级导致应用运行出现故障时,知道如何去分析并解决因为版本更迭导致的问题。

本教程适合哪些学习者

  • 之前从未接触过 SAP UI5 的开发人员。对于这部分朋友,我建议大家在学习本套教程的时候,同时在网络上搜索一些 JavaScript/HTML 的入门教程配套着看。这种入门级的教程网络上很多。大家千万别对 JavaScript 这门编程语言有畏难心理。诚然,因为 JavaScript 本身动态灵活的语言特性,精通 JavaScript 要比精通 ABAP 难很多。但是,我们的目标是胜任 SAP UI5 开发工作。要实现这个目标,根本不需要达到精通 JavaScript 的程度,只需要会运用它就行了。而且个人认为,SAP UI5 在开发企业级前端应用方面的一大优势是,它要求使用者对 JavaScript/HTML 的掌握程度,远远低于 Angular,React 和 Vue.

  • 已经在工作中有过几个月到三年的 SAP UI5 使用经验,能胜任日常工作,但是没有系统而全面学习过 SAP UI5,想进一步提高自己 SAP UI5 技术水平的初级 SAP UI5 开发人员。

  • 有三年以上 SAP UI5 编程经验,想朝着 SAP UI5 专家的方向努力,但是不知道具体如何进阶的 SAP UI5 中级水平的开发人员。

限于文章篇幅,我不打算将本教程文章目录罗列在本文下方。大家可以点击这个链接,获得本教程全部 199 篇文章的目录。

祝大家学习愉快!

标签:教程,进阶,ABAP,开发,UI5,文章,SAP
From: https://www.cnblogs.com/sap-jerry/p/17871737.html

相关文章

  • 无涯教程-Erlang - Shell脚本
    ErlangShell用于测试表达式,以下示例展示了如何在Shell中使用加法表达式,这里需要注意的是,表达式必须以点(.)分隔符结尾。执行命令后,Shell程序会打印出一个提示,这一次是命令编号2(因为每次输入新命令时命令编号都会增加)。以下功能是ErlangShell中最常用的功能。b()   ......
  • CAD安装教程,一站式解答
    AutoCAD2023是一款由美国Autodesk公司开发的计算机辅助设计(CAD)软件,它是全球最流行的二维和三维设计工具之一。自1982年首次发布以来,AutoCAD已经成为建筑、机械、电子、航空、制造等众多行业的标准设计工具。AutoCAD2023是该软件的最新版本,它在前一版本的基础上进行了许多改进和优......
  • 华为平板M3 BTV-DL09 亲测成功升级官方EMUI5.0-安卓7.0刷机包SD卡刷包
    调包离山之计,完成的可用组合包。试装了无数的TWRP,只有一个版本的能用。可用twrp_BTV-DL09_lte.img、即是TWRP3.0.2版,这个TWRP可以刷入降级包。但试了很多包都刷不上系统,当时以为要变砖了。还好没放弃。主要是包的目录结构的问题。还有很多卡刷包没有讲清怎么用。后面刷......
  • 无涯教程-D语言 - 类静态方法函数
    让我们尝试以下示例以了解静态数据成员的概念-importstd.stdio;classBox{public:staticintobjectCount=0;//构造函数定义this(doublel=2.0,doubleb=2.0,doubleh=2.0){writeln("Constructorcalled.");length=l;......
  • 无涯教程-Erlang - 简介
    Erlang(/ˈɜːrlæŋ/)是一种通用的并发程序设计语言,它由乔·阿姆斯特朗(JoeArmstrong)在瑞典电信设备制造商爱立信所辖的计算机科学研究室开发,目的是创造一种可以应付大规模并发活动的程序设计语言和运行环境。Erlang于1987年发布正式版本,最早是爱立信拥有的私有软件,经过十年的发......
  • 无涯教程-D语言 - 构造与解析函数
    类构造函数类构造函数是该类的特殊成员函数,只要我们创建该类的新对象 ,该函数便会执行。构造函数的名称与类完全相同,没有任何返回类型,构造函数对于为某些成员变量设置初始值非常有用。以下示例解释了构造函数的概念-importstd.stdio;classLine{public:void......
  • 51k+ Star!动画图解、一键运行的数据结构与算法教程!
    大家好,我是Java陈序员。我们都知道,《数据结构与算法》——是程序员的必修课。无论是使用什么编程语音,亦或者是前后端开发,都需要修好《数据结构与算法》这门课!在各个互联网大产的面试中,对数据结构和算法的考核乐此不疲。往往《数据结构与算法》学得好的,都能拿到高薪!但是《数......
  • 无涯教程-Python - 泊松分布
    泊松分布是显示事件在预定时间段内可能发生的次数的分布,它用于独立事件,这些事件在给定的时间间隔内以恒定的速率发生,泊松分布是一个离散函数,意味着该事件只能按发生或不发生的方式进行度量,这意味着该变量只能按整数进行度量。无涯教程使用具有内置功能的seabornpython库来创建......
  • 无涯教程-Python - 图形数据(Graph)
    CSGraph代表压缩稀疏图,其重点是基于稀疏矩阵表示的快速图算法。稀疏图图只是节点的集合,节点之间具有链接,图几乎可以代表任何事物-社交网络连接,其中每个节点都是一个人,并与熟人相连;图像,其中每个节点是一个像素,并连接到相邻像素;高维分布中的点,其中每个节点都连接到其最近的邻居,并......
  • 无涯教程-Python - 正态分布
    正态分布是通过排列数据中每个值的概率分布来呈现数据的形式,大多数值保持在平均值附近,从而使排列对称。无涯教程在numpy库中使用各种函数来数学计算正态分布的值。将创建直方图,在该直方图上绘制概率分布曲线。importmatplotlib.pyplotaspltimportnumpyasnpmu,sigma=0......