当我们接到产品的需求的时候,别着急马上投入开发,先要了解需求的来龙去脉,多思考,尽可能将里面潜在的坑挖出来,这样上线后才会更好的满足需求,代码的扩展性、代码生命周期才会更长。
下面简单列了一些应该思考的问题:
- 新功能会不会对历史业务产生影响?如果会的话,要把影响的范围尽可能全的罗列出来,产品和技术共同探讨老业务的兼容问题
- 如果涉及底层老的数据库表重构,要考虑新、老数据如何平稳迁移,不影响线上用户的正常访问
- 是否存在并发,如何保证数据质量?要采用什么锁机制?
- 做好概要设计方案、详情设计方案,并组织所有相关人员参加评审,如果涉及数据库变动,最好叫上DBA。做方案尽量多想一想,如果担心老业务吃不透,可以叫上一些老员工,先整体再细节再整体,做到有点有面,一定要以全局性视野对待项目,否则很容易陷入误区。
- 容量规划。新功能上线后,数据量有多大?后续每日预估新增多少数据?采用什么形式的存储?是关系型数据库(如mysql)? 要不要分库分表?还是采用Nosql存储?
- 数据是否存在冷数据、热数据之分(例如微博),是否要分开存储?
- 尽可能采用服务化形式,但是抽象到何种程度,要视具体的业务而定,尽量朝着高内聚、低耦合设计原则。
- 如果有多处地方代码用到同样的模型数据,最好能过上下文的方式传递,避免每次用到都走接口查询
- 模块化、组件化,具备乐高积木的特性
- 多使用一些设计模式,提升系统的可扩展性
- 尽量往平台方向思考,但要注意控制成本,即便一期做不到大而全,但一定要留好扩展,便于后续的不断迭代。
- 如果是新应用,另起炉灶,要做好技术选型,最好选一些主流技术框架,切勿凭个人喜好,最后搞成百花齐放,后面的维护成本极高
- 统一、标准化是一个亘古不变的话题,这一点非常重要
- 对于很多技术改造,可能会配置开关,做好开关两面的测试工作,必要时可以紧急切换开关降低影响
- 接口响应时间。是否需要引入缓存,缓存的数据如何维护?数据预热、数据有效期,空间不足、缓存的命中率怎么样?
- 接口的最大并发量,需要做性能压测,了解系统能支撑的上限,便于大促活动时机器扩容
- 接口的容错性,如果出现意外情况时,尽量保住核心业务,不受边缘业务或非核心接口的影响
- 有条件的话,做好接口的流量控制,配置阈值,超过预设值能自我保护,并有对应的业务提示。
- 做好单元测试、项目代码 code review
- 发布时,要提前准备发布计划,以及回滚计划
标签:编码,缓存,拷问,代码,业务,接口,自我,做好,数据 来源: https://www.cnblogs.com/yinghu/p/11980970.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。