取长补短,而不是扬长避短

扬长避短:译为发挥自己的长处,回避自己的短处。这是一种中庸的思维。但是,我个人觉得扬长避短中的避是一种消极的逃避思维。这并不适合我们这群理应拼搏奋斗的年轻人。

与其“扬长避短”,不如“取长补短”。

因为,一桶水能盛满多少水,取决于最短的一块木板。

一、知彼之短而改已之短

此短,不仅指自身的短处,同时也指其他人的短处。知其短,才能补其短。

就拿我们技术团队最近对接宜宾银行存管来说吧。一拿到他们的技术文档,我们整个后端开发脑瓜子嗡嗡的。因为,他们的对接文档是真的太晦涩。我们真的太难了。

这里我简单列举几个:

(1)接口名称未语义化。存管平台采用的是数字编号。例:U00001。通过这个接口名称你知道它想干嘛吗?

(2)一个接口多种功能组合。例如对标的的所有操作,使用同一个接口来完成。而接口返回结果也异同。

(3)参数可选不传却提示报错。

(4)提供给我方平台的测试环境与正式环境的签名校验规则存在隐藏极深的差异。

(5)接口返回结果的参数未做完整说明。

看吧!我们总是很擅长挑别人的毛病。这是人与人之间最直接的感受。当然,我也怕别人挑毛病。所以,我就照着这几个点比对了一下我们的开发团队。幸好,我们的文档除了第(5)点,其他的问题几乎不存在。这时候我们只需要把接口返回结果参数作完整的说明就足以超越他们了。

这,就是显而易见的超越。

二、取其长补已之短

上面我们讲了宜宾银行存管一堆的毛病。难道就没有一件值得我们学习的长处吗?答案是:非也。

这里我依然列举几个点:

(1)公钥 der 格式引发的思考

跟宜宾银行存管对接之前,我根本不知道公钥居然还存在 der 格式。我一直认为公钥就是一串特定格式的字符串内容。通过这件事,我深知自己目前掌握的技术知识还存在很大未知空间。还需要沉下心来继续求知探索。

(2)接口请求与响应的参数的隐私信息加密

刚开始我是真不理解为何一个接口里面有的参数需要采用 RSA 非对称加密,有的则不需要。为何不统一加密,或者都不加密。因为我的第一反应是不需要,并且也给编码造成了一定的复杂度。甚至一度打心里鄙视这个存管系统的开发人员。

后来,我在解决系统隐私信息泄漏的同时,又能保证在日志当中留存这些关键信息的问题时。突然发现自己一直鄙视的银行存管的这个“体验破坏性设计”。刚好解决了我的问题。

用户的隐私信息在当今用户安全意识越来越高,法律越来越完善的情况下。防止隐私信息泄漏变得越来越重要。既要在日志当中记录用户的接口请求数据,又要保证日志系统信息查询是不被恶意下载外泄。

所以,看似看操蛋的设计。居然无意中解决了困扰我许久的问题。当我们碰到一个难以理解的设计时,要多思考别人为何这样设计。有可能是受限于技术的妥协,也有可能是受限于要解决的问题过于繁杂而得到的一个综合方案。关键是要理性对待,不可武断下结论。否则,我们就失去了学习别人长处的机会。

三、总结

孔子曾曰:“三人行,必有我师焉”。但是,还有后面两句:”择其善者而从之,其不善者而改之“。

伟大的孔圣人都说了,要学习别人的长处,反省自己身上有没有别人的缺点。

你看!早在几千年前就有取长补短的思想了。

我们还有什么理由不做呢?

博主 2011 年创建了一个《PHP 初学者官方群》,目前群成员 500 人左右。群号:168159147。为了防止广告,设置为付费入群。欢迎大家加入讨论技术!

标签: 无

发表评论: