1. 程式人生 > >金庸的武俠世界和SAP的江湖

金庸的武俠世界和SAP的江湖

2018年10月30日晚,成都地鐵一號線,Jerry手機app上突然彈出來一條金庸去世的新聞。

Jerry識字很早,小學一年級就開始蹭我父親的《射鵰英雄傳》看了。小時候,我爸工作的車間裡有一位領導,退休後把自己家的一個房間騰出來,滿滿兩個落地書架擺滿了各種武俠小說。每逢寒暑假,Jerry的父親就會帶著我去那裡租小說回家看,一本書一天的租金是一角錢。Jerry至今都要感激我的父母,在我小的時候,沒有因為武俠小說在某些人眼裡是閒書而禁止我看,讓我的童年多了不少樂趣。

正因為如此,金庸的小說可以說伴隨著Jerry至今,我想我有資格自封為一個”三十年金迷“。如今金老離開了我們,作為他的粉絲,一定要寫一點什麼。

本文目錄:

  • 1. 神鵰俠侶 - 獨孤九劍 - SAP開發顧問分析解決問題的能力

  • 2. 天龍八部 - 八荒六合唯我獨尊功 - SAP不同產品對同一業務模型的回爐再造

  • 3. 射鵰英雄傳 - 亢龍有悔 - SAP CPMS

  • 4. 倚天屠龍記 - CloudFoundry = 屠龍刀 Neo = 倚天劍

  • 5. 笑傲江湖 - 日月神教(ESF2)千秋萬載,一統江湖(BO開發框架)

  • 6. 飛狐外傳 - 關鍵字:七心海棠,心疼

  • 7. 鹿鼎記 - 韋小寶(SAP顧問)行走江湖的法寶

  • 8. 連城訣 - 連城劍法和Fiori Elements

  • 9. 碧血劍 - 何鐵手和Concur

  • 10. 書劍恩仇錄 - 百花錯拳 - 技術棧的大雜燴

  • 11~14:雪山飛狐,白馬嘯西風,俠客行,鴛鴦刀

下面是Jerry Wang的正文。


有人評價金庸的小說包羅永珍,每一個人都能在金庸小說裡看到自己的影子。作為一個SAP開發人員,我在金庸這十四部名著裡看到的,是SAP的江湖

1. 神鵰俠侶 - 獨孤九劍 - SAP開發顧問分析解決問題的能力

獨孤九劍,「劍魔」獨孤求敗所創,以無招勝有招,獨孤求敗憑藉此技能縱橫天下,生平欲求一對手讓自己回守一招而不可得,最後埋劍空谷,煢煢了此 一生。

獨孤九劍並不像金庸其他小說裡那些傳統的劍法,講究一招一式,必須練得有板有眼,而是一套武學理論,用SAP的話來講就是,強調mindset

methodology

一個SAP開發顧問,負責的工作可以高度概括成兩件事:

1. 開發新功能

2. 修改客戶使用已開發的功能時發現的問題

由於SAP系統的複雜度,有時找到問題的根源不是一件容易的事,這也是為什麼目前全球有包括SAP社群在內的眾多SAP線上論壇存在的原因。這些論壇通常都按照不同的SAP產品分成不同的板塊,每個板塊裡存在該領域的專家和遇到各種問題的求助者。

相信很多在某個SAP產品上工作過一段時間的SAP顧問,都總結出了自己的一套解決問題的方法論。當遇到這個產品的某個具體問題時,能按照自己總結的套路去從容應對。

Jerry認為,一個SAP開發顧問處理問題的最高境界,就是像獨孤求敗那樣,把自己工作產品的架構,業務知識和核心程式碼全部融會貫通,做到這個產品在自己心中毫無神祕可言。這樣遇到該產品的任何問題,都能夠像獨孤求敗PK天下群雄一樣,以無招勝有招,以不變應萬變。

Jerry自己還遠遠達不到這個水平。我認識的同事裡,Scheuch Carsten對SAP CRM的掌握程度,或許和獨孤求敗在劍術上的造詣差不多。

Jerry可是擁有這位SAP CRM大神的親筆簽名哦:

2. 天龍八部 - 八荒六合唯我獨尊功 - SAP不同產品對同一業務模型的回爐再造

