开始一个新项目前,应当想清楚的几件事儿

如果觉得有价值,请随意转载,只需附上原文地址和 “简书作者milter”字样即可

在做一个新项目时,我们往往喜欢快速做出一个版本,迅速上线,不断迭代。这是互联网推崇的文化。但是,我还是觉得,以下几点,最好还是想清楚一点,在一开始尽可能做好一点,这样会更有利于后续的快速迭代,也就是磨刀不误砍柴工。

1、log怎么记

记log看似很平常的事儿,但在开始一个新项目,尤其是探索性的新项目时,认真地规划一下log的记录是很重要的。因为这是以后分析问题,解决问题的重要手段。如果一开始记录的很随意,那么,后面分析统计时很可能会头疼。根据我自己的经验,规划怎么记log时,应当着重从以下几点考虑:

  • 项目的数据流程节点要记
    一个项目总是要处理输入数据,经过处理后给出输出数据的,这个过程中的关键节点数据状态应当记录下来。
    -- 输入的原始数据要记录下来
    -- 数据关键的中间处理结果要记录下来
    -- 请求第三方服务的处理结果要记录下来
    -- 最后的输出要记录下来

  • log中数据的基本粒度要细
    比如数据时间、来源、用户、session、请求次序、甚至上一次请求的关键信息等。有些字段可能需要上游传过来,这个在一开始定义接口时就要考虑清楚,让对方传过来,因为接口一旦确定,就不好修改了。一个总的标准就是宁多勿少。

  • log中数据各项的格式规范要定义好
    比如时间、手机号、还有枚举类参数的取值名称等,都要在一开始就清楚地定义好记录标准,以后一直按照标准执行,方便以后数据的处理

2、异常的定义

项目中可能出现哪些异常,都要提前考虑清楚,考虑得越详细越好。最好定义一套自己的异常体系,将自己的异常、上游的异常、第三方应用的异常都清楚地定义好。并认真考虑每种异常的处理办法,是返回错误码,还是直接崩溃?最后,这些都要记录在log中。

如果在开始项目前,对可能出现的异常难以考虑周全,建议在实施项目的过程中及时进行完善。

3、关键指标报表

项目总是要迭代的,如何知道迭代后问题确实解决了或者效果确实变好了?这就需要对项目的关键衡量指标进行度量,要在一开始就想清楚这些关键指标是什么,并做好报表。指标好比灯塔和KPI,没有明确的衡量指标,就失去了优化的方向。
指标分两类,一类是技术指标,比如性能、内存占用、线程数、机器负载等;另一类是业务指标,这依据项目的不同而不同。

4、数据和代码的同步

许多项目都要使用一些数据提供服务,这些数据也是变化的。这就涉及到代码和数据同步问题。因为如果不同步,当指标有异常变化时,就很难说是代码改动造成的还是数据改动造成的。

数据比较小时,可以直接用git,和代码放在一起。如果数据量比较大,那么就需要设计一套数据的版本控制框架,可以很简单,也可以很复杂,取决于自己的项目特点和数据的迭代频率。

5、接口的定义要留有余地

最好是每个接口都留一个字符串类型的额外参数,开发到后期,如果需要上游增加新的数据,可以让上游写成一个json字符串放在这个参数中。这是一个取巧的办法,正规的办法肯定是升级接口。即使升级接口,也不建议直接在原接口上改,建议另外建一个接口的2.0版本,这样方便兼容。当然,这要求对接口中共同的代码要抽取出来,可以在新接口中最大程度的复用。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 23,883评论 2 81
  • 栈 1. 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被...
    程序员高级码农阅读 4,443评论 0 11
  • PMP第五版考点汇总冲刺版 第一章引论 P2:《PMI道德与专业行为规范》详细描述从业者在责任、尊重、公正、诚实方...
    文小梦阅读 15,600评论 4 89
  • 还记得上次5月份学习性格色彩的时候,我问豆姐,007每周一一篇文章(写作社群)怎么样才能准时写好,不拖延呢,豆姐说...
    Interesting7阅读 71评论 0 0
  • 狐狸说:“对我来说,你只是一个小男孩,就像其他成千上万个小男孩一样没有什么两样。我不需要你。你也不需要我。对你来说...
    七格豆子阅读 247评论 0 1