请简化 Web 开发!
我在我的博客上发表了这篇文章,但我认为 dev.to 上的优秀人士会对这个话题发表一些看法。
当我在 2000 年刚开始搭建网站的时候,还没有像我们今天这样花哨的工具,比如转译器、编译器、打包器、包管理器和依赖管理器。我们前端只有纯粹简单的 HTML、CSS 和 JavaScript,后端则使用 PHP 和一种叫做 ColdFusion 的东西。对了,还有用来上传网站的 FTP。
尽管我们用<table>
CSS 创建布局——是的,我们甚至没有正确使用 CSS——但那个时代很简单。我不是说那个时代很好,只是简单而已。你可以在 Photoshop 中设计一些东西(是的,我们当时也没有正确使用它),用 HTML 标记,用 CSS 为表格添加一些样式,再添加一些 DHTML——也就是我们当时所说的 JavaScript;我知道我们当时很傻——然后把它通过 FTP 上传到网上,就这么简单。
几年过去了,事情发生了变化,现在我们拥有了所有这些工具,让我们能够以令人难以置信的速度构建东西!我们甚至还有版本控制,谁能想到呢。现在,你甚至可以在完成整个规划之前就完成网站或应用程序的一半。你只需要安装 Node……然后是 npm 和 Webpack 或 Gulp。之后,你只需引入你的依赖项,例如 Express、Lodash、Underscore、Coffee-script、Post-css、Bootstrap、Materials 或 jQuery——如果你过去 10 年一直与世隔绝——那么你就可以……开始编写一些实际的 HTML 和 CSS 代码了。
只不过它不是 HTML……也不是 CSS。你编写一些 JavaScript 代码来生成标记和样式,然后使用 googol 的 npm 包将所有这些代码转译、编译并打包成浏览器可以理解并渲染到屏幕上的 HTML、CSS 和 JavaScript。之后,你只需在 Vagrant、Docker 或 AWS 中运行所有这些代码,并使用 Jenkins、Shippable 或 AWS 将其部署到服务器上。
如果你还没跳到评论区来骂我,我可不是说所有这些工具都不好。唉,我每天都在使用它们中的大多数,这就是生活。不过,有些确实不好——:cough: Bootstrap :cough:
我想说的是,即使我们并不需要这些工具,我们也会开始使用它们。我们使用它们只是因为它们很酷、很新、很炫酷之类的,这很糟糕。我们把所有东西都毫不留情地塞进 node_modules 里,难怪它是已知宇宙中最重的东西。
当你从零开始下一个项目时,实际上是从零开始,什么都没有。好好想想需求。你真的需要那个花哨的包吗?还是你可以用原生 JS 实现?然后,当你第一次需要依赖项时再添加,而不是马上添加。
现在,我并不是建议你抛弃一切,转而使用原生版本。我理解其中一些库、框架和插件带来的价值。我也知道我们有很多遗留代码、技术债务,以及其他使用这些软件包的原因。我只是希望你在向 package.json 添加新内容之前三思。
考虑逐步增强。你能用基本工具构建核心功能,然后用其他工具来增强它吗?当你构建一个包含两个不同视图的简单杂志网站,并且只使用 flexbox 或 css-grid 就能构建它时,你真的需要整个 Bootstrap 吗?最后,想想你在构建什么。最简单或最快的解决方案并不总是最好的。
这是我时不时会想到的事情,只是需要找个地方说出来。抱歉让你觉得无聊,感谢阅读。
鏂囩珷鏉ユ簮锛�https://dev.to/iamzoka/simplify-web-development-please-1bfk