Jerry第一次看《天龍八部》時,被這個霸氣的武功名稱嚇了一大跳,這個名稱不像金老的風格啊?倒有點像一些修真,玄幻小說裡的武功名稱。

八荒六合唯我獨尊功,是靈鷲宮天山童姥的最高絕學, 威力奇大,卻有一個不方便之處,即每30年,需要返老還童一次。還童之後,功力打回原形。想要回復功力,便需每日重修,每一日便是一年,而且午時須得吸飲生血,方能修煉。

金庸的這個武功設定,和SAP公司的數字化轉型,On Premise向On Cloud的轉型很像。

SAP當初在ERP領域取得了輝煌的成功,當開發其他的軟體套件比如CRM時,儘管部分模型可以參考ERP的經典設計,比如CRM訂單的狀態表CRM_JEST幾乎就是ERP狀態表JEST的照搬:

但更多的模型,比如CRM的產品主資料模型,就完全沒有仿照ERP的物料主資料模型,而像天山童姥一樣,返老還童之後進行了重造。結果就是,在Jerry看來,SAP CRM的產品主資料模型的設計比ERP物料主資料模型更加精巧,更加易於擴充套件,更能夠覆蓋客戶和Partner的特殊場景,更加便於SAP開發顧問用程式碼消費。

又比如SAP Cloud for Customer Sales和Service場景的很多Business Object,其模型的設計很多地方參考了ERP訂單的思路,但又不是簡單的照搬,而是吸收後者的優點併發揚光大。

再比如SAP 任何一款和客戶關係管理相關的產品,免不了需要實現客戶主資料這個模型。如果站在產品線的高度巨集觀來看,會發現這一個個產品的開發,包含了一次次對客戶主資料的重新建模,如同天山童姥每次返老還童後一次次的重新修煉。

關於客戶主資料在SAP不同產品中的設計,可以參考我的這篇文章:Jerry眼中的SAP客戶資料模型

3. 射鵰英雄傳 - 亢龍有悔 - SAP CPMS

前面說過了,《射鵰英雄傳》是Jerry上小學一年級看的第一本金庸著作,而CPMS(Content Production Management System) 是2007年Jerry加入SAP成都研究院接觸的第一個大型系統。

郭靖從一個普通的江湖小蝦米成長為萬眾景仰的俠之大者,關鍵性的一步是他的女友黃蓉幫他邁出的,傍上了洪七公這根大腿。

起初洪七公只教了郭靖一招“亢龍有悔”,已然讓他受用不盡。面對武學造詣比他高得多的樑子翁,郭靖翻來覆去就這一招,但是樑子翁就是拿他毫無辦法,真是一招鮮吃遍天。

《周易·乾》有云:“上九,亢龍有悔。” 乾卦爻位到了上九,以六爻的爻位而言,已位至極點,再無更高的位置可佔,孤高在上,猶如一條乘雲升高的龍,它升到了最高亢、最極端的地方,四顧茫然,既無再上進的位置,又不能下降,所以反而憂鬱悔悶了。

金庸筆下通過洪七公口中介紹了降龍十八掌的這一式:

“這一招叫作‘亢龍有悔’,掌法的精要不在‘亢’字而在‘’字。倘若只求剛猛狠辣,亢奮凌厲,只要有幾百斤蠻力,誰都會使了。這招又怎能教黃藥師佩服?‘亢龍有悔,盈不可久’,因此有發必須有收。打出去的力道有十分,留在自身的力道卻還有二十分。哪一天你領會到了這‘悔’的味道,這一招就算是學會了三成。”

CPMS是由SAP成都研究院馬洪波老師和他的本地開發團隊,和SAP上海研究院的同事於2007年開發出的一套基於ABAP(有少量Java程式碼)的CD/CI(持續交付/整合)系統,用於SAP Business by Design的開發。

Jerry沒有去網上查閱流行的Jenkins(前身是Hudson)的誕生時間,不過我個人認為,作為一款2007年就開始開發並隨後投入使用的基於ABAP的CD/CI系統,CPMS在當時的時代是相當超前的。Jerry當時每天的工作都需要使用這個CPMS,曾經抱怨過它難用。現在想起來,我真是too young too naive, 因為當時水平侷限,無法領略到它的精妙之處。

