相信对于这个标题,用过lisp的朋友一定不陌生,本来也是准备了一大堆理论要讲,想了想还是直接举例子比较好。 就举最近产品提的一个产品需求吧,简单描述一下:
- 对于不同的第三方应用,有不同的频率限制。没有配置则使用默认值
- 对于不同的第三方应用,在不同的时间段,有不同的频率限制。没有配置则使用默认值
公司内部都是用C++,当时第一点想到的肯定是配置一个xml文件,里面配置上这些参数,在进程启动的时候,用tinnyxml或者其他xml解析器把xml解析成C++可以辨识的数据结构。
我们来看一下这个xml配置有多复杂:
<freq_config interval="60" pt_relevant="1">
<app_list>
<app appid="0" max_day_load="360000">
<time_range_list>
<time_range begin_time="1" end_time="5" load_perc="0.1" />
<time_range begin_time="17" end_time="20" load_perc="0.5" />
</time_range_list>
<pt_config ...