2021.11.8 孤尽训练营D14——一周总结

开发一款软件也是在管理一个项目,事项的确定需要经历从全局再到细节、从整体到局部的过程。这个过程也是软件的生命周期。

软件生命周期包含可行性研究阶段、需求分析阶段、软件设计阶段(包括概要设计和详细设计)、编码阶段、测试阶段、运行与维护阶段。

上周完成了需求分析与一部分的设计(数据库设计,日记、异常、错误码之类在开发上的全局设计),本周则学习软件设计阶段的其他内容,包括架构选型以及开发过程中所需工程结构、规则与规范等较详细的设计确定。

架构选型对于研发过程的效率和后续的维护至关重要,一个好的架构能够让团队在研发测试与运维阶段都受益,比如spring vs springboot。架构选型包括但不限于开发框架如微服务、数据库连接池、消息中间件、远程通信框架、网关框架。

项目结构设计从对项目分层开始,计算机领域的任何问题都可以通过增加一个中间层解决。应用分层可以隐藏下层业务逻辑的复杂性,提高系统的组件化和可维护性,此外需要设计不同层/模块之间的依赖与交互方式。

在具体开发过程中,接口规范需要由前端和后端开发人员共同讨论并制定,对于前后端交互的API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体。返回给前端的信息中,错误信息与用户信息需要区分,有的开发人员只返回错误信息不返回用户信息,这一点需要改进。比如错误信息是“服务器错误”,用户信息就可以是“抱歉,系统正在维护哦”之类的对用户友好的信息。

在讲前后端接口规范的过程中,老师还讲了浮点数,二进制浮点数比起十进制要复杂得多,存储也大不相同。在传递给前端的过程中,由于JS没有整形,只有Double浮点数,而Double只有16位有效数字(十进制),所以如果后端传给前端的值超过16位有效数字,该值就会被截断,造成精度损失。所以如果数字太大或者有精度要求,最好使用String类型来传递。

本周还学习了二方库,以及高并发下的参数调优策略。


学习不是一蹴而就,而是细水长流。

你可能感兴趣的:(笔记,需求分析,java)