馬洪波老師和他的開發團隊,為了方便像Jerry這種才入門SAP的新人,花了大量心血寫了很多操作手冊,裡面包含了CPMS詳細的使用步驟,並配以系統截圖,我們內部稱這種操作手冊為Cookbook。

於是當時Jerry的工作畫面就是,一個螢幕視窗開啟CPMS系統,另一個視窗開啟操作手冊,操作一下CPMS系統,切到另一個視窗查操作手冊——和郭靖當初一招"亢龍有悔"就震飛樑子翁,但是無法理解why this can happen一樣。

直到郭靖習練了《九陰真經》,人到中年後,才真正領悟了洪七公當年向他強調"亢龍有悔"的精髓不在""而在於""的原因。並且郭靖到了中年之後,降龍十八掌和洪七公相比已然青出於藍:

“豈知郭靖近二十年來勤練九陰真經,初時真力還不顯露,數十招後,降龍十八掌的勁力忽強忽弱,忽吞忽吐,從至剛之中竟生出至柔的妙用,那已是洪七公當年所領悟不到的神功。”

Jerry在離開了SAP Business by Design開發團隊後,接觸了SAP CRM,SAP UI5,S/4HANA,Cloud for Customer等產品,若干年後再回過頭來看CPMS,才領悟到當時我們內部為什麼要使用這個系統,同時真正理解了馬洪波老師那一大堆操作手冊裡每一個步驟背後的意圖。

關於馬洪波老師的更多介紹,請閱讀他寫的文章:

SAP成都研究院馬洪波:提升學習力,增強競爭力,收穫一生樂趣

4. 倚天屠龍記 - CloudFoundry = 屠龍刀 Neo = 倚天劍

武林至尊

寶刀屠龍

號令天下

莫敢不從

倚天不出

誰與爭鋒

小時候Jerry一直很納悶,這六句話到底是誰散佈到江湖上的?讓很多金迷更想不透的是,郭靖和黃蓉是如何把《九陰真經》和《武穆遺書》塞到中空的倚天劍和屠龍刀裡,然後完成鑄造的?

金迷們津津樂道的另一個話題,就是江湖上的無數人都想得到屠龍刀,費勁各種心思去巧取豪奪,而大家都知道倚天劍就在峨眉山滅絕師太手中,但為什麼沒有一個人去打倚天劍的主意?

有一種答案絕大多數金迷都認可,那就是:大家都不敢。郭襄16歲生日時,楊過在襄陽城給她開party,廣邀業界黑白兩道人士來參加,讓大家都知道郭襄是由楊過罩著的。再加上郭靖在江湖上的崇高聲望,即使去世很久,江湖上也沒有人敢打他的後人建立的峨眉派的主意,以免成為黑白兩道的公敵。

在SAP雲平臺的開發世界裡,掌握並精通了CloudFoundry的用法,您就能像擁有屠龍刀一樣,可以隨心所欲地號令您部署在CloudFoundry上的所有微服務應用,讓它們為客戶服務。

在《倚天屠龍記》整本書裡,屠龍刀的鋒芒都蓋過了倚天劍。同樣,在SAP雲平臺裡,至少根據Jerry觀察我的SAP成都研究院同事的使用情況,CloudFoundry受歡迎的程度勝過Neo。不過Jerry這兩種環境都同時在用,就像張無忌曾經同時用倚天劍和屠龍刀,應對波斯明教總部由妙風,輝月,流雲三使組成的微型Scrum團隊的攻擊一樣。

Neo環境由於其SDK裡提供的JCO,能夠讓開發人員以極小的工作量就能完成部署在公網的應用對內網SAP系統上ABAP函式進行消費的任務,這個特質能讓Jerry快速完成一些開發任務。

5. 笑傲江湖 - 日月神教(ESF2)千秋萬載,一統江湖(BO開發框架)

《笑傲江湖》是一部架空了歷史時代的著作,金庸於1967年開始創作,結合當時China獨特的時代背景,表面上寫的是江湖上爭霸奪權的腥風血雨,但金迷們更傾向於解讀成金老對當時政治的影射。部分金迷甚至把東方不敗自宮後,放任楊蓮亭對日月神教元老們的迫害,解讀成金老對當時XXXX和XXX行為表示出來的憤慨。

