必威体育下载克里斯蒂安·海尔曼

生锈——我们需要新的最佳实践来适应不同的发展世界。

好消息是:我们,那些推广开放网络标准的人,赢了!今天的网络使用越来越少的封闭技术和插件HTML,CSS和JavaScript是用来创建大量优秀Web体验的工具。

例如,几乎没有人使用flash作为简单的图片库,越来越多的公司向我们以及世界宣传自己“支持Web标准”和“使用开放技术”。

当然,有很多人在说假话,正如布鲁斯·劳森所说,我们得到了HTML5,空洞的演示和忘记基础知识.布鲁斯指出很多HTML5演示没有任何语义标记,甚至不要创建工作链接,也不要有很多我们在90年代和千年之初在Flash隧道中看到的特性。

在这场争论的另一方面,有几个人一直告诉我,他们正在写博客文章“为什么语义标记和javascript回退不再重要”。

我认为有一个快乐的中间地带有待发现,这主要意味着我们需要了解以下内容:作为一个Web开发人员,您所做的工作在很大程度上取决于我们的工作所使用的媒介.

多年来,我们如何使用互联网已经发生了变化,如果我们不想被视为进步的敌人,我们需要改变我们的最佳实践,并在应用它们时给予它们更多的灵活性。

就像一个在每一个浏览器中查找和工作相同的网站一样,意味着要迎合最低的共同点,而不是巧妙地使用我们的平台,“以某种方式使用的一堆技术”限制了我们接触那些刚开始在网络上工作并只想完成一些工作的人。

我们的最佳实践真的植根于现实吗?

改变最佳实践?这怎么可能?好,首先,我认为我们所宣扬的很多是货物崇拜而不是基于真实的事情。我们告诉人们的许多“在网络上工作是绝对必要的”的事情是不需要的,而且许多关于语义标记有用性的激动人心的解释实际上并不是基于事实的。作为最佳实践,我们所做的很多工作都是为我们而做的,不适用于最终用户或我们使用的技术。但以后会更多。

回首往事(不生气)

我们是如何到达现在的位置的,新建的Showcase网站违反了最简单的概念,例如为图像提供可选文本或使用结构化的HTML而不是几个空的沙发?

为了了解我们是如何陷入这必威体育下载种混乱的,了解我们过去所做的事情是很重要的。许多演讲、书籍和帖子描绘了一幅勇敢的网络标准新世界的图景,厚颜无耻地在封闭技术的丛林中开辟了一条通向光明未来的道路。这与实际情况相差甚远。如果我们诚实,我们所做的很多事情都是为了让事情变得有意义,然后试图找到一种方法让我们所做的事情可持续发展。最后一步是语义。当我听到赞扬波什—简单的旧语义HTML就像我们过去建造东西的方式一样,随着时间的推移,我们忘记了这项技能,我不得不窃笑。我们没有这样做——至少在生产中没有。

卑微的开端-HTMLCGI

起初没有插件,也没有javascript。我们有HTML图像和人们已经犯下的最大错误是把文本显示为没有任何可选文本的图像。这意味着只有文本的浏览器(仍在使用中)和那些连接速度较慢的浏览器存在短端。交互被定义为点击链接和提交表单。

我们已经开始尝试使用帧来加快速度。例如,我们保留了一个“粘性导航”,只加载没有任何菜单的内容页。这是为了提高性能而打破诸如书签等基本浏览器功能的开始。我记得我曾用cookies存储页面状态,并在随后的访问中相应地重新编写框架集。这只为当前用户修复了它——再也不可能向其他用户发送链接了。但是页面加载得更快。

布局实现于HTML-用水平线,之前元素,很多和桌子。最重要的是让它在所有浏览器中都看起来正确,而不是HTML真的。

然而,我们告诉人们的是,这是一个更简单的时代,HTML它的语义价值真的很重要。我记得不一样。

DHTML天(1)

当Javascript得到支持时,我们就开始正常工作了。整个菜单都是用document.write()。我们使用了弹出窗口,其中动态写入了框架(例如图像库):

