必威体育下载基督教Heilmann

“常规”标签的文章

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

周一,8月15日2011

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

例如,几乎没有人使用Flash作为一个简单的图像库,越来越多的公司向我们和世界宣传自己是“支持web标准”和“使用开放技术”。

当然,有很多口头上的承诺,正如布鲁斯·劳森所说,我们得到了HTML5,空洞的演示和忘记基本知识。布鲁斯指出了很多HTML5演示没有任何语义标记,甚至不要创建工作链接,要有我们在90年代和本世纪初在Flash隧道中看到的许多特性。

另一方面,一些人不断告诉我,他们正在撰写关于“为什么语义标记和JavaScript回退不再重要”的博文。

我认为我们可以找到一个快乐的中间地带,这主要意味着我们需要理解以下几点:作为一名web开发人员,您的工作在很大程度上依赖于我们的工作所使用的媒介

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

就像一个网站在所有浏览器和工作同样意味着迎合最小公分母潇洒地和不使用我们的平台有“一堆技术用于某种时尚”限制我们到达的人开始在网上,只是想完成一些工作。

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

改变的最佳实践?这怎么可能?好吧,首先,我认为我们宣扬的很多东西船货崇拜而不是基于真实发生的事情。我们告诉人们“在web上工作是绝对必要的”的许多事情是不需要的,而且许多关于语义标记的有用性的令人兴奋的解释实际上并不是基于事实。我们所做的很多最佳实践都是为了我们自己,不是为了终端用户,也不是为了我们使用的技术。但稍后会有更多。

回头看(不是生气)

我们是如何走到今天这一步的,新建的展示站点违反了最简单的概念,比如为图像提供替代文本或使用结构化HTML而不是几个空的div ?

为了了解我们是如何陷入这必威体育下载种混乱的,了解我们过去做了什么是很重要的。大量的演讲、书籍和帖子描绘了一幅web标准的美丽新世界的画面,它厚颜无耻地在封闭技术的丛林中开辟出一条通向光明未来的道路。事实远非如此。如果我们诚实,我们所做的很多事情都是让事情正常运转,然后试图找到一种方法让我们所做的事情可持续发展。最后一步给我们带来了语义学。当我听到赞扬豪华-普通旧语义HTML就像我们过去建造东西的方式,随着时间的推移,忘记了那个技能,我不得不偷笑。我们没有做过这类事情——至少在生产中没有。

卑微,HTMLCGI

在很久以前,HTML用于表示,行为和结构

一开始没有插件,也没有JavaScript。我们有HTML而图像,人们已经犯的最大的错误是将文本显示为没有任何替代文本的图像。这意味着纯文本浏览器(目前仍在使用)和那些连接速度较慢的浏览器的优势并不明显。交互定义为单击链接并提交表单。

我们已经开始尝试用帧来加速。例如,我们保持“粘性导航”,只加载内容页,没有任何菜单。这是为了性能而破坏浏览器基本功能(如书签)的开始。我记得我曾使用cookie来存储页面的状态,并在随后的访问中相应地重写框架集。这只解决了当前用户的问题——向其他用户发送链接已经不可能了。但页面加载速度要快得多。

布局是在HTML-用水平线,精准医疗元素,很多桌子。最重要的是要让它在所有浏览器中看起来都是正确的,而不是什么HTML真的是。

相反,我们告诉人们的是,在那些更简单的时代里HTML它的语义价值很重要。我记得不一样。

DHTML天(1)

当JavaScript得到支持时,我们开始变得疯狂起来。整个菜单都写出来了document . write ()我们使用了弹出式窗口,其中的框架是动态编写的(例如图像库):

JavaScript允许更丰富的交互和更多的错误

我们甚至开始检查正在使用的浏览器,并在更合理的情况下呈现不同的体验。在考虑较少的解决方案中,我们只是告诉人们“这个站点需要Internet Explorer 4才能工作”。

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

