2020-02-19谈谈架构

随着接手项目复杂程度的提升,我开始意识到架构的重要性。
在开发中,一个好的软件架构可以起到事半功倍的效果,而且便于移植和后期维护。

目的

  • 应用的代码逻辑清晰,且避免重复的造轮子。

  • 如果没有好的架构,移植将会是一件很痛苦的事情,因此一个好的架构设计,方便软件的移植。

  • 最大限度的复用。

  • 高耦合低内聚。

思路

其实道理大家都懂,经常挂在嘴边:模块化设计、分层设计。
所谓模块化就是,将收集到的需求,进行归类,总结和分析,将这些需求概括为一个个单独的功能,每一个功能,做成一个单独的功能模块。
分层设计则稍微显得复杂一些,主要有体现在两方面:

  • 功能模块对外调用的模块封装成一个个API,将底层驱动做个API以供功能模块调用。(各个功能模块可以独立编译(如通信模块纯ANSI C,可在任意平台复用),或者调用驱动层接口(日志库模块调用了驱动读写Flash),总而言之,言而总之,封装出各个功能独立的可复用的功能模块。)
  • API分为驱动层API和应用层API,而不是所有程序都调用驱动层API。(整个应用中都调用驱动层API会导致应用中驱动调用随处可见,无法移植和最大限度的复用)

总体分 硬件驱动层-->功能模块层-->应用层接口-->业务逻辑层-->应用层


image.png

说明:

1.层与层之间不能跨层调用。

2.模块与模块各自独立,无依赖关系。

3.模块提供统一的接口供上层调用,模块的内外接口分明。

文章内容参考:https://blog.csdn.net/hardessgod/article/details/82254243

你可能感兴趣的:(2020-02-19谈谈架构)