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

您当前正在浏览必威体育下载克里斯蒂安·海尔曼十月份的博必威体育简介客档案,2016。

10月存档,二千零一十六

解码聊天–第三版,在JavaScript和Web标准上介绍Chris Wilson

星期二,10月25日,二千零一十六

在西雅图的Microsoft/Mozilla Progressive Web Apps研讨会上,我遇到了Chris Wilson,并借此机会就Web标准采访了他,JavaScript依赖性和开发复杂性。

在第一次访谈中,我们讨论了在今天的网络中对javascript的需求,以及旧的网络标准如何能够满足今天的需求。

你可以看到视频并在解码后的博客上获取聊天的音频记录以下内容:

莫妮卡打招呼

Chris已经在Web块上工作过几次,对标准和开发人员如何使其适用于各种不同的环境有了很多了解。他在各种浏览器上工作,对开放式Web有着很高的热情,并为开发人员提供了标准和优秀的浏览器。

以下是我们讨论的问题:

  • 当前的热门话题似乎每隔几年就会出现一次,那就是Web产品对JavaScript的依赖性,如果没有它我们也能做到。那里的现状是什么?
  • 当我们发明了DOM允许声明性和程序性访问文档?javascript可以创建HTMLCSS让我们对结果有更多的控制。
  • Web组件的一个担忧是它将允许开发人员在自定义元素中隐藏大量的复杂性。我们是否有一个问题,即模块是简单的?
  • 问题的一部分不在于网络是建立在文档的基础上的,而模块的性质需要强制加入其中吗?CSS以其名义层叠,然而,模块不应该从文档继承样式。
  • 现代接口所需的一些功能似乎可以通过竞争标准实现。您可以在CSS,请javascript和静止无功发生器.不同的标准工作组是否彼此不交谈?
  • 中的声明性功能CSSHTML可由浏览器制造商优化。例如,当你用javascript创建动画时,我们不能帮你。这是危险吗?
  • 我们现在在浏览器中看到的许多javascript增强功能都是增强现有的API,而不是发明新的API。被动事件监听器就是一个很好的例子。这将是前进的道路吗?
  • 有一件事似乎是浪费的,那就是在过去,很多进入辅助图书馆的研究都会随着它们一起消亡。悠悠有很多关于动画和互动的信息。我们能以某种方式阻止这一切吗?
  • 你觉得这些天黑客死得更快吗?更快的浏览器发布计划是否是不让短期解决方案阻塞网络的解决方案?
  • 现在浏览器允许我做什么,为我创建工作布局和可读字体让我感到惊奇。你认为开发人员不欣赏标准的复杂性吗?CSS够了吗?

解码聊天–第二版,以Monica Dinculescu为特色的网络组件

星期四,10月20日,二千零一十六

在今年的“粉碎论坛”上,我很幸运能有时间和莫妮卡·迪克力斯库坐下来。(@诺华道夫)和她聊聊网络组件,扩展网络,以及如何成为一个懒惰但专注的开发人员。我对录音的声音和一些更尖锐的剪辑感到抱歉,但我们被试图参观我们所在的伟大建筑的游客打断了,他们看不到白天关闭的标志。

你可以看到视频并在解码后的博客上获取聊天的音频记录以下内容:

莫妮卡打招呼

我在采访莫妮卡时扮演了一个魔鬼代言人的角色,因为她有很多很好的观点和信息来支持她的观点。通过一个刚加入该党的天才的眼睛,看到网络的现状是非常愉快的。对于那些已经在这里呆了很长时间的人来说,要陷入一种不想与过去分道扬镳,或者考虑到所有破碎的事物的常规之中,这太容易了,因为这些年来我们已经看到了太多的破坏。不是这样,莫尼卡。她认为我们可以信任开发人员做正确的事情,并且通过给他们工具来分析他们的工作,明天的网络将是伟大的。

我很高兴在我们的市场上有像她这样的人。把火炬传递给那些有很多奉献精神的人,而不是那些乐于使用任何有用的东西的人,是件好事。

解码聊天–第一版在解码博客上直播

星期二,10月18日,二千零一十六

在过去的几周里,我忙于记录与网络上不同的令人兴奋的人的访谈。现在我很高兴地宣布第一版解码后的聊天在新的解码博客.

解码聊天-克里斯采访罗布·科内里

在第一版中,我在面试康纳利关于他的”冒名顶替者手册“。我们涉及教学发展问题,如何应对不断变化的工作环境,如何应对多样性和整合。