我们甚至开始检查使用的是哪种浏览器,在更明智的情况下,提供了不同的体验。在考虑较少的解决方案中,我们只是告诉人们“这个网站需要Internet Explorer 4才能工作”。

我们还开始用JavaScript隐藏和显示内容。有时候我们用JS写出来的,并没有给文本浏览器(或者那些通过代理默认关闭JS的公司)提供任何内容或太多内容,而不太关心结构。

什么时候?SEO开始重要了,我们也用了无脚本标签提供回退文本和链接——大多数时候都是关键词而不是意义。

DHTML天(2)

什么时候?CSS得到支持的东西真的起飞了——我们不仅可以创造动态的东西,展示和隐藏它们,而且还可以真正地去城镇移动,旋转的,设置动画并堆叠它们。我们做到了。DHTML图书馆网站上有数百个效果菜单、图像滑块和旋转按钮等:

大多数行为都是用javascript完成的,但我们也开始使用CSS悬停伪选择器用于构建“仅限于CSS的多级下拉菜单”以及其他没有鼠标就无法使用的东西。

当时正是DHTML几乎所有脚本的第一行都在检查IE和文件.all或Netscape文档.图层.计算机的速度也迫使我们经历各种危险的黑客和诡计(危险的是,他们使维护非常困难,因为黑客往往没有得到记录),使事情看起来很顺利。

福音书(根据塞尔德曼)

塞尔德曼之书这就是我们要传达的信息:让我们停止尝试为浏览器修复问题,跳过障碍,让我们的产品在一个不值得信任的环境中工作,转而依赖标准。此消息的主要工具是分离技术:

HTML是结构,CSS是为了视觉上的外观和感觉,而javascript是为了行为。如果我们把这些东西分开,然后我们有了一个好的易于维护的Web产品,为每个人工作,干净的扩展和工作。

这就是我们的想法,我们创造了一个术语不引人注目的javascript(我记得写这门课很有趣)然后DOM脚本(使用DOM黄蜂的脚本工作队经常开车杰里米·基思S和我的书举例说明如何使用它)。

今天的国家

如今,我们似乎已经回到了混合和匹配发展关注点和层次的世界:

强大的力量带来了巨大的责任感,而现在我感觉到后者在我们的雷达上是非常低的,因为和我们拥有的酷的新东西一起玩太有趣了。我们的移动电话有非常快的处理器,我们有能够进行3D动画和硬件加速的超音速javascript引擎。CSS动画。这使得人们很难对语义值感到兴奋。

在这个新的Web技术世界中,几乎所有栈中的技术都被淘汰了,分离变得更加困难。什么是好帆布没有任何脚本?我们应该在里面做动画吗CSS还是用JavaScript?动画是行为还是表现?仅用于视觉效果的元素是否应位于HTML或者用javascript生成,或者用:after和:before生成CSS

