日常总会看到说某某架构、某某框架,可是对于其意了解总有些迷糊,以致于有时候会出笑话,看了几位老哥的博客,有了一些理解,在此记录,加深一下。php
参考连接:python
http://www.javashuo.com/article/p-vnfpjuwz-gk.html程序员
https://blog.csdn.net/CillyB/article/details/79464339spring
架构:django
软件架构,也成称为软件体系结构,简单地说就是一种设计方案,将用户的不一样需求抽象成组件,且可以描述组件之间的通讯和调用。软件架构会分析工程中的问题,针对问题设计解决方案,针对解决方案分析应具备的功能,针对功能设计软件系统的层次和模块及层次模块之间的逻辑交互关系,肯定各个功能如何由这些逻辑实现。开发人员能够根据软件架构分析出来的层次和架构进行软件编写。设计模式
另外百度百科以下:微信
是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的链接则明确和相对细致地描述组件之间的通信。在实现阶段,这些抽象组件被细化为实际的组件,好比具体某个类或者对象。架构
理解:mvc
架构更趋于方案,是设计,并非具体的技术。software architecture框架
另外关于MVC究竟是什么的问题:
https://blog.csdn.net/whalefrat/article/details/78442175
https://www.zhihu.com/question/31079945
https://blog.csdn.net/CillyB/article/details/79464339
关于mvc有人说是设计模式,有人说是框架模式,有人说是架构模式。
我的以为均可,只不过若是硬说是设计模块感受有些牵强,框架模式和架构模式均可,关键字在模式二字。
既然是模式,那么是思想、是设计、是规范而不在于代码层面。
框架:
软件框架,是软件开发过程当中提取软件的共性部分造成的体系结构。框架不是现成可用的应用系统,而是一个半成品,是一个提供了诸多服务,供开发人员进行二次开发,实现具体功能的程序实体。
理解:
更趋于技术,是半成品,须要进行二次开放。好比spring 框架- framework
关于框架与设计模式:
下面这一段以为挺直观,能够看看。
三、模式:
设计模式强调的是一个设计问题的解决方法,是一套被反复使用、多数人知晓的、通过分类编目的、代码设计经验的总结。
框架与设计模式的关系:设计模式研究的是对单一问题的设计思路和解决方法,一个模式可应用于不一样的框架和被不一样的程序语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体。设计模式的思想能够在框架设计中进行应用。
架构与设计模式的关系:设计模式研究的是对单一问题的设计思路和解决方法,范畴比较小;而架构是高层次的针对体系结构的一种设计思路,范畴比较大。一个架构中可能会出现多个设计模式的思想。
四、模块:
根据不一样的标准,一般会说程序模块或功能模块,程序模块指的是一段可以实现某个目标的成员代码段,功能模块则用来讲明一个功能所包含的系统行为。定义模块的原则是:高内聚和低耦合。
五、组件:
组件是封装了一个或多个程序模块的实体。组件强调的是封装,利用接口进行交互。插件是组件的一个子类,就是将组件中具备某些特色的组件归为插件。
理解:组件是封装,是可重用的代码。
六、插件:
插件属于组件,插件是组件的一个子类,就是将组件中具备某些特色的组件归为插件。插件是一种电脑程序,经过和应用程序的互动,来为应用程序增长一些特定的功能,仅靠插件是没法正常运行的,须要依赖于应用程序才能发挥自身功能。插件和应用程序之间经过接口进行交互。
理解:即插即用,动态。关于插件有的说是可单独运行的,有的说必须依赖其余应用。我的趋于后者,若是是可单独运行的,我感受理解为子系统更好,打个比方:好比微信的朋友圈若是能单独运行,感受理解为子系统或者子应用更好理解。