知识密集型流水线一套复杂的业务系统,通常会有着复杂的服务编排。以单个复杂业务为例,服务编排从打开某个页面就已经开始,接着是复杂且长的订单流程(工作流)、扩展实现以及微流程,从UI到持久层,串联着两条线:服务总线和工作流,简称程序工作者的流水线。 接下来是重点,流水线长且宽,会出现哪些壮观的景象呢? 螺丝钉的苦你不懂在大型SOA架构里面,程序猿是苦逼的。在一个不成熟的大型SOA架构里面,程序猿的工作更是煎熬。 苦一:SOA架构的核心特点之一是要有明确的接口定义,如果没有准确的文档可查,或者已有文档但是极不稳定经常更改没有基线,那么不幸的程序猿无论是作为接口的调用方还是被调用方,只能一脸懵逼。 苦二:套件化是商业化的产物,为的是独立的功能可以单独售卖,可这也能坑苦了我们的程序猿。归属不同套件的程序猿顺理成章地只懂得单个套件内的业务,也只维护归属套件的代码。前面说了,在没有良好的接口定义的情况下,套件之间的联调就是一场噩梦:几乎找不到一个对整个业务端到端理解透彻的人,而且当要阅读其它套件代码时通常要通过网络电话找人口述或者远程桌面“观赏”。程序猿一旦失去了对代码的控制,犹如男人失去性能力。 苦三:还是套件化之后的联调,要知道,一条长且复杂的精密的流水线,是承受不起流水线停滞带来的灾难的。但是,在一个不成熟的套件间联调过程中,这样的灾难频繁发生。可能某个很委屈的童鞋提交了一个BUG或者代码、脚本漏提、错提,或者服务器、数据库故障等,悲剧就发生了:一个版本内几十号程序猿同胞们都只能静静地等待,运气好个把小时,运气差一两天就过去了。你尽可以发挥你的想象力,想象一下悲剧接连发生的情景。 你苦,因为你是螺丝钉嘛,不苦你苦谁? 专业性很强的流水作业导致这些问题的系统以及管理层面的原因暂不做讨论。我们来看看流水线的程序猿在做些什么。 其实很简单,不外乎拿到上游的输入,处理之后输出给下游。某些专一的程序猿们专注于处理自己责任模块内的事务,对上游做了什么下游要做什么充耳不闻。这是在大公司的业务开发人员在做“流水性作业”的常态。但这显然不是正确的专业人员应该有的姿态。 这是程序猿的自贱。 只专注责任模块,坏处是很明显的:
写代码毕竟是一项专业性很强的技术工作,它是严谨的工程,严谨的工程需要严谨的对待。一个严谨的程序猿才配得上工程师的称号。 程序猿如果抱残守缺地只想把自家门前雪扫清,那么在大公司被视为低端工种也是理所应当了。 程序猿的初心做一个优秀的程序猿,研发出厉害的技术,开发出牛逼的产品,同时拿着让人羡慕的高薪——也许只有最后一点还算勉强实现吧。现实是,大量程序猿们淹没在重复地所谓的智力型工作里面。 这是现实,尤其是在大公司内从事业务开发的可怜的程序猿们。但做好以下几点,我们依然可以有所作为,现实也可以变得美好许多:
本文转自:简书 微信号:IdeaofSE |
|