搜索引擎优化开始要紧的我们也用了NOSCRIPT标签来提供回退文本和链接——大多数时候都是关键字而不是意义。

DHTML天(2)

CSS得到支持的东西真的起飞了-我们不仅可以创建动态的东西,并显示和隐藏他们但真的去城镇移动,旋转,动画和堆叠它们。我们做到了。DHTML图书馆网站有数百个效果菜单、图像滑块、旋转按钮等等:

JavaScript和CSS给了我们机会去构建许多闪亮的东西

大多数行为都是用JavaScript完成的,但我们也开始使用JavaScriptCSS:徘徊伪选择器,用于构建“仅CSS多级下拉菜单”和其他没有鼠标就不能使用的东西。

这是……的最佳时期DHTML几乎所有脚本的第一行都是检查IE和document.all或Netscapedocument.layers。计算机的速度也迫使我们经历各种各样的危险的黑客和技巧(危险的是,他们使维护非常困难,因为黑客往往不被记录下来),以使事情看起来顺利。

福音(根据Zeldman)

他的书结果是这样的:让我们停止试图修复浏览器的问题,而是让我们的产品在一个不可信的环境中工作,而是依赖于标准。这一信息的主要工具是技术的分离:

为了给web开发世界带来健康我们声称HTML是一种结构,CSS是表示,JS是行为

HTML的结构,CSS是为了视觉和感觉,JavaScript是为了行为。如果我们把这些东西分开,然后我们有一个很好的网络产品,很容易维护,对每个人都有效,并且易于扩展和合作。

这就是我们的想法,我们进一步创造了这个术语低调的JavaScript(我记得写这门课的时候很开心)DOM脚本(DOM编写任务组的黄蜂驾驶很多和杰里米·基斯的年代,我的书举例说明如何使用)。

今天的状态

如今,我们似乎又回到了混合和匹配各种关切和发展层次的世界:

今天,看起来,所有的分离层混合并再次匹配

权力越大,责任越大,现在我感觉后者对我们的雷达来说是非常低的,因为它是太多的乐趣,玩我们拥有的很酷的新东西。我们的手机有非常快的处理器,我们有超音速JavaScript引擎,可以进行3D动画和硬件加速CSS动画。这使得很难对语义值感到兴奋。

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

我们现在为客户做的事情比过去多得多。是时候在我们的最佳实践中给予客户更多的信任了。是的,旧的浏览器不太可能在短期内消失(这有时是故意的,例如微软)不提供Windows的IE升级XP-很快就会有Vista用户)。

关注点分离vs。web开发人员的形象

就其意义和方法而言,Zeldman首先解释的分离仍然是一个令人难以置信的好主意——不同技术分离背后的思想是伟大的。一些公司在他们的培训中非常接受这个概念,例如雅虎甚至更进一步,通过称之为关注点分离而不是发展的层次。

这种细微的差别也在一定程度上说明了为什么这个伟大的想法并不总是在现实产品中实现:您需要了解不同的技术是如何工作的,以及如何正确地编写它们。从本质上讲,你希望有一个拥有不同专家主题的团队一起工作来构建一个强大的产品。

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

这就是为什么最终的web产品没有明确的分离。在大多数情况下,开发人员意识到他们本可以做得更好,但是他们被迫仓促完成,或者使用他们不太关心的技术。如果您曾经调试和优化CSS由Java开发人员编写,您将明白我的意思。

Web标准展示和消耗

每当我们称赞新产品以正确的方式使用web标准时,它都不是一个大产品。它几乎从来都不是企业框架或CMS。而且——在很多情况下——它实际上是为了强调使用web标准,而不是简化构建web产品的过程。

就拿网站来说,最有可能是突破的主要原因CSS社会人士认为:CSS禅意花园。花园很简单XHTML文档,语义正确,但是已经有很多id和类作为句柄来应用了CSS规则。它的工作是展示通过分离外观和感觉,您可以轻松地重新设计web站点,并使其在不同的情况下看起来(以及稍后对用户的反应)完全不同。

