網路與介面

框架(framework)

/ FRAYM-wurk /

框架(framework)是搭一個應用程式用的現成「鷹架」——一套已經把常見部件擺好的結構,讓你不必每次都從一張白紙開始。像 React、Django、Rails 這樣的工具,會遞給你一個合理的佈局、一堆「無聊但必要」問題的現成解法,外加一個個清楚的位置,讓你把真正屬於你這個應用程式的獨特部分插進去。

有一點最能定義框架:是它來呼叫你的程式碼,而不是反過來。用一個普通的函式庫(library)時,主動權在你手上——需要哪個工具,你就去拿哪個。用框架時,則是框架掌著大局,在恰當的時機來呼叫你的函式(「剛來了一個請求——喏,你來處理」)。這有時叫「控制反轉」,也正是這樁交易的全部:你交出一部分對結構的自由,換來的是省掉一大堆繁瑣的底層雜活。

回報是「快」和「共同的地基」。路由、表單、頁面渲染你都不必重新發明——框架早替你做好了。又因為成千上萬人用的是同一個框架,你能從一口很深的井裡打水:教學、修補、現成的元件。代價是,你得照框架的方式來做事;學一個框架,有一半是在學它的「主張」。

// You write a handler; the framework calls it for you
app.get("/hello", function (req, res) {
  res.send("Hi!");
});
// You never call this — the framework does, when a request arrives.

你把空填上,由框架決定什麼時候來執行它們。

函式庫是你去呼叫它,框架是它來呼叫你。這就是兩者實打實的區別。

又稱
web frameworkReactDjangoRails