软件设计
软件复杂度一般有三个来源
- 代码库规模,与开发工具、编程语言有关,代码行数与复杂度不成正相关。
- 技术复杂度,指不同的编程语言、编译器、服务器架构、操作系统等能够被开发人员理解的难易程度。
- 实现复杂度,不同的编程人员对需求的理解不同,在编程时会有截然不同的编写风格。
程序设计
- 解耦
- 模块化
软件 分层架构
- 功能性需求:一个程序为用户做些什么,如文件上传、数据查询
- 非功能性需求:除功能性需求以外的需求,如性能、安全性、容错与恢复、本地化、国际化
非功能性需求构建起来的就是我们的软件架构
软件架构就是软件的基本结构
包括三要素:代码和代码之间的关系和两者各自的属性。
最经典的软件架构就是分层架构——将软件系统进行分层。
主要优点:
- 复用性
- 横向扩展
劣势:
- 开发成本变高,从上到下都要写
- 性能降低
- 代码复杂度增加,层与层直接强耦合,组合功能的调用需要增加层与层之间的调用
功能性需求:分层是为了把较大的复杂问题拆分为多个较小的问题,解耦
架构(非功能性需求):分层能提升代码可扩展性
代码分层架构设计主要为了实现责任分离、解耦、组件复用、标准制定
偶做前堂客
祝你天天开心
在未知的时间
在未知的地点