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的原创文章,请关注公众号"汪子熙":