程序员修炼之道 | 不要让你的代码走上渡渡鸟的灭绝之路

2021-08-20 16:25:00
LuLu
原创
3915
摘要:没有适应变化的代码,就如同没有适应变化的渡渡鸟,会在灵活性方面大打折扣,最终走向灭亡。


世界上有一种不会飞的鸟,叫渡渡鸟。15世纪前,由于生活的环境中有着丰富的食物,且没有天敌,渡渡鸟的翅膀开始退化,它们最终只能在陆地上行走奔跑、筑巢。随着人类的到来,渡渡鸟安定的生活被打破了:人类大肆捕杀渡渡鸟,随之而来的猪、猴子等动物不断地捕食幼鸟和鸟蛋,渡渡鸟孵化率急转直下。很快,每天捕杀的渡渡鸟数量越来越少,到1681年,最后一批渡渡鸟被杀害,渡渡鸟就此灭绝,只留下了“as dead as a dodo”这一俗语。


世界上有一群“手艺人”,叫程序员。19世纪,奥古斯塔·埃达·金·洛芙莱斯首次“编程”设计了一个打孔卡片程序,用来计算伯努利数。此后的程序员们习惯于通过构思、设计和测试,用计算机解决各类问题。随着客户业务的不断变化,程序员们经过精心设计的产品架构被打破了:在客户需求不断变更的情况下,软件经过反复修改,软件的生命周期明显缩短。很快,不能适应变化的程序员及其代码被市场无情地淘汰。


“as dead as a dodo”即“早就过时了”。没有适应变化的代码,就如同没有适应变化的渡渡鸟,会在灵活性方面大打折扣,最终走向灭亡。

程序员们,快醒醒!别再写渡渡鸟般的代码了

为了防止自己不经意间走上渡渡鸟的老路,程序员们决定通过外部配置参数化应用程序,让代码适应其运行环境。这种方式能够增加程序的灵活性,尽量避免重新编译。

如何进行外部配置呢?

常见的配置方式有两种:

  • 静态配置:将配置直接保存在文件中,或放在数据库的表内。
  • 配置服务化:将配置数据储存在一个服务API内。

比起静态配置,选择配置服务化会给程序员们带来更大的便捷性,如:

  1. 在身份认证和访问权限控制将多个应用程序的可见内容阻隔开的情况下,可以帮助多个应用程序共享和配置信息;
  2. 可以在任何地方进行配置的变更;
  3. 可以通过专有UI维护配置数据;
  4. 可以让配置数据动态化。

无论采用何种形式,配置数据都会驱动应用程序的运行行为,当配置值更改时,程序员们也就无需重新构建代码,自然就不用担心会写出“渡渡鸟般的代码”啦。

不要走入死胡同

任何方式都有可能使用不当或误入极端,所以做外部配置的同时,还要注意以下两点:

1.不宜太过

在程序设计时,有一位程序员决定让程序中的每个字段都可配置。于是,为了保存和编辑这些字段,还需要实现相应的管理代码。最终他发现,自己手头大约有40000个配置变量,这就意味着,即使做最小的改变,也需要花费几周的时间。

2.不宜太懒

如果对程序的某一特性产生争议,那么就去找个方法试试,通过反馈来决定哪一种更好。如果因为懒就放弃做决策,那这可能就会成为隐藏在程序内的“不定时炸弹”。