SAP UI5 初学者教程之四:XML 视图初探试读版
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。 在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发
SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 试读版
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。 在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发
SAP UI5 初学者教程之二:SAP UI5 的引导过程(Bootstrap) 试读版
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。 在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发
SAP UI5 初学者教程之一:Hello World 试读版
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。 在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发
SAP UI5 初学者教程的学习目录
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。 在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者
SAP UI5 使用 CSS 的一些注意事项
CSS Styling Issues 本节列出了 SAPUI5 中与 CSS 样式相关的一些最重要的规则。 SAPUI5 控件使用 CSS 进行样式设置,并且由于应用程序可以提供自己的 CSS,因此它们可以调整样式。 然而,这种适应越深,它们就越有可能与未来的 SAPUI5 更新或其他库和应用程序相关联。但如果我们遵循下面列出的规则,可以降低发生这种情况的风险。 Don’t override
SAP UI5 的 兼容性规则 Compatibility Rules
兼容性规则官网链接以下部分描述了 SAP 在主要(major)、次要(minor)和补丁(patch)版本中可以更改的内容。 在使用 SAPUI5 或为 SAPUI5 开发应用程序、功能或控件时,请始终考虑这些规则。 作为应用开发人员,避免在 SAP UI5 代码中直接操作 CSS,例如: domRef.className = "someCSSClass"; 切勿使用
SAP UI5 的 sap-ui-bootstrap script 脚本标签各属性解析
看这段测试代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>SAPUI5 Walkthrough</title> <script id="sap-ui-boot
现代 ABAP 编程语言中的正则表达式
在这篇博文中,我想分享现代 ABAP 中正则表达式的最新消息和变化,主要来自 OP 版本 7.55 和 7.56。 以前,在 ABAP 中使用 POSIX 样式的正则表达式或“uniX 的便携式操作系统接口- POSIX 的全称是 Portable Operating System Interface for uniX”。 因此,从现在开始,POSIX 语法中的正则表达式已过时,然后使用这种正则
SAP 电商云 Spartacus UI SSR 里 engine 和 engine instance 的区别
传入 originalEngine 到装饰器 decorateExpressEngine 里: 传出的是一个 engine 函数,engine 函数包括了 original Engine 这个函数,然后调用 engine 函数,同时将 Engine 参数传入,得到第二个 engine instance 函数。 最后的服务器端渲染,就是该 engine instance 函数负责处理。 我
jasmine.any(Function)
该函数的一个使用场景: it(`should pass parameters to the original engine instance`, () => { expect(originalEngineInstance).toHaveBeenCalledWith( mockPath, mockOptions, jasmi
SAP 电商云 Spartacus UI SSR 单元测试里的 callFake
callFake 的接口定义可以在 jasmine.js 里找到: SpyStrategy.callFake, 返回 Spy 对象。 spy1 即 originalEngine,二者指向同一个对象实例: 只要 spy1 即 originalEngine 这个函数被调用,则返回 callFake 指定的 mock 版本的实现:return originalEngineInstanc
jasmine.objectContaining 的单步调试
装饰好的 engine 调用 setup options: engine 指的是下图这段绿色代码: 现在准备执行下面这段代码了: 准备调用被 mock 过的 engine 函数: 即下图 1 的函数: 只要 spy 被调用,其调用时传入的参数,必定可以被记录: 看这段代码: jasmine.objectContaining 的适用场合: jasmine.objectCo
SAP ABAP SteammPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
Steampunk is going all-in 什么是 SAP ABAP Steampunk(蒸汽朋克)? Steampunk(又名 SAP BTP ABAP 环境):提供一个 ABAP 平台,它不仅像今天一样是企业就绪(enterprise-readiness)的基准,而且也是云就绪的。 蒸汽朋克的主要属性是: (1) 平台和顶部解决方案之间的专用稳定公共接口,确保升级无故障 (
为什么我们需要给 Angular library 创建多重入口 multiple entry point
原文:Creating Secondary Entry Points for your Angular Library 自从 Angular 库功能(从 Angular 7 开始)发布以来,现在开发 Angular 库比以往任何时候都容易。 Angular 库本身配备了一个名为 ng-packagr 的社区驱动包,它几乎是核心。 在本文中,我们将看看如何利用 ng-packagr 辅助入口点进一
使用 Chrome Dev tools 分析应用的内存泄漏问题
Catching memory leaks with Chrome DevTools 当分配的内存没有返回给操作系统或内存池时,我们将其称为内存泄漏。 在这种情况下,内存未被任何应用程序使用,并且被不必要地占用。 这会导致低性能、高延迟和频繁崩溃。 Understanding memory leaks如果您熟悉 C 等低级语言,您一定使用过 malloc() 和 free()。 相比之下,Ja
如何修复 SAP UI5 aggregation with cardinality 0..1 相关的错误消息
错误消息: Assertion failed: multiple aggregates defined for aggregation with cardinality 0..1 引起该错误的 aggregation 名称:flexContent: 查看 xml 视图里该 aggregation,发现其下定义了两个控件: 删除任意一个即可: 如上图所示,我将 Popo
使用 Chrome 开发者工具分析内存问题
DevTools 显示了按功能划分的内存分配细目。 默认视图是 Heavy (Bottom Up),它在顶部显示分配最多内存的函数。Fix memory problems 内存泄漏很容易定义。 如果一个站点逐渐使用越来越多的内存,那么您就会出现泄漏。 但是内存膨胀有点难以确定。 什么是“使用过多内存”? 这里没有硬性数字,因为不同的设备和浏览器具有不同的功能。 在高端智能手机上流畅运行的同一页
HTTP 头部字段 Cache Control max-age = 0 和 no-cache 的区别
禁掉缓存的情况:请求百度首页 开启缓存的情况下: 似乎没有什么变化。 再观察请求的头部字段:cache-control: max-age=0 标头 Cache-Control: max-age=0 暗示内容立即被认为是陈旧的(并且必须重新获取),这实际上与 Cache-Control: no-cache 相同。 首先了解 cache-control 的几种可能的值: n
Jest 测试框架 expect 和 匹配器 matcher 的设计原理解析
副标题:SAP Spartacus SSR 优化的单元测试分析之二 - 调用参数检测源代码: it(`should pass parameters to the original engine instance`, () => { expect(originalEngineInstance).toHaveBeenCalledWith( mockPath,