我们又准备了八次面试,还有更多的人排队。在我交谈过的人中有莎拉·德拉斯纳,莫妮卡·迪库莱斯库,艾达·罗斯·爱德华兹,尤娜·克莱维斯和克里斯·威尔逊。解码聊天的格式相当开放:15分钟到50分钟的网络上当前主题的采访,与提出这些趋势和想法的人在一起。

有些是在录音室里录制的(当我在西雅图的时候)。另一些是Skype电话,而另一些则是会议上即兴录制的。

你认识想让我采访的人吗?在Twitter上给我留言@ CODEPO8我知道我能做些什么:)

交叉配合.js

星期二,10月18日,二千零一十六

也在中等水平上,如果你想评论.

Rey Bango让你这么做

当我第一次听说CrossFit时,我认为这是个好主意。我还是会的,公平地说:

  • 短,非常专注和高强度的锻炼,而不是耗时的锻炼计划
  • 不需要昂贵复杂的设备;它基本上是运行和提升重物
  • 很多训练都是用你自己的体重来代替额外的设备
  • 注重营养。去掉那些容易发胖的东西,集中精力做对你有好处的事。

本质上,这听起来像是与我们以前做过的过于复杂和昂贵的锻炼相对应。你不需要昂贵的设备。一些酒吧,绳子和轮胎就行了。也不需要私人教练,量身定做的服装和排队等候在健身房为你准备好的机器。

快进几年,你会看到我们把CrossFit几乎变成了一个笑话。你有太大的Crossfit兄弟在健身房里砸重物,咕噜咕噜,大喊大叫,告诉对方“感觉到灼伤”,“当你还没有吐出来的时候,你还没有努力锻炼”。你有各种品牌的CrossFit产品,甚至还有特殊的食物来帮助你的CrossFit运动。

谢谢,商业主义和市场营销。你又做了一件简单易行、烦人又精英的事情。没有必要这样做。

CrossFit的一个特点是它很危险。没有朋友的良好监督,很容易严重伤害自己。是关于适度,不是关于竞争。

我觉得JavaScript也发生了同样的事情,这让我很恼火。javascript曾经是我们在网络上所做的一个附加组件。它提供了额外的功能,使我们的最终用户更容易完成他们来完成的任务。它是一种学习的语言,必威体育下载不是一种生活方式。

现在,javascript就是一切。客户端使用只是其中的一小部分。我们用它为服务器供电,运行任务,定义构建过程并创建胖客户端软件。每个人都有一种固执己见的方式来使用它,而且如果他们不订阅它,很快就会因为“不专业”而把别人说出来。画报式的生活方式抬起了丑陋的头。

让我们想想像CrossFit那样的javascript。精益,恢复健康的运动对你有好处:

  • 利用你的体重–在客户身上,如果能做点什么HTML,请我们一起去吧HTML.当我们创造HTML使用javascript,让我们创造有意义的东西,不是很多跳水。
  • 举起重物–javascript非常适合简化复杂的任务。使用它可以创建更简单的接口,并且重新加载的次数更少。更改有效但格式不正确的用户输入。使用任务运行程序来自动完成恼人的工作。然而,如果你意识到这个任务是一个很好的拥有而不是一个需要,把它取下来。使用工作线程进行大量计算,而不破坏主UI。
  • 注意你的消费–将依赖性降至最低,并确保所依赖的内容是可靠的,可安全使用和更新。
  • 跑很多–性能是最重要的部分。保持你的解决方案快速和精益。
  • 坚持简单的设备–这与我们使用多少“专业工具”无关。这是为了让人们更容易开始锻炼。
  • 注意你的卡路里–我们有在网络上使用太多的倾向。图书馆,聚合体,框架。其中许多都使我们的生活更容易,但对我们的最终用户来说却很沉重。重要的是要了解我们的最终用户没有我们的设备。在一个廉价的Android上测试你的产品。去掉不需要的东西,让它对每个人都更好。
  • 吃好吃的东西–浏览器是常青树,这些天不断升级。为了使你的产品更好,有很多很好的功能可以使用。参观“我能用吗“早点,经常玩新东西来代替旧的拐杖。
  • 别当密码兄弟–没有人会对那些经常提醒人们身体不适的笨蛋印象深刻。做一名代码健康倡导者,帮助人们变得更健康。

现在的javascript比一天学习的语言要大得多。必威体育下载这并不意味着,然而,每个新开发人员都需要知道整个堆栈才能成为有用的贡献者。让我们保持简单和有趣。

