- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
后端 Coder 如何做好代码设计?
巨人大哥
2021-12-06
点击上方 关注,?星标或置顶一起成长
免费送 1024GB 精品学习资源?
来源:/jurendage/phtml
全体设计与架构设计
领域模型设计与数据库设计
API设计与代码实现设计
设计评审与文档中心
说明:生鲜电商属于一个软件的产品,那么如何做好代码设计呢?代码设计,是程序员做项目时,在coding之前格外重要的一个步骤,可以说关系到整个系统、整个团队的研发质量和效率。一般说代码设计,可能涵盖以下几种:
1、全体设计2、架构设计3、领域模型设计4、数据库设计5、API设计6、代码实现设计
代码设计的前提是,项目组成员已经完成正式的需求评审,并经过充分思考:1、这个需求是为什么业务目标服务的?2、这个需求描述的内容,能否为服务该目标最合适的方式(包括研发性价比、项目周期等)?3、prd本身能否规律自洽?4、能否每个内容点都可实现?5、实现的技术方案是什么?6、能否做过类似的功能,合并吗?复用吗?拆解吗?
全体设计与架构设计
项目的全体设计,有时会涵盖系统架构设计,这里要区分一下,系统架构设计并不完全等同于代码架构设计。
全体设计首先要考虑的,是当前项目是要做一个全新的项目,还是要做原有项目基础上改造、迭代;项目组的积累中,能否有可以复用的地方(模块或成熟方案),能否有可以通过改造以符合新项目需求的可能。
其次再考虑,假如是新起项目,要如何搭建全体实施方案,内容一般包括:
1、硬件部署与资源申请:硬件和资源,是要和业务需求结合来制定的,比如业务最大访问、TPS/QPS等,要切实争辩得出一个数据范围,以确定系统能否做高并发方案。另外还要考虑容灾等问题,以此制定系统高可用的设计。
2、分析项目特殊突出的业务、技术难点:如千人千面的UI和查询,或机警配置的业务模式,类似这种需求的项目,会在模块模型设计上做额外处理,可能是将各种规章单独做一层规章引擎,也可能是在数据建模时添加更多维度;再比如超大的QPS,可能要在全体架构上,添加额外的两头层,异步收集数据等功能;还有就是依靠于审核的迭代上线周期(IOS、微信小程序)等,都要在全体设计中考虑进去。
3、内外部信息交换通讯:全体设计系统,要明确划定项目范围,哪些是本系统的功能,哪些功能、数据依靠其它系统或模块。要明确此次项目对外交互系统的访问关系和访问条件。
4、数据的长久化存储方案,如何选择硬件,如何选择软件,一般有常规处理方案。特殊要考虑和需求结合的一点是业务数据的生命周期,这也是数据归档方案等重要依据。
全体设计中格外重要的一部分是系统架构设计,要在业务边界确定的前提下进行。
首先,从业务视角进行拆解功能,定义系统由哪些模块构成。
其次,依据业务简单度、模块功能性划分,选择合理的软件架构模式及方案。
比如,业务需求上,有格外简单的流程处理,但各个业务子模块之间相对独立,则可以选择大事驱动型架构,基本上用形态机、工作流就可以满足功能了;再比如做微服务架构设计上,也不肯定都做集中式负载均衡,假如全体功能需求对消息流转要求比较高,则可以考虑中心消息型服务(比如Rocketmq)。
以上两步更多是从需求上分析,偏近于从业务角度设计系统。后面两步要从技术上做架构设计。
下一步要依据模块划分和架构方案选择合适的开发言语和技术框架。生产上一般考虑优选Java言语+Spring框架,但也有很多混搭的成熟方案,有些基于JVM的开源框架中对多言语的支持还是比较好的。
再下一步要将系统拆解,一般考虑划分出呈现层、(通讯层)服务层、数据层,再依据需求为每一层设计合理的服务及组件。如呈现层上web还是mobile,服务层是用Spring Boot还是Spring Cloud做微服务,数据层使用Mysql还是Oracle等。另外还有项目服务等通用组件及各种业务、技术两头件、及全体项目通用的技术方案选型,如日志(ELK等)、监控告警,访问授权,token认证等。
全体设计要在需求明确(不肯定全部细节完全敲定)的前提下尽心,一般构成定案要在正式需求评审会之后。
全体设计由团队leader或项目owner完成。
全体设计文档,优先考虑使用物理部署图、规律架构图、业务流程图等描述系统架构。
另:特殊建议在需求评审会后,首先由研发lead组织召开设计争辩会议。目的是让项目成员尽早的参与到项目之中,并使用争辩到方式,更好的理解项目及全体设计方案。
一般设计争辩可用头脑风暴方式进行会议。有严重分歧时,可以投票表决。
此争辩会议召开前,需要leader提前设定议题,会议上设有1名掌管人(可leader兼任或者team member轮番担当),依据议题集中,轮番发言再集
您可能关注的文档
最近下载
- 污水处理厂污泥处理处置安全保障措施方案.docx VIP
- 沪教牛津版英语2024七年级上册全册知识清单(记忆版).pdf
- 《项目融资概述》课件.ppt VIP
- 2024安徽职业技术学院招聘笔试真题及参考答案详解1套.docx VIP
- 2025至2030中国汽车检测行业发展分析及发展前景与趋势预测报告.docx VIP
- 如何找回误删微信好友,微信好友一键恢复.doc VIP
- 2025 CSCO前列腺癌诊疗指南.pptx VIP
- 2025年【数学】苏教版数学三年级下册试题5.324时计时法同步练习(含答案).pdf VIP
- 医院培训课件:《医院环境表面及清洁用品的清洁消毒》.pptx
- 《过故人庄》课件.ppt VIP
文档评论(0)