Jerry的UI5框架代码自学教程
SAP UI5对View元素基于jQuery的操作方式,使得其学习曲线相对Angular/React来说比较平缓,至少对于我个人而言是这样。对于已经有jQuery经验的前端开发人员来说很容易上手。

使用UI5开发SAP UI应用,在开发过程中往往会遇到各种各样的问题,比如最后出来的UI效果和你预料的不一样,或者console里面显示一些奇奇怪怪的error message. 对于后者来说,这些error message通常都是UI5框架代码报出来的,这并不意味着是UI5框架代码的bug。相反,往往是应用程序中developer自己犯的错,导致UI5框架在runtime执行时出错,exception被框架代码捕捉到,最后显示在console里。
遇到这种情况,如果你一遍又一遍地看自己的应用代码,但是觉得它们的书写都是正确的,找不到线索,那么你要么问问身边其他对UI5比较熟悉的同事,要么自己啃框架的代码慢慢分析到底为什么框架代码执行到你的应用以后会出错。
曾经有刚接触UI5的同事和我讨论过,说对UI5框架代码很感兴趣,想学习,但是迷失在代码海洋里,UI5 core的代码一个文件动辄就是几千上万行,不知道从哪里入手。
对这个困扰我自己的思路是,从最容易的地方入手,采用以点带面的方式学习。
试想下面这个scenario:
" 在UI上画个button,这个button有一个"click me"的label. 点这个button,弹个message出来 ".
Scenario够简单吧,这个效果每个UI5 developer都能做出来,但是你能搞清楚它背后的工作原理么?为什么你在model里设置的文本最后会显示在button label上? 你UI5代码里new出来的button instance最后怎么就变成了html标签?你没有用html native的onclick属性注册事件响应,为什么你最后点击了button,你在controller里定义的event handler仍然会被调用?
真正搞清楚了这些问题,说明你已经对UI5的框架代码有一些认识了。这个时候,凭借这些基础,你可以根据自己的兴趣或者工作需要,用同样的办法去研究UI5框架的其他topic.
这个系列是我2015年做CRM Fiori标准开发的时候写的,教程链接:
https://blogs.sap.com/2015/10/26/a-tutorial-how-i-do-self-study-on-a-given-fiori-control-and-ui5-framework-code-behind/
其内容得到了SAP Walldorf的UI5 developer的认可, 内容的正确性上没有问题。

Another UI5 walkthrough from my previous colleague Wu Ji
Wu Ji以前在SAP工作过,我有幸和他共事过18个月的时间。Wu Ji是一位我非常佩服的专业的程序员,我因为曾经能和他共事而感到荣幸。
这是他的github: https://github.com/j1wu
Wu Ji也写过UI5的walkthrough, 也可以作为研究UI5框架代码的材料:
SAPUI5 walkthrough step 1: Hello World! BaseObject, where where it all began:
https://blogs.sap.com/2016/01/12/sapui5-walkthrough-step-1-hello-world-where-where-it-all-began/
SAPUI5 walkthrough step 2 – bootstrap, dive in – how does attachInit work?
https://blogs.sap.com/2015/10/29/sapui5-walkthrough-and-dive-in-step-2-bootstrap/
SAPUI5 walkthrough step 3 – controls, dive in – how does a control get created?
https://blogs.sap.com/2015/11/03/sapui5-walkthrough-and-dive-in-step-3-controls/
SAPUI5 walkthrough step 4 – XML views, dive in – how does a xml view get created?
https://blogs.sap.com/2015/11/15/sapui5-walkthrough-step-4-xml-views-dive-in-how-does-a-xml-view-get-created/
SAPUI5 walkthrough step 5 – controllers, dive in – how does a controller get created?
https://blogs.sap.com/2015/11/22/sapui5-walkthrough-step-5-controllers-dive-in-how-does-a-controller-get-created/
SAPUI5 walkthrough step 6 – modules, dive in – how does modules work?
https://blogs.sap.com/2015/11/25/how-does-modules-work-in-sapui5/
SAPUI5 walkthrough step 7 – JSON model, dive in – how does JSON model work?
https://blogs.sap.com/2015/12/05/sapui5-walkthrough-step-7-json-model-dive-in-how-does-json-model-work/
SAPUI5 walkthrough step 8 – translatable texts, dive in – how does i18n model work?
https://blogs.sap.com/2015/12/06/sapui5-walkthrough-step-8-translatable-texts-dive-in-how-does-i18n-model-work/
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:


Jerry的UI5框架代码自学教程的更多相关文章
- 前端测试框架Jest系列教程 -- Asynchronous(测试异步代码)
写在前面: 在JavaScript代码中,异步运行是很常见的.当你有异步运行的代码时,Jest需要知道它测试的代码何时完成,然后才能继续进行另一个测试.Jest提供了几种方法来处理这个问题. 测试异步 ...
- Spring自学教程-介绍、特点、框架(一)
一.spring是什么,有什么用? 一句话:面向企业应用,使用javabean代替ejb的java应用或web开发. 侵入式的做法就是要求用户代码"知道"框架的代码,表现为用户代码 ...
- Yii2框架RESTful API教程(二) - 格式化响应,授权认证和速率限制
之前写过一篇Yii2框架RESTful API教程(一) - 快速入门,今天接着来探究一下Yii2 RESTful的格式化响应,授权认证和速率限制三个部分 一.目录结构 先列出需要改动的文件.目录如下 ...
- 前端测试框架Jest系列教程 -- 简介
写在前面: 随着互联网日新月异的发展,用户对于页面的美观度,流畅度以及各方面的体验有了更高的要求,我们的网页不再是简单的承载文字,图片等简单的信息传递给用户,我们需要的是更加美观的页面展示,更快的浏览 ...
- 前端测试框架Jest系列教程 -- Matchers(匹配器)
写在前面: 匹配器(Matchers)是Jest中非常重要的一个概念,它可以提供很多种方式来让你去验证你所测试的返回值,本文重点介绍几种常用的Matcher,其他的可以通过官网api文档查看. 常用的 ...
- 前端测试框架Jest系列教程 -- Mock Functions
写在前面: 在写单元测试的时候有一个最重要的步骤就是Mock,我们通常会根据接口来Mock接口的实现,比如你要测试某个class中的某个方法,而这个方法又依赖了外部的一些接口的实现,从单元测试的角度来 ...
- 前端测试框架Jest系列教程 -- Global Functions(全局函数)
写在前面: Jest中定义了很多全局性的Function供我们使用,我们不必再去引用别的包来去实现类似的功能,下面将列举Jest中实现的全局函数. Jest Global Functions afte ...
- 前端测试框架Jest系列教程 -- Expect(验证)
写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西. Expect 可以验证什么 Jest中 ...
- 前端测试框架Jest系列教程 -- Mock Functions(模拟器)
写在前面: 在写单元测试的时候有一个最重要的步骤就是Mock,我们通常会根据接口来Mock接口的实现,比如你要测试某个class中的某个方法,而这个方法又依赖了外部的一些接口的实现,从单元测试的角度来 ...
随机推荐
- Oracle之PLSQL
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用.PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)它是Ora ...
- Vue深度学习(4)-方法与事件处理器
方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="app"> <button v-on:click = "greet" ...
- 源生js惯性滚动与回弹效果
在写移动端的APP或者页面时,经常会遇到惯性滚动与回弹效果.用插件iscroll可以轻松解决这个问题,大多数的移动框架也能轻松解决这个问题,它们内部都封装了这个效果. 一直好奇这个效果原生JS是怎么实 ...
- [笔记]使用Keepalived实现Nginx主从热备
HA(High Available), 高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点. 1.1. 高可靠软件keepalived keepaliv ...
- springboot 热部署的两种方式
问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢 ...
- web前端优化整理(转)
如今浏览器能够实现的特性越来越多,并且网络逐渐向移动设备转移,使我们的前端代码更加紧凑,如何优化,就变得越来越重要了. 开发人员普遍会将他们的代码习惯优先于用户体验.但是很多很小的改变可以让用户体验有 ...
- iOS开发--数据库管理CoreData的使用
CoreData是iOS5后,苹果提供的原生的用于对象化管理数据并且持久化的框架.CoreData本质上是将底层数据库封装成对象进行管理.但数据库实际上只是CoreData的一个功能,并不是全部功能. ...
- 每周.NET前沿技术文章摘要(2017-05-17)
汇总国外.NET社区相关文章,覆盖.NET ,ASP.NET等内容: .NET .NET Framework 4.7正式发布 链接: http://www.infoq.com/cn/news/2017 ...
- 基于阿里云的MQTT远程控制
好久没有写博客了,眼看自己的项目就要快做完了,先分享一下基于MQTT的远程控制,自己买了一个阿里的云端,然后在云端上安装了一个MQTT服务器,其实是一不小心买了两个,所以准备贡献出来一个供大家使用, ...
- jest for elasticsearch
*elasticsearch(后面简称es) 背景: 目前项目应用中对es的操作用的是http(自己封装)的一套方法:有些数据处理起来还是需要定制开发处理,不是很方便.正好需要对本项目重新进行改造,于 ...