本文不談政治。在《笑傲江湖》裡,除了日月神教教主任我行想一統江湖外,嵩山掌門左冷禪和華山掌門嶽不群也有同樣的心思,只不是左冷禪太過心急,不加掩飾,而君子劍即使面對自己的妻子,也總是拿師尊教誨的"光大華山派"來當幌子,可謂深藏不露。只可惜精明如嶽不群,也抵擋不住《辟邪劍譜》的誘惑,最後割了,練了,杯具了。

在SAP Business by Design早期開發過程中,每個應用領域幾乎都有自己的BO開發框架,比如BYD CRM BO用的CDF框架,無論從介面還是設計理念,都和BYD SCM BO用的BOPF沒有太多相似之處。對於這些BO的開發同事來說還好,因為只用學會自己負責的BO的開發框架就好了。而對於SAP成都研究院的BYD開發同事來說,因為我們在BYD標準BO之上構建應用,如果遇到問題,免不了需要深入框架了解這些BO的一些細節來進行錯誤排查,因此我們需要熟悉所有的BO框架。

在《笑傲江湖》末尾,日月神教幾乎統治了武林的半壁江山,和少林武當分庭抗禮。而在現在的BYD裡,新的框架ESF2,取代了BYD早期各式各樣的BO開發框架,像日月神教一樣統一了BO開發領域。

關於BOPF和ESF2這兩個BO開發框架的區別和聯絡,由於篇幅關係在這裡不展開,大家請參考SAP社群這個帖子,我的同事在裡面已經做了詳盡闡述:

https://archive.sap.com/discussions/thread/3602400

任我行,左冷禪和嶽不群之流費盡心機想統一江湖,無非是為了想滿足個人的權力慾和統治欲,而ESF2統一SAP雲產品裡BO的開發,能減少開發成本,提高開發效率,讓應用能夠更好地服務客戶。

6. 飛狐外傳 - 關鍵字:七心海棠,心疼

“七心海棠”是《飛狐外傳》中最厲害的毒物,因葉子上有七心的圖案而得名,需用烈酒來澆灌方能成活。《飛狐外傳》那個並不美麗但是玲瓏剔透的女子程靈素,擁有該天下第一毒物。

若問Jerry在金庸小說裡出現的女子,最喜歡哪一位,我還真答不上來。但是要問我最討厭哪一位,我會脫口而出我最討厭的是《天龍八部》裡的王語嫣,Jerry覺得她是金庸14部小說裡第一渣女。

我很喜歡程靈素。Jerry工作之後,曾經沉迷於一款中國古代武俠題材的網路遊戲,名字就不說了,以免有廣告嫌疑。遊戲裡Jerry有一個小號,專門用來收寶石和挖礦,ID就是七心海棠

金庸書中很多人物的命名都很有講究。作為"毒手藥王"的弟子,程靈素的名字出自《樞》和《問》兩部醫書。

金庸筆下對程靈素容貌的描寫:“她除了一雙眼睛外,容貌卻是平平,肌膚枯黃,臉有菜色,似乎終年吃不飽飯似的,頭髮也是又黃又稀,雙肩如削,身材瘦小,顯是窮村貧女,自幼便少了滋養”。

或許正是她這極為平常的顏值,註定了她在同袁紫衣的情場爭鬥中最後的悲劇結局。儘管程靈素不是胡裴心中的女主角,但她卻是很多金迷(包括Jerry在內)心中的《飛狐外傳》第一女主角。

Jerry看過很多言情小說,比如瓊瑤的《梅花三弄》系列。瓊瑤筆下的愛情描寫同金老的相比,我覺得後者的筆法於平淡質樸中更見真情,更能打動像Jerry這樣男性讀者的心。

