网络与接口
框架(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.你把空填上,由框架决定什么时候来运行它们。
库是你去调用它,框架是它来调用你。这就是两者实打实的区别。
又称
另见