持续打磨至尽善尽美

在这里插入图片描述
面对超高复杂度且不断变化的系统,开发中追求“尽善尽美“四个字并不是那种“洁癖”类的不必要的需求,而是一个起码的标准。
打造一个有水平的系统,开发者自身的好追求之外,还需要不停的接受各种压力,全方位的挑战,条件严重缺乏下的磨砺,千锤百炼之中方能炉火纯青。

系统的尽善尽美是很多好开发人员的本然追求,这本来就是对高水平代码追求的情感化。
实际开发中,也是有非常大的现实意义。
看2020年初的疫情,个人会从整个情况的发展中看到很多和开发类似的事情。

系统的健康是更高级的技术

系统健康,如同人的健康一样,是一个复杂系统级别的事情,客观存在,却又非常的“虚”。
加之我们平时讨论的事情,更多在于具体的技术,传播热度上“《荒野大镖客2》的大气技术”,“GPUDriven pipeline“等明显是更好的。
但是实际开发中,我们需要了解,具体的技术固然很nb,很多也是非常难的,但是系统的健康是这些技术所扎根生长的环境。
个人开发经历中,大约3/4的feature的主要挑战就是来自于系统不够简洁,代码质量不够高,具体的技术中,难度很高的真的不多。
更具体些,系统健康的话,当下最强的技术实现起来都比较容易。
解析表达就是:系统健康决定实现feature的速度,是具体技术的一阶导数级别的事情。

我们的“尽力“局限性太大

从开发角度看,开发者作为一个人,尤其是普通人来说,局限性过大,难以胜任大规模系统的工作。

局限1–当下信息量处理上限

普通人在一段时间内只能处理有限的信息量,即便我们采取最优策略,抓大放小,处理战略级别的东西优先。
从代码角度看,依旧是可提升的空间巨大。

局限2–开发时间限制

游戏行业中总是疯狂的追求速度,所以这里大家再有追求,能不欠太多技术债务,已经非常难得了。
本来当下信息量处理就少,加上档期问题就更严重了。

局限3–面对变化的时候,要处理信息量大量增加

也就是时间广度上,feature和系统都在不停地进化,要始终保持系统健康,就是要不停地对系统进行重组,改进。
要做那种全身级别的调理,而不是直接插入一个新技术模块,那更像一个肿瘤在身上。

这些放在一起,我们就知道事情远非我们在赶档期时候,能想能做的那么点事情,比如笔者所在团队,可以说对于代码和技术的追求已经非常炽热了,但是还是留下非常多的遗憾。

局限4–大家看不到其重要性

其实在资深程序的技术讨论中,这一点是毫无疑问的:把系统健康度放在它该有的地方:比具体技术高一级。
但是在具体项目组中,系统健康度的打磨则受到普遍的不重视和反对,原因是这些同事没法看到这些,如同没有显微镜就看不到细胞,没有望远镜就观测不到星系一样,看不到如何重视呢?
稍微列下:

  • 合作团队都只能看到“实际”的具体feature,对于健康度都看不到也感受不到
  • 初级开发者,停留在实现feature都磕磕绊绊上
  • 而一些多年的程序(这里不能成为资深)包括不限于:追求开发新潮技术的开发者,放眼短期的开发者;缺乏对于开发的长期跟踪和profile,对于系统健康度影响停留在“爽”和“不爽“上,看不到其在开发中准确的战略地位。

最终导致大家重视度不高,非程序团队对于程序团队专门花时间整理系统反对,程序员自己会写出健康度很差的系统,然后停留在吐槽上。

通过日常化系统打磨来追求尽善尽美

前面提到了系统不够好的源头:开发者的各种局限性,信息量超过人脑短时间能处理的能力。
还有系统健康的重要性:具体技术的一阶导数。

但是现实中,又很难说团队停下来,花很长时间不停地打磨,其实这样效果也不好,这依旧是一个短时间冲刺的事情,况且整理代码的任务一直是“急行军”开发中项目冲突的重灾区。

现实中可行度较好的一个是:在处理每一个新的开发的时候,涉及到的模块,都审视一下,这里是否完美。
每个task都有一定的budget,用于打磨系统。
这里核心有几个优势:

  1. 好的代码和设计,时常像灵感,多来光顾老系统,尤其是带着新的需求,往往会产生更好的想法,这一点是最重要的。
  2. 这点形成共识之后,能够很好地应对系统变化带来整体适应性不足的问题,需求变化,底层系统也整体的进行升级
  3. 化整为零,有效的缓冲开发进度上的冲突

最后还是从理性回到感性,我们日常开发中,很难心里始终放着这么多的思考,最后只能剩下一个东西:
每天都审视我们的系统,怀尽善尽美之心,有一口气点一盏灯

发布了780 篇原创文章 · 获赞 460 · 访问量 165万+

猜你喜欢

转载自blog.csdn.net/ccanan/article/details/104191824