"胡斐見她眼圈紅紅的,顯是適才哭過來著,不敢朝她多看,瞧著她瘦削的側影,心中大起憐意,說道:“我有一事相求,不知你肯不肯答允,不知我是否高攀得上?”程靈素身子一震,顫聲道:“你……你說什麼?”胡斐從她側後望去,見她耳根子和半邊臉頰全都紅了,說道:“你我都無父母親人,我想和你結拜為兄妹,你說好麼?”程靈素的臉頰剎時間變為蒼白,大聲笑道:“好啊,那有什麼不好?我有這麼一位兄長,當真是求之不得呢?”胡斐聽她語氣中含有譏諷之意,不禁頗為狼狽,道:“我是一片真心。”程靈素道:“我難道是假意?”說著跳下馬來,在路旁撮土為香,雙膝一屈,便跪在地上。胡斐見她如此爽快,也跪在地上,向天拜了幾拜,相對磕頭行禮。程靈素道:“人人都說八拜之交,咱們得磕足八個頭……一、二、三、四、……七、八……嗯,我做妹妹,多磕兩個。”果然多磕了兩個頭,這才站起。胡斐見她言語行動之中,突然間微帶狂態,自己也有些不自然起來,說道:“從今而後,我叫你二妹了。”程靈素道:“對,你是大哥。咱們怎麼不立下盟誓,說什麼有福共享、有難同當?”胡斐道:“結義貴在心盟,說不說都是一樣。”程靈素道:“啊,原來如此。”說著躍上了馬背,這日直到黃昏,始終沒再跟胡斐說話。"

金庸聊聊幾筆,便把一個平素沉靜睿智的女子,在知道心中暗戀的情郎從此只能以兄妹相稱的噩耗後,內心巨震,但是表面竭力掩飾的窘態和心碎描寫得如此傳神。

每次讀到這段,再想到書末程靈素的離世,Jerry的感受就是:心疼

2013年,Jerry需要做一個Office Integration原型開發,需求就是把用SAP CRM document builder建立的一個個業務上具有關聯關係的word文件合併成一個PDF文件。

Jerry當初選擇生成PDF的方案是Adobe Livecycle Enterprise service。為了做原型開發,需要在本地安裝一個Adobe本地伺服器。2013年的時候,我用的膝上型電腦記憶體只有4G, 這個伺服器安裝完成之後我的作業系統可用記憶體只有幾個MB了。那兩天我的原型開發,是伴隨著由於硬碟上設定的虛擬記憶體頻繁換進換出導致的磁碟讀寫噪聲中度過的,聽著這些聲音我很心疼

剛剛做完這個原型開發,膝上型電腦就徹底掛了,再也開不了機了。我又心疼了好久。

7. 鹿鼎記 - 韋小寶(SAP顧問)行走江湖的法寶

金庸在《鹿鼎記》裡明確寫道,韋小寶行走江湖的三大法寶:寶衣、匕首、蒙汗藥,其中前兩樣都是從鰲拜抄家時得來。

Jerry剛進入SAP成都研究院時,對ABAP一竅不通。工作上遇到問題,我的三大法寶是:

1. 問成都同事

2. 問SAP其他研究院同事

3. 報內部ticket問專家

SAP成都研究院2006年建立時,彙集了一大批具有多年SAP從業經驗的前輩。Jerry工作中遇到的問題直接找這些前輩請教就行,當時薛老闆鄧浩前輩在技術上給了我很多指點。如果一個問題成都同事不太熟悉,我就打電話問上海,德國,印度和以色列研究院的同事。如果還搞不定,就建立ticket找直接負責人。

《鹿鼎記》的主人公韋小寶,給Jerry的兩點職場啟示:

1. 擴大自己的人脈,多結交志同道合的朋友,少樹立敵人。朋友多了好辦事。

2. 擁有自己的"寶衣", "匕首", "蒙汗藥",即自己的核心競爭力。

韋小寶數次在千鈞一髮之際靠這三大法寶轉危為安,而SAP開發顧問也會面臨一些關鍵時刻,比如產品上線前夕突然出現的一個重大bug,一個重要的客戶演示等等,如何打造並利用好自己的核心競爭力,在關鍵時刻能成功亮劍,是我們SAP開發顧問要去思考的問題。

8. 連城訣 - 連城劍法和Fiori Elements

《連城訣》是金庸14部著作裡從頭到尾始終描寫人性黑暗面的一部小說,讓Jerry吃驚的是,《連城訣》講述的不是一個完全虛構的故事,而是金庸家中一位長工的親身經歷加工而成。

