【新手向】什么是“框架”?

  若是你开始接触编程,确定会据说“框架”这个词,“Django”、“Spring”、“TensorFlow”、“Flask”这些名字也随处可见。我一度被这些概念困扰,毕竟它们不像clojure,kotlin同样是名字奇怪的编程语言,而是“基于某种语言”;它们的介绍里会开门见山地说“这是一个框架”,然而你此时并不知道什么是框架。python

  我也能够开门见山地说,框架就是一个库(用于import或include之物)——但你须要从新思考什么是库。编程

  举个例子,用python写一个网页服务程序,彻底能够不使用任何框架,python自带的库(urllib)彻底足够。若是是教程里的简单例子,代码可能仅有十几行。可是当你想作更大、更复杂的东西,你就会发现代码开始膨胀,重复的代码愈来愈多,你意识到应当把重复的部分单独出来写成一个函数,而后用不一样的参数调用它。当这些函数也多起来的时候,你意识到应当把这些函数放到一个额外的文件里。因而你本来的文件因为调用了函数,会变得很是精炼:实现不一样的服务程序,互相重复的代码变得不多。此时你就能够称那个存放了一堆函数的文件为一个“框架”了。框架

  在完成其余任务的时候,这一过程是一致的:把重复的工做打包成一些函数,装进一个单独的地方。可是之因此有“框架”这个名字,是由于相比以前,所用的代码在总体上换了逻辑,写代码的重心发生了改变。你也不能用先前的逻辑写代码了,由于可能一堆if else判断被字典代替,不一样语句的参数变成了同一个函数的参数……你得从新学习这些风格,这仿佛是“语言中的语言”——语言是对使用机器的抽象,而框架是对使用语言的抽象,不过每次抽象都是要花费额外的精力的。编程语言

相关文章
相关标签/搜索