像很多我这个年龄(快30岁)的人一样,我通过查看我认为看起来不错的网站源代码来学习建立网站。正是通过这种方式,我发现您可以使用表格来显示您想要的页面,并使用框架集在屏幕上保留页面的元素,同时滚动其他部分。我发现这种通过发现来学习的形式在我的脑海中根深蒂固,比听从别人的教导要好得多。
值得庆幸的是,这些老式的、不可访问的、过时的HTML技术早已不复存在,我们构建的网站(或Web应用程序)的复杂性和质量大幅提高。不过,剩下的就是查看您正在查看的页面的源代码的能力。
我们已经看到了数量迅速增长的构建工具,新的服务器端语言(如Rust和Go)的激增,以及从客户端到服务器的Javascript的侵占,从而实现了同构的应用程序。这一切都非常令人兴奋,我想我们都会同意,在建立互联网的方式上有更多的选择是越好的。
但是,我们是不是走得太远了,忽视了是什么让网络变得伟大呢?
这些更新的功能和更高的用户期望,再加上超强的长青浏览器,可以让你负责较低级别的任务。管理浏览器状态就是一个很好的例子。以前这一切都是为你做的。你点击了一个链接,你进入了另一个页面,你点击了后退按钮,然后你回到了前一页。现在,使用Push State(或者您选择的框架将其抽象为什么),您可以很容易地搞得一团糟,让您的站点笨拙而不直观地工作起来,就像2000年的DVD菜单一样。人们经常犯这样的错误。
我不是在主张回到一个没有这些构建得非常好的现代框架的世界。它们与改进的开发人员工作流程的构建工具一起,可以更快地构建圆滑而有用的web应用程序。没有必要打碎磨坊里的框架。
我的观点是,在像你应该做的那样照顾你的“普通”用户的同时,让公开可见的技术(HTML、CSS、一些Javascript)尽可能地为开发者所理解也是很有用的-他们只是使用你的东西的另一类人。
在最坏的情况下,当被滥用时,新技术也会让网站创建者不必考虑影响用户的其他因素。将另一个花哨的JavaScript库添加到依赖项中非常容易,但是很难看到对用户的影响。在第一世界国家,没有使用您的未计量的超高速办公光纤的用户,可以使用数量惊人的RAM在MacBook Pro上查看您的工作。
网络是一个独特的开放平台,建立在商定的标准之上-它不受任何一家公司的控制。Web上的内容是可访问、可寻址和可预测的,这可以说是它如此成功的几个原因之一。
尽管从本质上讲,我们不成熟的行业可以在全世界范围内访问,但吸引不同类型的人在该行业工作仍然存在重大问题。不必要地混淆我们的工作成果,提高了新手的进入门槛,忽视了网络之美。
这也是为了好玩。将web视为“仅仅是另一个编译目标”会让参与开发的开发人员更难创建用户样式表、浏览器扩展或数据抓取工具来扩展您已构建的内容。他们做这件事的方式和工具可能是你无法预料的--这是一种寻找新业务、雇佣员工或只是为了好玩的绝妙方式。