庫好於框架 - brandonsmith
程式碼通常可以採用兩種粗俗的形式:庫或框架。
庫是一組構建塊,它們可以共享一個共同的主題或可以很好地協同工作,但是在很大程度上是獨立的。
框架是包含編寫程式碼的上下文。可以是採取控制反轉,特定於領域的語言的形式,也可以只是一種很自以為是且內部耦合的庫。
兩者之間沒有界限。判斷是否為框架或庫的一種方法是問自己:“我可以將其與其他類似框架結合使用嗎?或者它是否建立了與其他方式可以互斥的方式?”
框架的主要特徵是它們對程式設計師施加了限制。他們沒有提供程式設計師可以做的一系列新事情,而是在程式設計師可以做的事情上建立了界限。為了換取靈活性,他們通常消除樣板,為在其之上構建新庫建立試金石,並允許程式設計師的技能成為更具可移植性的專案。實際上,有時限制本身是可取的!畢竟,型別系統不過是對程式碼施加限制的一種方式。侷限性並不是本質上的壞處。
然而。當您編寫一個期望其他人用來構建真實專案的框架(即,它不僅僅是一個玩具)時,您承擔的責任要比庫更大。
通常,框架必須提前預測其使用者可能需要在其內部進行的各種操作。它必須承擔起相應的責任。它需要提供一個正常完成各種操作的方式,否則,為什麼要使用它?
這也轉化為開發人員的經驗。您的框架是否引入了超出基本語言的基於約定的行為?您最好徹底記錄下來,否則使用者將無可救藥地迷路。您是否引入特定領域的語言?您現在負責構建鏈的一部分,並負責編輯器整合。
現在,如果有一個主要組織來支援該框架,那麼計算就可能成功了。Google可以支援Angular,Pivotal可以支援Spring,Epic可以支援Unreal Engine。在這些情況下,可以採用框架方法,因為存在著資源和意願,可以真正覆蓋所有需要覆蓋的基礎。
因此,我的觀點:框架並不總是壞的,但是與庫相比,對於建立者和使用者而言,框架帶來的風險要大得多。如果您的框架可以是一個庫而又不會損失很多,那就作為庫。如果您不在大型科技公司工作,那麼您可能沒有時間或精力來提供框架所需的全部精力。庫不是萬能的,但它們應該是首選。
相關文章
- 前端框架真的好嗎?前端框架
- 10 個用於 AI 開發的框架和庫AI框架
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- 關於如何形成一個好的資料庫設計資料庫
- 使用Spring框架的好處Spring框架
- Python好庫Python
- 1.2.2. 多租戶對於資料庫整合的好處資料庫
- 關於開發框架的秘密:前後端分離的好處是什麼?框架後端
- golang有沒有好的AI框架?GolangAI框架
- 基於Rust的資料框架庫Polars會取代Pandas嗎?Rust框架
- 框架庫(.NET 指南)框架
- DevExpress框架庫devExpress框架
- 關於MNN工程框架編譯出來的靜態庫和動態庫的使用框架編譯
- 別人搭建的比較好的框架框架
- Android精通之OrmLite資料庫框架,Picasso框架,Okio框架,OKHttp框架AndroidORM資料庫框架HTTP
- 到底是倉庫模式好,還是MVC模式好?模式MVC
- 好程式設計師Java教程分享javaweb框架程式設計師JavaWeb框架
- 框架用的好,下班走的早!值得收藏框架
- 遊戲設計分析:框架設定的好處遊戲設計框架
- golang有沒有好的開源遊戲框架Golang遊戲框架
- 在SSH框架中使用Spring的好處框架Spring
- [Web框架]Spray基於Scala的REST框架SprayWeb框架REST
- 大家好,有對基於Onethink框架設計一個網上商城瞭解的嗎框架
- 關於什麼是框架框架
- 關於Struts框架簡介框架
- 關於Petstore中WAF框架框架
- 關於JBOSS的SEAM框架框架
- 框架雖好,但不要丟了其背後的原理框架
- 大家討論一下比較好Criteria框架。框架
- Vue-Donut——專用於構建Vue的UI元件庫的開發框架VueUI元件框架
- Room ORM 資料庫框架OOMORM資料庫框架
- 好未來:多雲環境下基於 JuiceFS 建設低運維模型倉庫UI運維模型
- 關於將Jdon框架提升為DCI框架的設想框架
- 基於react + redux的Bone框架ReactRedux框架
- datastack - 基於koa的RESTful框架ASTREST框架
- 關於新框架的學習框架
- 關於開發框架的搭建框架
- 基於Cucumber框架的學習框架