什么是写死
廖家龙 用心听,不照做

程序员所说的是指对一些参数或配置写死。写死意味着除非发下一个版本,否则这个数据不可更改。比如微信下面的四个TAB,就是写死的,因为那四个TAB永远不会变。在程序实现的时候,程序员问是否要写死,其实是探求这里是否会变化。如果不变,那就写死。

不写死意味着这个数据是变化的,可运营的,那这个运营数据应该在服务器端进行配置,再由客户端拉取下来,然后运行时启用新的配置数据,多出的成本是需要设计一条协议拉取这项配置或参数,然后应用到程序中,如果已经有这样的运营配置协议,那直接配置即可。

  • 二者的本质区别是一个发生在编译时,一个作用于运行时。
  • 二者并不互斥,有的时候是要一起配合的,既要本地写死,也要云端可控。

假设你是一个资讯客户端的产品经理,一个资讯客户端经常有这些TAB或者叫频道:推荐、热点、视频、本地、美图、娱乐、体育、汽车。可这些频道的数据是可运营配置的,可以调整顺序,可以调整文案,可以新增一个频道,也可以删除某一个运营效果不好的频道。一个好的产品设计是,本地要默认写死一些频道,这些频道通常是一个资讯客户端不怎么变化的,每次都要展示的,这些成为打底数据或者叫default默认数据,如果没有这份写死的数据,你的客户端运行起来,就会头部没有任何信息,等网络数据回来才有展示,或者无网络时,就像出了bug一样没有任何展示。所以打底数据主要解决用户体验问题,无网络或初次启动时,给用户隐喻这个客户端已经在正常运行。展示了打底数据之后,此刻发起云端请求,请求云端运营数据,拉取成功之后,将新的频道数据覆盖本地数据,如果此次请求失败,则继续展示本地数据,保障用户浏览。在拉取成功的情况下,应该把新的频道数据覆盖本地Default打底数据,保证客户端下次启动展示上一次成功拉取的频道数据。这是客户端产品和程序设计的基本逻辑,希望不要割裂开看本地数据和云端数据的问题,二者配合效果更佳。