这一切都非常顺利,直到我们对替换图像的可能性太过兴奋。后来提交给花园的作品中有大量的背景图片,这很讽刺,因为最初的论点是所有的内容都应该在里面HTML

在现实世界中,然而,我们从来没有固定过HTML要玩的文件-我们有CMS为我们创建网页,一切都在变化。你不能控制菜单元素的数量,你无法控制文本的数量,您将无法“简单地向元素添加一个类”来为其提供一些额外的功能。是时候理解我们可以通过展示网站和演示来激发灵感了,但是我们真的不能帮助人们开发网站和反对“每个人都可以做前端”的概念,这不是硬编码。

当我们在玩水上摩托车的时候,没有人想知道海洋的深度和构成

现在“最佳实践web开发”演讲,演讲和教程是非常自我参照的。我们和同样的人谈论同样的主题,并声称人们在使用语义的同时,网络却在世界市场很小的一部分与围墙花园开发和本地移动开发的竞争中挣扎求生。

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

我们开始退回到各自的专家领域,并在专家会议上发言。在设计会议上教授的很多东西与你在性能会议上听到的完全相反。我们在抽象层之上构建抽象层来解决浏览器问题,并在会议上发布许多“奇迹”库和脚本,甚至不关心是否有人会使用它们。

速度仍然是我们讨论的主要问题。如何缩短脚本加载程序20毫秒?如何制作一个50fps而不是30fps的动画?

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

我最喜欢的例子是参加谷歌IO易访问性讲座。大约一个小时我们学习了如何把一个元素变成一个按钮,并保持它的可访问性。没有一次提到为什么我们不用a按钮元素。在那次谈话中有很多有用的信息——但是这些都不是必需的,因为我们模拟了浏览器很容易提供给我们的JS和CSS

我们现在拥有的新一代开发人员对技术非常感兴趣。我们,多年来,“最佳实践”的教育者和解释者一直受到浏览器的负面影响。jQuery等环境传播的“少写,实现更多“作为成功的主要目标”。我们告诉人们的大部分是“添加这个和那个来赋予事物意义”,当他们问我们“为什么?”

使用web标准的唯一真正好处是

使用web标准首先意味着一件事:专业的工作。你没有为浏览器编写干净的标记,你不是为最终用户写的。你是为接替你工作的人写的。就像你应该在简历中使用好的语法,而不是用蜡笔写一样,当你留下一堆“有用”的代码时,你不能指望得到维护代码的人的尊重。

这就是我们需要让新开发人员理解的东西。它是关于为提供一份干净的工作而自豪。不是关于使用最新的技术和追求闪亮。对于我们自己,我们必须理解,真正关心我们所喜爱的标准和关注点分离的是我们自己——因为我们认为可维护性,而不是快速部署和代码的连续迭代。web不是代码——web是一种媒介,我们在其中使用适合于现有目的的各种技术来为最终用户提供良好的体验。

低调JavaScript的七条规则

周一,11月12日,2007

我写了很多关于低调的JavaScript之前,但我从来没有举办过关于它的研讨会。好吧,现在是巴黎Web会议本周晚些时候在巴黎,法国我给一个已经卖完了,我非常期待。

作为研讨会的一部分,我准备了我的材料,并希望有一个好的大纲来遵循。我以此为契机在旧材料的基础上进行了构建这次练习的结果是我成功地定义了低调JavaScript的规则,这是:

  • 不要做任何假设
  • 找到你的钩和关系
  • 把遍历留给专家
  • 了解浏览器和用户
  • 理解事件
  • 与他人合作愉快
  • 为下一个开发人员工作

我已经在这里详细解释过了:低调JavaScript的七条规则

在研讨会结束后,我还将添加一些代码演示的细节,但这很可能是在@media Ajax之后。

我希望这对你们有帮助,它是知识共享,所以好好利用它。