我们的工作是干什么的?程序是干什么的?
答案是解决问题。
今天突然被唤醒了,像是武学菜鸟的顿悟。我们所讨厌某些框架,讨厌做某些事情,也许是因为重复。
细细想来,让重复的事情变得简单,不是很有意思吗。
今天看了下 vue-cli 中 build 的一段代码(来源于 基于webpack3 的 vue-cli)
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
// loader = stylus/less/sass
// loaderOptions = 我们自己做的一些其他配置
// 这里的最底层都用了 css-loader,相当于我们自己不用重复写这些东西
//
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
它呢,可以让我们简单地配置 stylus-loader/less-loader,我想,这样一段代码,简化了 webpack 的配置,也许,它就是 parcel 和 webpack4 的一些思想,它就是简化的思想。
重复的事情让机器来做,回想起在万科的科技部门实习的时候,部门 Leader 说过的一句话。
Gulp的作用主要是打包的自动化,重复的事情,压缩代码,用机器来做,提升了生产力。
又想起了看 Express 中的官网的东西,最近复习的时候反而回忆起以前做过的一些蠢事
app.route('/book')
.get(function (req, res) {
res.send('Get a random book')
})
.post(function (req, res) {
res.send('Add a book')
})
.put(function (req, res) {
res.send('Update the book')
})
上面是 Express 官网示范的一些 API 接口,而我记得我曾经写的时候却将之一个个拆分,这其中多余的部分完全可以用这种结构写的。
工作效率,代码的优雅,也许都靠这一些些简化。
为什么你不喜欢 浏览器兼容,希望能用上 ES6,不喜欢过多重复的结构,进行毫无进步的工作,也许正是因为如此吧。