我们需要javascript来修复网络

星期五,10月14日,二千零一十六

tl;dr:javascript是构建可访问的绝佳机会,易于使用和灵活的解决方案,使网络无法使用它。它填补了多年来产生的向后兼容性焦点的空白。它有助于解决现在和未来的问题HTMLCSS独自一人无法可靠地覆盖。我们不应该盲目地依赖它——我们应该有责任解决它的脆弱性和可靠性问题。

片状布线

马上,在我们的世界里有很多关于javascript的噪音,逐步加强和依赖技术和工艺。我就在其中。我有相当多的采访正在进行中的利益相关者,我正在就这个问题进行一些讨论。

现在正在发生的许多谈话似乎是循环的:

  • 有人对要依赖的网络和技术状况作了全面的陈述。
  • 这会激怒其他一些人。他们指出了这些技术的危险性,并指出它违反了最佳实践。
  • 原作者指责人们的反应是有限的和不合时宜的观点。
  • 框架的利益相关者承诺让开发人员的生活变得轻而易举,并指出他们的方法是唯一真正的解决方案。
  • 62篇博文和5212篇推文之后我们找到了共识,一切又都很好。

除了,不是这样的.网络处于糟糕的状态,一般的网站速度很慢,用运行缓慢的代码惩罚我们的计算机,并且在试图保持用户与之交互时没有任何宽限。广告在监视我们,脚本注入恶意软件,在混乱的模式和过于复杂的接口中查找内容是很费劲的。

我们该走了,在第一次浏览器战争中幸存下来并使标准驱动的开发成为我们的目标的社区,开始面对事实。我们未能更新我们关于一个可使用和可维护的网络的信息,使之与当前市场和新一代开发人员相关。

我们曾经修复了网络,为前进铺平了道路。

我们的“最佳开发实践”源于我们在台式电脑上使用了糟糕的浏览器的时代。我们的连接性还不错——不是很快,但它至少是可靠的。我们还创建了文档,并对其进行了增强,以便在以后成为应用程序或进行一些交互。

神圣的三位一体曾经和现在是:

  • 语义的HTML对于结构
  • CSS用于造型
  • 一些额外行为的javascript

这就是我们想要传达的信息。它在很大程度上也是虚构的产物。我们将这些定义为最佳实践,并尽可能地遵循它们,但当时网络的很大一部分已经完成了所见即所得编辑,CMS系统-由服务器端框架驱动或构建。像这样的,这个HTML一团糟,样式是一个事后的想法,javascript充斥着浏览器嗅探或大量document.write的污点。我们假装这不是问题,真正关心的人永远不会屈从于创造这样可怕的事情。

没有“基于标准的好网站”。一直都是专业人士,我们努力创造的工艺观和理想。事实是,我们总是用短期解决方案来解决问题。

我们有一个明确的目标和敌人——我们现在输了一个。

当时的浏览器并不了解标准,浏览器战争也在加剧。拥有与其他浏览器不同的功能是市场优势。这对开发人员来说是不好的,因为我们必须为不同的浏览器重复我们的所有工作。最大的技巧是知道哪个浏览器以何种方式出错。这是我们明确的目标:替换那些只在IE6.除非您也可以访问CMS系统代码或框架所用的任何语言。我们想通过解释什么样的网络标准有利于解决这一混乱局面。

HTML描述一个小用例

HTML描述带有一些交互元素的链接文档。作为面向质量的开发人员,我们从HTML文档,我们从合理的结构中得到了启发,加上适当数量的CSS,请添加一些javascript以使其更具互动性并释放它。这很酷,仍然是非常有可能的。然而,随着网络成为主流媒体,人们的工作方式不尽相同。我们习惯了在浏览器中工作的方式不同,其中许多模式需要JavaScript。

我们已经习惯了更高层次的交互,因为浏览器制造商花费了大量时间来确保与其他浏览器的兼容性。我们还有一些非常明显的获奖浏览器和开发人员喜欢它们。浏览器都很好,并且对反馈开放,浏览器制造商之间不再存在战争。重要的是不要阻止旧浏览器的用户,但是没有必要为他们提供额外的工作。对,你可以开着一辆指示灯坏了没有灯的车上高速公路,但你对自己和他人都是一种危险。这就是使用旧的Internet Explorer进行冲浪的方式。

的升级HTML没有我们想象的那么顺利

