
下面就让我们用朴实无华的JavaScript代码写一个Hello World app。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Hello World</title>
</head>
<body>
<p id="container"></p>
<script>
document.body.onload = function(){
var container = document.getElementById("container");
container.innerHTML = '<h1>"Hello, world!"</h1>';
}
</script>
</body>
</html>这就成了。 18行代码。你可以复制/粘贴到index.html文件中,双击并把它加载到你的浏览器中。完成。
如果此时你觉得,“等等,React能做的事情比你刚刚写的这个小玩意更多,并且你不可能用那种方法写一个JavaScript app!”你是(大多数时候)对的,但你还需要走一小步才能理解为什么一切都疯了。
下面是我承诺过的图片。

绝大多数你将工作的JavaScript web应用程序,会落在钟形曲线中部的某个位置。并且在中部,如果你从一个完整的React堆栈开始,那么从一开始你就大量过度设计了你的应用程序。
这就是为什么一切都变得疯狂。其中的大多数工具你觉得是你解决问题所必须具备的,但是你一直没有碰到这样的问题,而且以后你也不会碰到。
同一张图片:

因为在默认情况下,每个人都过度设计他们的app,却意识到这一点,使得Javascript的开发状态变得过于繁冗。
你应该如何启动JavaScript应用程序呢?是否应该使用一些类似React或Angular的工具?是否应该使用软件包管理器?如果你不这样做,你应该做什么?测试有必要吗?是否应该用Javascript生成标记?所有这些都是你应该在启动默认情况下的庞大的技术堆栈前,好好问问自己的问题。
当你启动一个JavaScript应用程序时,关键是要在钟形曲线上挑一个点,这个点刚好位于你认为这个app最终可能会到达的复杂程度的前面。
我不会撒谎,验证这一切需要经验。但是这里有一个相当大的甜蜜点可以让你启动大多数的JavaScript应用程序:jQuery加上客户端模板,以及用于连接和缩减产品文件超级简单的构建工具(假如你的后端架构还没有这样做的话)。
如果你知道如何正确地构建Javascript app,那么你就会开始懂得如何、何时以及为什么使用框架或npm/requir/webPack或ES6,什么时候编写测试,什么时候应该费心让你的测试本地运行vs.运行在浏览器中,等等,所有这些问题都会涌现出来。
有兴趣用你的JavaScript开发知识填补那些空白?想要避免不堪重负的感觉以及避免在这个过程中大量过度设计你的JavaScript应用程序?那是我之后将要专注讨论的内容,敬请期待!
