专栏名称: 聊聊架构
聊聊架构
目录
相关文章推荐
架构师之路  ·  我升级了,欢迎大家试用 ·  3 天前  
美团技术团队  ·  老显卡福音!美团开源首发INT8无损满血版D ... ·  4 天前  
51好读  ›  专栏  ›  聊聊架构

小感悟:能在设计时写死就不要在执行时生成

聊聊架构  · 公众号  · 架构  · 2018-04-13 09:35

正文

作者|Bill
嘉宾 | Beining

很久之前,一位老程序员给我讲过这个道理,然而我现在才幡然醒悟。

我们当时正在代码审查,看到一个功能,需要生成字母 A 到 Z 的列表(类似通讯录的排列)。

我当时年轻气盛,决定利用一下 Unicode:写个循环,把 Unicode 的 65 到 90 号取出来,做个列表。差不多长这样:

1.  for  (let i =  65; i <=  90; i++)  {
2.  letters.push(String.fromCharCode(i))
3.  }

那位老程序员问我为什么不把字母表硬编码掉,毕竟这种东西是永远不变的:为什么每次重新计算?

我说,我这种高手肯定不能玩这种幼儿园把式啊,我科班学过算法和数据结构的!

他说:能在设计时写死就不要在执行时生成。

说实话,我也没写复杂度天大的死循环,这点性能损失几乎可以忽略不计。但是总体而言,这个建议很重要。

很多时候我们写的业务代码只是将一个固定结构的数据转换格式。例如,从数据库里取一两年更新一次的数据,组装一下,送进浏览器:很多逻辑是不必要的。特别是使用内容管理系统(CMS)的时候。

所以我觉得 WordPress、Drupal 等成熟玩家在静态网站生成器(Gatsby、Hugo、Jekyll),headless CMS、CDN 等的挑战下危机不小。

现在的流行是 JAMstack:JavaScript、API 和 Markup。

“能在设计时写死就不要在执行时生成。”这句话一直萦绕在我耳边。随着时间推移,我觉得这句话是至理名言。不仅仅是编程,而且是人生。

最近我读了桥水基金老大雷. 达里奥的《原则》一书。这本书的主题是,问题的种类比问题要少。所以,如果一个人可以提早规划,那么当遇见问题时也可以游刃有余。

在人生的设计时做好规划比在执行时现场考虑来的好得多。

达里奥的方法是,将各种规划固定成原则。他甚至将这些原则编写成算法,使用历史数据进行回溯。

桥水基金是最成功的基金之一:这种方法行之有效。华尔街开始雇佣程序员进行交易,为这种方法进行背书。







请到「今天看啥」查看全文