HTMLCSS很华丽,它们简单而漂亮,确保网络上的任何人都不会被遗漏。这两种技术都非常宽容,允许网络内容的发布者犯错,而不会让他们的读者遭受痛苦。这个事实并没有改变,加上漂亮的简单链接,使网络成为现实。它是,然而,这还不足以满足今天对最终用户的期望。它是否坚固不重要,如果无聊或者使用起来不方便,它就不会坏。

事实上HTML你再仔细看,就不会那么红润了。打开我眼睛的一件事是Monica Dinclescu的演讲“我爱你输入,但你让我失望了”.

在里面,莫妮卡批评了HTML输入元素。当我在谷歌IO上听到她的暗示时,我很恼火。当然,这是错误的:输入是一件美丽的事情。如果使用输入类型范围,现代浏览器的最终用户会得到一个滑块,旧浏览器和文本框。没有人被排除在外,使用更好的浏览器会更好。这是最好的渐进式增强:内置在平台中。

除了滑块的实现,数,统一资源定位地址以及其他许多新的输入类型HTML5太可怕了。Monica在大多数现代浏览器中显示了一些非常明显的缺陷,这些缺陷无法修复。大多数情况下,因为开发人员使用JavaScript解决方案时没有人抱怨他们。所以,对,旧的浏览器会得到一个有效的文本框。但是新的浏览器得到的界面让人失望,甚至使任务变得简单就像输入一个不可能的数字.

这是一个不方便的事实,我们需要拥有一些需要改变的东西。有很多错误信息表明HTML5标准可以可靠地使用,不需要JavaScript。这根本不是真的,而且,在很大程度上,基于浏览器实现。但是,正如莫妮卡详细解释的那样,很多在标准中有模糊的定义,一开始实施得不好,现在不能在浏览器中修复,因为它会破坏网络上的许多实际用途。每个浏览器制造商都必须处理这个问题——我们在网络上有很多糟糕的代码,即使我们想修复这些实现,它们仍然需要工作。

还有其他的神话不断涌现。正在添加咏叹调对你HTML例如,不会自动使您的解决方案可访问。除了一些简单的功能,比如说咏叹调增强需要javascript来达到辅助技术。

我们的坚固基线HTML随着我们搬家时增加的复杂性,未来变得更加脆弱。HTML5从文档到应用程序。这并不意味着你应该放弃所有的语义HTML用javascript创建所有东西。确实如此,然而,也不意味着你可以依靠HTML神奇地为您解决可用性和访问问题。

网络作为一个平台对新开发人员来说并不吸引人——它是一个给定的

现在开始为网络构建的开发人员不知道在桌面上离线是什么感觉。他们从来没有被依赖于javascript的解决方案所阻挡。他们看到了相当一部分的javascript滥用,他们确实遇到了破碎的地方。但在大多数情况下,重新加载会修复这个问题。几乎没有“你的浏览器不够好”的事情发生了。

不管好坏,网络的成功成了它的祸根。我们是很酷的“新媒体”。然而,这些天,我们不酷。我们就像水管。当你在一个相当富裕的国家,你打开水龙头,水就出来了。你不在乎管道或它来自哪里。就在那里。很像网络。

这就是我们想要的,现在,我们需要明白,我们对网络的迷恋并不是由那些不了解没有网络的世界的人分享的。

现在是时候让新一代的开发人员来处理现在的问题了,而不是我们挥动手指,要求一个始终是完美的场景和市场运作方式的一小部分的职业道德。

市场竞争激烈

技术是目前唯一一个适当增长的市场,我们也是其中的一部分。这意味着市场面临着持续增长的巨大压力。这意味着我们需要被视为不断创新。如果这是有道理的,或者是必要的,都是无关紧要的。我们只需要更大一点,速度越来越快——一直如此。对,这是不可持续的,但它能赚钱,这仍然是我们这个世界的主要目标——可悲地是。

这意味着当我们谈论发展时,人们更倾向于倾听提供“无需太多代码的快速应用程序”的框架。开发人员也更可能对任何提供构建“小,独立的解决方案,可以混合和匹配,以构建规模巨大的应用程序”。

用可重复使用的小零件制造车轮

现在的网络开发人员没有被要求设计一个干净的,可访问且结构良好的Web文档。如果我们对自己公平,我们从未被要求这么做。我们这么做是因为我们关心,让我们的生活更轻松。标准驱动的开发是为了防止我们重新发明轮子。然而,这些天,这正是新公司和开发人员所期望的。我们生活在一个组件的世界里。我们不断被要求快速构建一些东西,其他人可以在任何产品中重用。这样,您可以让10个开发人员并行处理一个产品,并且可以根据需要删除和添加功能。

