ABAP 如何解析 JSON 数据试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
SAP 电商云 Spartacus UI ActiveCartService isStable 调用何时返回 true
loading 从 true 变为 false: 单从这个 initiator 栏,是很难找到是哪一行应用代码,发起的这个 cart 加载: 根据 [Cart] Load Cart 关键字搜索是能找到的: 最后找到了准确的代码行数,调用 CartConnector 去读取数据: 首先查看针对这个 cart,是否存在 pending 请求: 使用 withLatestFrom
SAP 电商云 Spartacus UI Cart ID 的 local storage 存储
IsStable:首先 false,然后 true @NgModule() export class CartPersistenceModule { static forRoot(): ModuleWithProviders<CartPersistenceModule> { return { ngModule: CartPersistenceModul
程序员笔试和面试过程中,有哪些是面试官眼中的减分项和加分项?
笔者从 2007 年参加工作至今,从事了15年的企业级应用软件的设计和开发工作,期间也多次担任公司的笔试和面试官,这里分享一些我眼中的减分项和加分项。本文仅代表我个人观点。 简历环节程序员投递简历,通常面试官对简历外观的颜值(即字体,排版)等不会有太多要求,只要内容简洁,清晰,易读即可。尽量避免有任何错别字出现。 但有一个减分项各位求职者需注意,在简历里出现和自己求职的岗位相关的技术术语中,千
关于 Spartacus 开源项目的 peerDependencies
ng new app 生成的 Angular 应用,自带11个依赖: 使用 Schematics 安装了 library 之后的客户 Storefront: 本地新建一个空的文件夹,在里面执行命令行:npm i @spartacus/storefront 里面只有一个 node_modules 文件夹,里面包含了很多 js 文件和 TypeScript 的 .d.ts 文件:
rxjs 里 Skip 操作符的一个使用场景
skip 操作符允许我们忽略源的前 x 个排放。 当我们有一个始终在 subscription 上发出希望忽略的某些值的可观察对象时,就可以使用这个操作符。比如 Observable emit 的前几个值并不是我们感兴趣的值,另一种情况是我们订阅了 Replay 或 BehaviorSubject,并且不需要对初始值进行操作,而只关心初始值之后的数据 emit. 这种情况下,skip 操作符非常有
rxjs 里 CombineLatest 操作符的一个使用场景
一个具体的例子: combineLatest([ data$.pipe(startWith(null)), loading$, ]).pipe( takeWhile(([data, loading]) => !data || loading, true), map(([data, loading]) => loading ? null : data),
SAP 电商云 Spartacus UI ActiveCartService 的 isStable API 里的 EMPTY 操作符
isStable API 源代码如下: return this.activeCartId$.pipe( switchMap((cartId) => this.multiCartService.isStable(cartId)), debounce((state) => (state ? timer(0) : EMPTY)), distinct
SAP 电商云 UI ActiveCartService 的 isStable API 里的 debounce 和 timer 操作符
这个 isStable API 的实现是 switchMap 和 debounce,[timer](https://www.learnrxjs.io/learn-rxjs/operators/creation/timer) 等操作符的组合。 首先看 timer 的例子: // RxJS v6+ import { timer } from 'rxjs'; //emit
如何从 SAP UI5 Not Found 页面跳转回到正常的应用页面试读版
一套适合 SAP UI5 初学者循序渐进的学习教程教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP UI5 的引导过程 Bootstrap SAP UI5 应用开发教程之三:开始接触第一个 SAP UI5 控件 SAP UI5 应用开发教程之四:XML 视图初探 SAP UI5 应用开发教程
Docker 实战教程之从入门到提高 (四)
本系列的前三篇文章,我们学习了如何在 Ubuntu 操作系统安装 Docker,并且通过实战练习,了解了 Docker 和宿主机操作系统文件目录互相隔离的实现原理,以及 Docker Volume 的工作原理。通过动手对 Nginx Docker 镜像进行修改,达到自定义其首页显示的目的。 Docker 实战教程之从入门到提高 (一)Docker 实战教程之从入门到提高 (二)Docker
Docker 实战教程之从入门到提高(三)
本系列的前两篇文章,我们已经学习了 Docker 的安装步骤,通过实际的例子,学习了Docker 和宿主机操作系统文件目录互相隔离的实现原理,以及 Docker Volume 的工作原理: Docker 实战教程之从入门到提高 (一)Docker 实战教程之从入门到提高 (二) 本文继续通过实战来学习如何编辑 Docker 镜像以及如何使用 Dockerfile 自制镜像。 练习1:
如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面试读版
一套适合 SAP UI5 初学者循序渐进的学习教程教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP UI5 的引导过程 Bootstrap SAP UI5 应用开发教程之三:开始接触第一个 SAP UI5 控件 SAP UI5 应用开发教程之四:XML 视图初探 SAP UI5 应用开发教程
Continuous Integration 对 ABAP 技术栈来说意味着什么
我们首先回顾 Martin Fowler 在 2000 年关于持续集成的定义:持续集成是一种软件开发实践,其中(……)每个开发人员至少每天都在进行集成。 想想我们的 ABAP 开发,我们不是在每次激活对象时,都把修改自动集成到 ABAP 中吗? 下面我们来看看如果 ABAP 需要做到持续集成,需要解决哪些技术挑战: 维护一个单一的源存储库 并非所有 ABAP 开发对象都是版本化和可传输
在 ABAP 技术栈里实施 Continuous Integration 的一些挑战
持续集成(Continuous Integration)是一个术语,关于向开发人员提供每次更改的反馈,反馈必须可靠并及时提供。 无论何时保存开发、提交或其他任何东西,都可能发生更改,这完全取决于开发环境。开发人员需要这些信息来确定是否可以将更改推送给更广泛的受众,比如将应用交付给 Quality Engineer 进行更高维度的测试。 同样,如何将开发部署到 CI 系统也是一个部署主题。 可以
为什么从事云原生开发需要学习容器技术
随着企业数字化进程的不断深入发展,云原生技术成为业界一个炙手可热的话题。所谓云原生,以容器、微服务、DevOps 等技术为基础,提供对应用进行分布式部署和统一管理的平台和体系。云原生是一系列思想和工具的集合。从其概念定义可看出,容器技术是云原生的基石。在云原生领域工作的开发人员,如果不了解和掌握容器技术,好比试图在浮沙堤上修建高楼大厦一般。 什么是容器在介绍为什么我们需要容器之前,请大家先回忆一
SAP ABAP FOR ALL ENTRIES 的用法
FOR ALL ENTRIES 子句是 ABAP OPEN SQL 语句中常用的功能。带有 FOR ALL ENTRIES 子句的 OPEN SQL 语句代表一种同时包含数据库表和 ABAP 内表的 OPEN SQL 语句类型。过去我们可以使用 JOIN 转换来执行这种 SQL 语句。借助快速数据访问 (Fast Data Access,简称 FDA),可以使用一种使用 FOR ALL ENTRI
Docker 实战教程之从入门到提高(二)
本系列第一篇文章,Docker 实战教程之从入门到提高 (一),我们已经介绍了如何在 Ubuntu 操作系统中安装 Docker,以及 Proxy 和 Insecure Registry 的配置。 本文继续 Docker 的实战学习。 练习1:通过一个简单例子学习 Docker 和宿主机操作系统文件目录互相隔离的实现原理我们知道在 Docker 容器里是无法访问到宿主操作系统的文件目录的,但这
Docker 实战教程之从入门到提高(一)
笔者将自己在云原生开发中的 Kubernetes 工作经验写成了一个系列实战教程: 适合 Kubernetes 初学者的一些实战练习 (一) 适合 Kubernetes 初学者的一些实战练习 (二) 适合 Kubernetes 初学者的一些实战练习 (三) 适合 Kubernetes 初学者的一些实战练习 (四) 适合 Kubernetes 初学者的一些实战练习 (五) 适合 Ku
适合 Kubernetes 初学者的一些实战练习 (六)
本系列的前五篇文章: 本实战练习系列的前五文章: 适合 Kubernetes 初学者的一些实战练习 (一) 适合 Kubernetes 初学者的一些实战练习 (二) 适合 Kubernetes 初学者的一些实战练习 (三) 适合 Kubernetes 初学者的一些实战练习 (四) 适合 Kubernetes 初学者的一些实战练习 (五) 本文继续我们的 Kubernetes