这些天我们在客户身上做的比过去多得多。是时候我们在最佳实践中给予客户更多的信任了。对,旧的浏览器不太可能很快就消失(这有时是有意的,例如微软不向Windows提供IE升级XP-很快Vista——用户

关注点与Web开发人员的形象

在其意义和方法上,塞尔德曼首先解释的分离仍然是一个令人难以置信的好主意——不同技术分离背后的思想是伟大的。一些公司在培训中非常认同这一概念,例如雅虎甚至进一步将其称为“可理解”。关注点分离“而不是发展的层次。

这种微妙的差异也部分地说明了为什么这个伟大的想法不总是在现实产品中实现:你需要了解不同的技术是如何工作的,以及如何正确地编写它们。本质上,你想让一个拥有不同专业主题的团队一起构建一个令人兴奋的产品。

事实上,尽管Web开发仍然被视为任何一个经过培训的开发人员都可以做的事情,或者当您雇佣一个专门的Web开发团队时,他们被认为是全面的专家,不允许专注于语义,CSS或javascript。

这就是为什么最终的Web产品没有清晰的分离的主要原因。在大多数情况下,开发人员意识到他们本可以做得更好,但他们不得不赶时间或者使用他们不太关心的技术。如果你必须调试和优化CSS由Java开发人员编写,你就会明白我的意思。

Web标准展示和消耗

每当我们称赞一个新产品以正确的方式使用网络标准时,它就不是一个大产品。它几乎不是企业框架或细胞质雄性不育.而且,在很多情况下,它的构建实际上是为了强调使用Web标准,而不是简化构建Web产品的过程。

以最有可能成为突破CSS在社区看来:CSS禅园.花园很简单XHTML文件,语义上正确,但已经有很多id和类作为要应用的句柄CSS规则到。它的工作是通过分离外观和感觉来显示你可以轻松地重新设计一个网站,使它看起来(稍后对用户作出反应)完全不同于一个案例到另一个案例。

这一切进展得非常顺利,直到我们对图像替换的可能性感到兴奋。后来提交到花园的材料中有大量的背景图片文本,这很讽刺,因为最初的论点是所有的内容都应该在HTML.

在现实世界中,然而,我们从来没有固定过HTML要玩的文档–我们细胞质雄性不育为我们创建网页,一切都在不断变化。你不能控制菜单元素的数量,你不能控制文本的数量,您将无法“简单地将类添加到元素”以赋予它一些额外的功能。现在是时候让我们明白,我们可以通过展示网站和演示来激发灵感了,但我们确实不帮助人们开发网站,也不反对“每个人都可以做前端”的概念。这不是硬代码”。

当我们乘坐喷气式滑雪板时,没有人想知道海洋的深度和组成。

现在,“最佳实践Web开发”讨论,演示和教程都是非常自我参照的。我们同同同一个人谈论同一主题,并声称人们在使用语义的同时,网络正与围墙花园开发和本土移动开发作斗争,以在世界范围内的一小部分市场上生存。

人们高兴地说他们“只为WebKit构建”,因为这是“最好、最快、最稳定的浏览器”。当你没有合适的浏览器和操作系统时,人们可以看到一个展示网站完全失败。

我们开始退到各自的专业领域,并在专业会议上发言。在设计会议上教授的很多东西与在性能会议上听到的完全相反。我们在抽象层之上构建抽象层,以解决浏览器问题,并在会议上发布数十个“奇迹”库和脚本,而不考虑是否有人会使用它们。

速度仍然是我们讨论的主要问题。如何从脚本加载程序中去掉20毫秒?如何使动画由30帧改为50帧?

开发人员新市场的最佳实践

我最喜欢的例子是参加Google IO可访问性谈话。大约一个小时我们学会了如何把一个元素变成一个按钮并保持它的可访问性。.没有人提到我们为什么不使用纽扣作业的元素。在那次谈话中有很多很好的信息,但是当我们模拟浏览器提供给我们的JS和CSS.

我们现在拥有的新一代开发人员对技术非常兴奋。我们,“最佳实践”的教育者和解释者都被浏览器多年来的失望所玷污。jquery和其他环境传播“写更少,“实现更多”是成功的主要目标。我们告诉人们的大部分是“加上这个和那个来赋予事物意义”,当他们问我们“为什么?”我们必须想出谎言,例如,现在没有一个浏览器关心大纲算法。

使用Web标准的唯一真正好处

使用Web标准首先意味着一件事:提供一个干净的专业工作。您没有为浏览器编写干净的标记,你不会为最终用户写的。你为从你手中接过这份工作的人写的。就像你应该在简历中使用好的语法,而不是用蜡笔写它一样,当你留下一堆“有用”的东西时,你不能指望维护代码的人会尊重你。

这就是我们需要努力让新开发人员理解的。这是一个以提供一份干净的工作为荣的问题。不是使用最新的技术和追求光泽。对于我们自己,我们必须理解,唯一真正关心我们所钟爱的标准和关注点分离的人是我们——正如我们所认为的,可维护性,而不是快速部署和持续的代码迭代。网络不是代码——网络是一种媒介,我们使用适合现有目的的技术组合,为最终用户提供出色的体验。