库、工具包、框架、设计模式、架构、编程范式

库、工具包、框架、设计模式、架构、编程范式

清晰正确的概念,有助于我们认识世界,甚至可以被当做工具用来改造世界。
对于库、工具包、框架、设计模式、架构、编程范式这些概念的正确理解,同样有助我们认识虚拟的软件工程的世界。
对这些概念的相关知识的掌握,同样可以用来建设和改造软件。

下面是我对库、工具包、框架、设计模式、架构、编程范式这些概念的理解。

库和工具包:

库和工具包侧重于代码重用。
从微观上解决具体问题,相当于士兵的武器装备。
比如javascript的jQuery库。

框架:

框架侧重于设计重用。
从宏观上控制软件整体的结构和流程,规范程序员的编码。
比如Java的Spring框架。

设计模式:

设计模式侧重于思想重用,针对某些经常出现的问题而提出的行之有效的设计解决方案。
设计模式有几十种,比如单例模式,工程模式、适配器模式等等。

架构:

架构一般指一个软件系统的最高层次的整体结构和规划。
架构涉及具体的软件产品,不同类型的软件产品,因为业务的不同,架构也不一样, 比如微信的技术架构和微博的技术架构就不一样。
一般一个架构可能包含多个框架,而一个框架可能包含多个设计模式。

编程范式:

编程范式是计算机编程中的基本风格和典范,是代码中所蕴含的世界观和方法论,
每种范式都引导人们使用其特有的倾向和思路去分析和解决问题。
比如命令式编程,函数式编程,面向对象编程等等。