【新手向】什麼是「框架」?

  若是你開始接觸編程,確定會據說「框架」這個詞,「Django」、「Spring」、「TensorFlow」、「Flask」這些名字也隨處可見。我一度被這些概念困擾,畢竟它們不像clojure,kotlin同樣是名字奇怪的編程語言,而是「基於某種語言」;它們的介紹裏會開門見山地說「這是一個框架」,然而你此時並不知道什麼是框架。python

  我也能夠開門見山地說,框架就是一個庫(用於import或include之物)——但你須要從新思考什麼是庫。編程

  舉個例子,用python寫一個網頁服務程序,徹底能夠不使用任何框架,python自帶的庫(urllib)徹底足夠。若是是教程裏的簡單例子,代碼可能僅有十幾行。可是當你想作更大、更復雜的東西,你就會發現代碼開始膨脹,重複的代碼愈來愈多,你意識到應當把重複的部分單獨出來寫成一個函數,而後用不一樣的參數調用它。當這些函數也多起來的時候,你意識到應當把這些函數放到一個額外的文件裏。因而你本來的文件因爲調用了函數,會變得很是精煉:實現不一樣的服務程序,互相重複的代碼變得不多。此時你就能夠稱那個存放了一堆函數的文件爲一個「框架」了。框架

  在完成其餘任務的時候,這一過程是一致的:把重複的工做打包成一些函數,裝進一個單獨的地方。可是之因此有「框架」這個名字,是由於相比以前,所用的代碼在總體上換了邏輯,寫代碼的重心發生了改變。你也不能用先前的邏輯寫代碼了,由於可能一堆if else判斷被字典代替,不一樣語句的參數變成了同一個函數的參數……你得從新學習這些風格,這彷彿是「語言中的語言」——語言是對使用機器的抽象,而框架是對使用語言的抽象,不過每次抽象都是要花費額外的精力的。編程語言

相關文章
相關標籤/搜索