软件设计
软件复杂度一般有三个来源
- 代码库规模,与开发工具、编程语言有关,代码行数与复杂度不成正相关。
- 技术复杂度,指不同的编程语言、编译器、服务器架构、操作系统等能够被开发人员理解的难易程度。
- 实现复杂度,不同的编程人员对需求的理解不同,在编程时会有截然不同的编写风格。
程序设计
- 解耦
- 模块化
软件 分层架构
- 功能性需求:一个程序为用户做些什么,如文件上传、数据查询
- 非功能性需求:除功能性需求以外的需求,如性能、安全性、容错与恢复、本地化、国际化
非功能性需求构建起来的就是我们的软件架构
软件架构就是软件的基本结构
包括三要素:代码和代码之间的关系和两者各自的属性。
最经典的软件架构就是分层架构——将软件系统进行分层。
主要优点:
- 复用性
- 横向扩展
劣势:
- 开发成本变高,从上到下都要写
- 性能降低
- 代码复杂度增加,层与层直接强耦合,组合功能的调用需要增加层与层之间的调用
功能性需求:分层是为了把较大的复杂问题拆分为多个较小的问题,解耦
架构(非功能性需求):分层能提升代码可扩展性
代码分层架构设计主要为了实现责任分离、解耦、组件复用、标准制定
偶做前堂客
祝你天天开心
在未知的时间
在未知的地点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了