我们就是这样得到解决方案的面向对象CSS“。瀑布是一个美丽的部分CSS这允许您编写几行应用于数千个文档,而无需重复定义。这与可重用的概念相反,不从其父容器继承任何外观和感觉的小组件。我们的用例改变了,而且这些标准没有提供我们需要的功能。

我们是流动的,我们的最佳实践不是

我们的世界发生了巨大的变化。我们现在生活在一个桌面不那么重要的世界里。一切都指向下一个使用手机的网络用户。这并不意味着台式机是不相关的,我们的解决方案也不好。

这意味着我们的“最佳实践”无法解决当前的问题。没有定义最佳实践。它们是通过试验和错误发现的。这就是我们现在和疯子在一起的方式CSS像重置一样的黑客,浏览器筛选器(使用语音的中间层CSS有人吗?)还有许多其他的——现在被认为是可怕的——想法。

我们需要在非键盘驱动的界面上,在功能相当强大的浏览器上找到坏的或没有连接的解决方案。我们需要小屏幕和互动的解决方案,为大手指或语音控制做好准备。

对,这个世界上最硬的核心场景意味着您不能依赖客户端脚本或大量的存储空间。代理浏览器和某些浏览器的电池或数据保存设置会干扰我们在客户机上的操作。总的来说,尽管我们所处理的是一台性能相当好的计算机(肯定比我们定义最佳网络实践时所使用的计算机要好得多),但它安装在一台小屏幕设备上,令人怀疑,不可靠甚至不存在连接。

输入新的,老英雄:javascript

现在,Javascript为我们提供了许多很好的功能来迎合这个世界。我们可以使用ServiceWorker提供离线功能,我们可以通过使用indexeddb而不是依赖浏览器缓存在设备上可靠地存储内容,并且DOM以及需要加强的活动HTML界面将立即启用触摸功能。更重要的是,我们有一种方法可以在应用功能之前即时请求功能并测试它是否成功。我们有一个非常强大的“如果”声明,允许我们对成功和失败的案例作出反应。开发人员工具让我们全面了解发生的事情,包括慢性能。对,这是一个比写HTML记录并添加一些CSS.但这就是为什么我们以专业人士的身份获得报酬。所有人都被邀请参与网络活动。希望通过创建Web内容获得报酬的专业人员需要做更多的工作。

我们可以创建非常适合使用的接口,如果我们使用一些语义HTML,请CSS和JavaScript。相反,我们一直在唠叨关于使用HTML为了一切,CSS如果我们可以的话,如果我们必须的话。许多“仅限于CSS”的解决方案都具有不可靠的可访问性功能,并希望获得有关CSS维修人员的怪癖。已经够了。伟大的解决方案不仅限于网络技术之一,而且需要专家的关怀。他们是所有人的混合体,满足用户需求。

我们需要承担javascript的责任

如果我们将javascript视为一种给定的东西,并不断提醒自己它的不可原谅性质,那么我们就有了一个新的基线,可以为当前和未来的Web构建令人惊叹的解决方案。我们要明白的是,让我们的产品快速加载是我们的责任,工作顺利,以及对有合理环境的人开放。我们不能依靠旧的网络的坚固性把责任从我们身上夺走。我们需要拥有它并推动网络向前发展。

这并不意味着我们需要盲目地使用JavaScript和框架来交付我们的产品。有许多不同的解决方案和方法的空间。这确实意味着,然而,我们不应该把我们限制在十年前的意义上。新的形态因素需要新的思维,我相信那些反对旧的最佳实践的人会找到很好的解决方案,就像我们根据之前那些人的坚定和短期解决方案定义的最佳实践一样。

javascript滥用非常猖獗。这是导致网站安全问题和普通网站性能不佳的主要原因。我们把功能和广告推到最终用户面前,希望能留住他们。相反,我们应该使用浏览器和硬件功能来提供出色的体验。使用JavaScript,我可以对我的产品所使用的计算机的各种事件和属性做出反应。没有它,我需要希望功能存在。只有承认javascript是一个给定的事实,我们才能开始使阻塞的Web变得更好。现在是时候清理当前的网络了,而不是要求那些从未真正存在过的“好的旧网络”。

照片信用:卢剑雄通过视觉狩猎/抄送