《連城訣》中最神祕的武功,莫過於連城劍法,連城劍法如果沒有神照經強大的內功作基礎,徒具其形,以至於梅念笙的三個弟子一直認為師傅傳授的是假的連城劍法。

和連城劍法一樣,Jerry剛開始接觸Fiori Elements(以前的名稱是Smart Template)時,也曾經覺得它非常神祕:在CDS view簡單地寫幾行形如Java Spring的annotation,就能夠得到一個標準的Fiori應用,而且其原始碼在Chrome開發者工具裡還看不到,這太神奇了!

如果說Fiori Elements定義的annotation是連城劍法的招式,那麼搞清楚這些定義在CDS view上的annotation是如何在ABAP後臺被解析,以及UI5的JavaScript程式碼是如何根據這些annotation生成UI控制元件例項,就成了和連城劍法的神照經內容心法對應的Fiori Elements內功心法。

Jerry以前曾經研究過Fiori Elements的內功心法,把心得記錄在這篇文章裡:

Jerry的通過CDS view + Smart Template 開發Fiori應用的blog合集

9. 碧血劍 - 何鐵手和Concur

《碧血劍》的男主角袁承志在Jerry看來毫無存在感可言,反而是從未漏過面,通過側面描寫介紹給讀者的一位奇男子,手持金蛇劍的金蛇郎君夏雪宜,給讀者們留下了深刻印象。

而本書中除了女主角溫青青以外,何鐵手也是《碧血劍》裡顏值極高的美女之一,雲南五毒教教主,武功極高,後被袁承志收購,改名何惕守。

Concur是一款顏值也極高的世界一流的公務旅行和費用管理的雲解決方案。後被SAP收購,名稱保持不變。

Jerry身邊很多同事用Concur進行出差費用報銷一段時間後,對它的介面友好型,易用性和移動裝置的適配性上都給予了很高的評價。

10. 書劍恩仇錄 - 百花錯拳 - 技術棧的大雜燴

百花錯拳,天池怪俠袁士霄所創拳法。袁士霄人生失意,性情激變,發誓做前人未做之事,打前人未打之拳。於是他融通百家,別闢蹊徑,創出此拳。百花錯拳的要旨在於「似是而非,出其不意」,招式大悖於祖傳正宗手法。

“只見陳家洛擒拿手中夾著鷹爪功,左手查拳,右手綿掌,攻出去是八卦掌,收回時已是太極拳,諸家雜陳,亂七八糟,旁觀者人人眼花繚亂。這時他拳勢手法已全然難以看清,至於是何門何派招數,更是分辨不出了。”

如果要讓Jerry用一個字形容百花錯拳,那就是:大雜燴

同樣,Jerry的個人感受是,SAP開發者的技術棧也正朝著大雜燴的方向發展。比如SAP成都研究院做的標準產品開發,以前是純ABAP開發,近些年隨著SAP的Cloud轉型,SAP雲平臺的推廣,以及UX從WebClient UI/Webdynpro轉到Fiori, 越來越多的開發轉移到Java/JavaScript上。而SAP雲平臺上擴充套件元件Kyma的推出,更是將這種技術棧大雜燴化的趨勢推向了一個新的高度:

https://kyma-project.io/docs/#

Kyma的幫助文件裡提到,使用Kyma,開發人員可以對SAP核心產品做增強,並且可以任意選擇自己喜歡的程式語言和技術棧。

這種在SAP雲平臺上對各種技術棧海納百川的思路,已經和SAP傳統的基於Netweaver ABAP的開發方式有了很大區別,也再次體現了SAP雲轉型的魄力和做出的具體努力。

11~14:雪山飛狐,白馬嘯西風,俠客行,鴛鴦刀

Jerry實在編不下去了,就到這裡吧。

時光荏苒,小學時Jerry跟著父親一起去租武俠小說的情景還歷歷在目,彷彿就發生在昨天,而彈指之間,Jerry即將步入不惑之年。

世事無常,人生如夢,不管是在金庸的武俠世界還是在我們每個平凡人的現實生活中都是如此。

讓我們且行且珍惜。

金庸,走好。

一個SAP開發人員兼金迷

2018年10月30日

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":