宁可写能写代码的代码,也不要写代码

把代码看成一种文本,解析这个文本,生成数据结构,然后重新计算遍历,统计,生成新的代码,就是代码生成。

随着业务的扩展,需求的增加,代码量的扩张是不可避免的。为了能不断满足新的需求,就要不断用新的抽象降低项目的复杂程度,以便能让普通程序员进行维护。

总的来说,新的功能是旧的功能的叠加和演化:如果旧功能是函数,那么新的功能就是利用这些函数,生成新的函数。所以有人说:项目的扩展,就是在写一个 Lisp 语言的解释器。

只有将代码当成文本处理,才能让用代码描述的项目成为可以任意扩展的东西,否则,利用代码语言本身的各种模式,很难能大幅度降低项目的复杂程度。

所以,不断用新的语言,描述项目的需求,是保持项目扩展的最好途径。

那么,普通项目如何成为一个语言解释器呢?答案是不断设计代码生成器,用更抽象的描述,保持项目的可维护性。

代码作为软件企业的资产,有特定的运行环境,特定的应用场景,当有新的需求,新的环境,代码的可用性会大打折扣,因为运行的环境可能不同,版本可能会发生变化,这个问题怎么解决呢?

就是把代码标准化,让代码尽可能和语言无关,尽可能和环境无关,只是单纯的算法,这样在不同的语言环境中就可以增加可重用性。

转载于:https://my.oschina.net/u/563463/blog/3069730

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值