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

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

  我也可以開門見山地說,框架就是一個庫(用於import或include之物)——但你需要重新思考什麼是庫。

  舉個例子,用python寫一個網頁服務程序,完全可以不使用任何框架,python自帶的庫(urllib)完全足夠。如果是教程裏的簡單例子,代碼可能僅有十幾行。但是當你想做更大、更復雜的東西,你就會發現代碼開始膨脹,重複的代碼越來越多,你意識到應當把重複的部分單獨出來寫成一個函數,然後用不同的參數調用它。當這些函數也多起來的時候,你意識到應當把這些函數放到一個額外的文件裏。於是你原本的文件由於調用了函數,會變得非常精煉:實現不同的服務程序,互相重複的代碼變得很少。此時你就可以稱那個存放了一堆函數的文件爲一個“框架”了。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章