SAP官方幫助網站,help.sap.com 背后那些事兒

      網友投稿 967 2025-03-31

      這是Jerry 2021年的第 16 篇文章,也是汪子熙公眾號總共第 287 篇原創文章。

      “My momma always said life was like a box o’chocolates. You never know what you gonna get.”

      “母親經常說,人生就像一盒巧克力,你永遠不知道你會得到什么。”

      這段話用在程序員的職場生涯上也同樣成立。

      就在2020年8月前,Jerry 在 SAP 成都研究院的開發工作,一直專注在后臺開發領域,使用的編程語言和平臺是 ABAP,Java 和 nodejs. 雖然在2014年到2016年之間,也曾短時間做過 SAP CRM Fiori 應用的開發,但現在回顧,當時無非是用 javaScript 編寫一些簡單的業務邏輯罷了。作為一個 SAP UI5 應用開發人員,得益于 SAP UI5 提供的完善的用于企業級 Web 應用開發的控件庫,當時我們整個開發團隊,并沒有在 UI5 應用的頁面布局上花費太多的心思。

      2020年8月,我獲得了一個寶貴的機會,得以進入一個全新的開發領域:基于 Angular 和 TypeScript 的 SAP Spartacus 開發。

      剛剛接觸 Angular 這款以學習曲線陡峭著稱的前端框架時,我也度過了一段短暫卻很抓狂的時光,不過好在終于熬過來了。

      如今我已經是 SAP Spartacus 全球開發團隊的一員,在一支技術氛圍濃厚的開發團隊中工作,每天我都覺得收獲滿滿。

      我的開發重心轉到前端之后,一個職業習慣被無限放大了:訪問一個網站,第一件事就是F12,激活開發者工具,然后像年輕時玩 RPG 游戲時操作主角到房間里一陣翻箱倒柜一樣,在該網站的實現代碼里到處折騰。

      最近因為要查資料,打開 SAP 官方幫助網站:help.sap.com,赫然發現該網站原來基于 AngularJs 實現。

      地址欄里輸入 help.sap.com 之后,返回的第一個響應,里面包含的一系列以 ng 為前綴的 HTML 元素屬性,以及雙重大括號圍繞變量的 Interpolation 語法,能夠讓我們識別出該網站基于 AngularJS 開發而成。

      從這個 index 頁面請求的響應里,我們能看出 help.sap.com 用到的前端框架,除了 AngularJS 1.4.8 之外,還有 Bootstrap 3.1.1 和 jQuery.

      AngularJS 1.0 是 Google 發布的第一個 MVVM 框架,為前端開發帶來了很多新的思路。AngularJS 1.x 基于 javaScript . 從 Angular 2 開始,采取 TypeScript 全新實現,是 AngularJS 1.x的全新改版,架構和設計理念同 1.x 版本的 AngularJS 相比,均有了很大不同。

      時至今日,AngularJS 和 Angular 具有完全不同的官網:

      AngularJS 1.x: https://angularjs.org/

      Angular 2 及其之后的版本:https://angular.io/

      help.sap.com 使用的 AngularJS 版本號是 1.4.8,而SAP Spartacus 3.0 使用的 Angular 版本號是:10.2.4

      在復雜前端應用中,類似 help.sap.com 網站這種多前端框架混搭的做法是一種很常見的開發方式,比如 SAP Spartacus 就和 help.sap.com 一樣,采取 Angular 和 bootstrap 混用的方式:

      在 help.sap.com index.html 的注釋里,已經解釋了引入 bootstrap 的原因:用于實現響應式和移動設備布局。

      為什么 jQuery 也會一并引入? 因為 bootstrap 直到版本 5,才會移除對 jQuery 的依賴。

      https://blog.getbootstrap.com/2019/02/11/bootstrap-4-3-0/

      因此,無論是 help.sap.com, 還是 SAP Spartacus,目前都無法避免對 jQuery 的依賴。

      SAP官方幫助網站,help.sap.com 背后那些事兒

      在 help.sap.com 的搜索欄輸入關鍵字 spa:

      會依次調用 querySuggestionsProducts 和 querySuggestionsDocuments 兩個函數,向后臺發起搜索,分別返回匹配該關鍵字的產品和文檔。

      這里仍然使用了 jQuery的 ajax 函數,發起 HTTP 請求。

      返回的 ajax 響應里,包含了 5 個 其名稱出現了 spa 字符串的 SAP 產品,及其對應的 SAP 幫助文檔鏈接。

      后臺 API 返回的搜索結果,通過 ng-if, ng-repeat 等 Angular Structural 指令,顯示到前臺頁面上。

      help.sap.com Local Storage 里存儲的值:國家,省,市的名稱:

      Cookie 里存儲了我登錄 SAP Help Portal 的用戶 ID 和用戶名:

      在我登錄后向 后臺發起請求時,這些 cookie 字段會自動添加到 HTTP 請求的頭部中去。

      而 SAP Spartacus 的 Local Storage, 存儲的則是當前用戶的 userId,購物車 ID ,以及用于調用 SAP Commerce Cloud OCC API 的 access_token.

      本文只是簡單地窺探了一些 help.sap.com 網站的前端實現。那么,SAP 的門戶網站,sap.com, 又是基于什么前端框架來實現的呢?

      答案是 React,而且版本號不算低:16.14.0.

      至此肯定有些朋友會問,為什么這些 SAP 自己的網站,沒有采用 SAP UI5,而采取 Google 的 Angular 或者 Facebook 的 React 來實現?其實如果對 SAP UI5,Angular 和 React 的強項,以及各自擅長的使用場合有所了解的話,也就不難回答這個問題了。作為 SAP 員工,我不方便在社交媒體上將自家產品同其他公司的產品做比較,本文就此結束,感謝閱讀。

      web前端 網站

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Word2019文檔中撤銷與重復操作的使用方法(word撤銷和重復)
      下一篇:=LOOKUP(1,0/($A$2:$A$23881=$G5),$B$2:$B$23881)
      相關文章
      久久亚洲中文字幕精品有坂深雪| 亚洲国产精品SSS在线观看AV| 亚洲高清中文字幕| 亚洲第一区香蕉_国产a| 亚洲中文字幕不卡无码| 一本色道久久综合亚洲精品高清 | 久久精品国产亚洲一区二区三区| 午夜亚洲国产理论片二级港台二级 | 亚洲 综合 国产 欧洲 丝袜| 日本系列1页亚洲系列| 亚洲JLZZJLZZ少妇| 亚洲av日韩av永久无码电影| 亚洲AV色欲色欲WWW| 国产亚洲高清在线精品不卡| 国产精品手机在线亚洲| 亚洲国产aⅴ综合网| 亚洲人成国产精品无码| 中文字幕亚洲日韩无线码| 亚洲综合国产一区二区三区| 亚洲人成网77777色在线播放 | 激情综合亚洲色婷婷五月APP| 亚洲AV成人噜噜无码网站| 色噜噜亚洲男人的天堂| 亚洲久热无码av中文字幕| 亚洲αⅴ无码乱码在线观看性色 | 国产午夜亚洲精品不卡免下载| 亚洲国产电影av在线网址| 91麻豆国产自产在线观看亚洲 | 亚洲一卡一卡二新区无人区 | 婷婷精品国产亚洲AV麻豆不片| 老色鬼久久亚洲AV综合| 亚洲fuli在线观看| 亚洲高清毛片一区二区| 亚洲国产精品一区二区第一页免| 亚洲国产香蕉人人爽成AV片久久| 久久久久亚洲av毛片大| 久久亚洲成a人片| 亚洲欧洲高清有无| 亚洲日本VA中文字幕久久道具| 日本亚洲高清乱码中文在线观看| 久久久无码精品亚洲日韩软件|