软件设计

软件复杂度一般有三个来源

  • 代码库规模,与开发工具、编程语言有关,代码行数与复杂度不成正相关。
  • 技术复杂度,指不同的编程语言、编译器、服务器架构、操作系统等能够被开发人员理解的难易程度。
  • 实现复杂度,不同的编程人员对需求的理解不同,在编程时会有截然不同的编写风格。

程序设计

  • 解耦
  • 模块化

软件 分层架构

  • 功能性需求:一个程序为用户做些什么,如文件上传、数据查询
  • 非功能性需求:除功能性需求以外的需求,如性能、安全性、容错与恢复、本地化、国际化

非功能性需求构建起来的就是我们的软件架构
软件架构就是软件的基本结构
包括三要素:代码和代码之间的关系和两者各自的属性。

最经典的软件架构就是分层架构——将软件系统进行分层。
主要优点:

  • 复用性
  • 横向扩展

劣势:

  • 开发成本变高,从上到下都要写
  • 性能降低
  • 代码复杂度增加,层与层直接强耦合,组合功能的调用需要增加层与层之间的调用

功能性需求:分层是为了把较大的复杂问题拆分为多个较小的问题,解耦
架构(非功能性需求):分层能提升代码可扩展性

代码分层架构设计主要为了实现责任分离、解耦、组件复用、标准制定

posted @   fchhk  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示