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

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

三月份存档,二千零一十五

别再找借口了——一个“HTML5现在”在罗马共同运动会上演讲

星期日,3月29日,二千零一十五

昨天我结束了罗马联合行动通过讨论浏览器的状态,以及我们作为开发人员是如何让自己变得太难的。你可以看到幻灯片共享看一看YouTube上的屏幕直播.

创新其他网络——我在WROC的主题演讲

星期日,3月15日,二千零一十五

上周我很幸运地为就职典礼作了开场白。WROCγ弗罗茨瓦夫事件,波兰。事件,由组织客观性我的目标是基于微软栈的开发人员,我觉得自己的深度出奇了。本质上,我是微软的员工,对这个主题的了解比听众少得多。

沃罗克阶

我抓住了这个机会,然而,告诉这些被俘虏的听众我们在创新“另一个网络”方面的巨大需求。这些开发人员日常工作的网络,Windows机器上的大公司网络,他们从framworks获得功能,将前端视为一件复杂的事情来驯服,并对多年前应该被取代的浏览器表示感激。

我的演讲幻灯片打开了幻灯片.

创新其他网络WROSCharp主题演讲 必威体育下载克里斯蒂安·海尔曼

我还录了一个谈话的剧本并上传到YouTube。

我在谈话中提到的资源:

关于这件事的几句话

如你所知,我报道了很多事件,而且已经有好几年了。这就是为什么当你仍然感到惊讶时,这是一种很好的感觉。WROC在各个方面都很出色。这是第一次有组织的活动,免费门票和一个五位数的组织者价格标签,一切进展顺利,你可以看到组织者的热情和动力。

我感到很谦卑,并对自己参与其中感到非常感激。组织者让我感到受欢迎,让我毫无疑问地敞开心扉的方式是非常特殊的,许多会议可以从他们使用的小技巧中学习。必威体育下载打印出来的详细的日常日程安排对我来说非常好。房间里的“谢谢你”古蒂包只不过是压倒性的。

演讲者的试卷上没有问题。

我们没有在活动开始前一天举行演讲晚宴,而是参观了这座城市,这也是一次寻宝活动。这不仅让我们了解了演讲者,同时,组织者也会在一天的时间里,作为陌生人离开之前,感受一下这个地方和那里的人。

糖果袋

与会者有特别的餐饮服务,无休止的饮料咖啡和当地酿制的啤酒,以备宴会后之用。无线系统工作正常,所有的谈话都是实时的。有一场桌上足球赛,街机和乐队,还有很多东西可以让人们保持在周围,让他们互相了解。

总之,这是一个令人惊奇的会议,第二天我在客观性上给他们反馈,并帮助他们回答一些外联/开发人员的福音主义问题,因为我觉得仅仅做一整天的演讲和参加活动是不够的。这是一次极好的经历,多亏了所有的参与!

在不破坏网络的情况下推进JavaScript

星期一,3月9日,二千零一十五

当前的进步ECMA剧本是个很好的机会,同时也是对网络的挑战。在添加新内容的同时,重要的功能,我们也面临着破坏向后兼容性的危险。

这些是我的笔记,是我在上周的市政会议.你可以看到幻灯片共享看一看YouTube上的屏幕直播.一旦组织者完成后期制作,还将提供一份谈话记录。谈话视频在YouTube上直播

javascript–网络皮匠

彩虹独角兽小猫准确可视化JavaScript的多功能性

javascript是一个很好的工具,专为网络设计。它非常灵活,重量轻,学习门槛低,实现机制必威体育下载简单。添加一个脚本元素到HTML文件,直接包含一些JS或者链接到JS文件,您就可以开始比赛了。

javascript不需要编译步骤,独立于集成电路设备开发环境。你可以在任何文本编辑器中编写它,做记事本,不及物动词,崇高的文本,原子,括号,甚至使用复杂的IDE,比如Eclipse,Visual Studio或其他用于将文本放入文件的工具。

javascript——新开发人员的推动者

JavaScript并不强制您编写有组织的代码。从语法的角度来看,当涉及到类型安全和内存分配时,这是一个彻底的混乱。这使得JavaScript获得了现在的成功。它是一种在浏览器和应用程序等客户端环境中使用的语言。例如,您可以用javascript编写Illustrator和Photoshop脚本你现在也可以自动化OSX用它.使用node或io,您可以使用javascript服务器端,编写API和定制服务器。你甚至可以跑JS直接在硬件上.

JS的宽容使它获得了快速增长的成功。它能让人们快速而肮脏地写东西,并获得巨大的成就感。它推动了产品的快速释放经济。PHP在服务器端执行相同的操作。它是一种模板语言,它发展成一种编程语言,因为人们使用它是那样的,而且在那时比Perl或Java更容易实现。

JavaScript打破了惯例,挑战了现有的最佳实践。它没有遵循面向对象的方法,它的原型性质和范围欺骗可以使它看起来像一个可怕的设计黑客从一个OO世界的人。它还可以使来自它的人对回调和匿名函数的构造非常混乱。CSS或者设计世界。

但事情是这样的:每一个这样的人都被热情地邀请编写javascript——无论好坏。

Javascript会留下来

Javascript在开发人员中取得的巨大成功是,自从我们从Lynx开始开发以来,它在每个浏览器中都是可用的。它就在外面,人们使用它,而且在许多情况下依赖它。这很危险,我稍后再谈,但这是我们必须面对的事实。

就像它和所有在网络上分发的东西一样,再也没有办法摆脱它了。我们也不能命令用户使用支持我们喜欢的其他语言或运行时的不同浏览器。网络的基本事实是用户控制体验。这就是网络工作的原因:你为硅谷居民编写的代码是在一个8核的最先进的移动设备上编写的,这个设备有一个常青的、功能强大的浏览器,可以快速无线连接,而且要花很多钱。同样的代码,然而,应该为那些攒了钱在新兴国家的网吧里用一台旧的火狐连接着一个非常缓慢和脆弱的连接的WindowsXP机器工作半个小时。或者身体状况使他们看不见的人,说话,听或用鼠标。

我们的工作不是让那个人跟上时代,升级硬件。我们的工作是利用我们的智慧编写智能解决方案。智能解决方案,测试哪些部分可以执行,并且只将这些部分提供给那个人。网络技术的设计是灵活和适应性的,如果我们不明白,我们不应该假装自己是网络开发人员。

网络是由许多不同的消费者组成的分布式系统。这使得它成为一个非常恶劣的发展环境,因为你需要为许多破损和未知做好准备。它还使它成为一个平台,能够接触到比任何环境都能接触到的人更多的人——更明确和更封闭的环境。它也允许下一个消费者找到我们。它的硬件独立性意味着人们不必等待设备的可用性。他们所需要的只是能说话的东西超文本传输协议.

javascript的新挑战

这一切都很好,但是我们在网络发展的过程中已经达到了这样一个阶段:我们使用javascript的范围如此之广,以至于我们需要开始更好地组织它。可以用JavaScript将大型应用程序甚至服务器端解决方案进行黑客攻击,但是为了控制和维护它们,我们需要考虑编写更干净的javascript,并在我们的方法中更加有条理。我们可以发明新的使用方法。这是不可少的,看到几乎每周都有新的javascript框架和库发布。或者,我们可以试着调整语言本身,使其更适合用几十年来在其他语言中证明自己的规则来发挥作用。

换言之,我们需要Javascript来降低宽容度。这意味着我们将失去一些第一次使用的用户,因为更严格的规则不太有趣。这也意味着尽管人们来自其他地方,更高级和更明确的语言可以开始使用它,而不必重新教育自己。鉴于需要比就业市场提供更多的javascript开发人员,这听起来不是个坏主意。

javascript——网络的混乱层

虽然JS是一个很好的解决方案,可以使Web对我们的用户做出更迅速的响应,它与其他播放器(如标记和样式表)也非常不同。这两种方法都可以在遇到错误时不停止执行而得到原谅。

遇到未知元素的浏览器耸耸肩,对它什么都不做,继续前进DOM对于下一个元素,它确实理解并知道如何处理。这个HTML5解析器遇到未闭合的元素或错误嵌套的元素将修复这些问题,并继续DOM对象集合和可视化显示。

CSS解析器遇到一行语法错误或选择器,它不理解跳过该指令并继续下一行。这就是为什么我们可以使用浏览器前缀的选择器,例如–webkit–gradient,而不必测试浏览器是否真的是webkit。

javascript不是这样的。当脚本遇到语法错误或试图访问方法时,不存在的对象或属性将停止执行并引发错误。这是有意义的,因为JavaScript比其他的更强大,甚至可以替换它们。您完全能够创建一个单空的Web产品身体元素,让javascript完成其余的工作。

Javascript–通过逐步增强

这使得JavaScript比其他两种技术更不可靠。我们惩罚我们的终端用户犯下的错误,开发人员。具有讽刺意味的是,这正是为什么我们回避的原因XHTML定义HTML5作为它的继承人。

当你依赖于javascript时,很多事情都会出错,而最终用户故意关闭它只是其中很小的一部分。这就是为什么不依赖javascript是一个很好的实践,但是,如果浏览器能够加载和执行我们的脚本,那么可以测试它并增强基于标记和页面重新加载的解决方案。这就是所谓的渐进增强,它已经存在很长时间了。我们甚至在物质世界中使用它。

当你建房的时候,到达更高楼层的唯一方法就是搭电梯,电梯停止工作时你把房子弄坏了。如果你还要爬楼梯,这房子还可以用。当然,人们需要更努力地站起来,这不是那么方便。但这是可能的。我们甚至还有一个叫做自动扶梯的移动楼梯,给我们提供了便利和退后的选择。坏掉的自动扶梯是一套楼梯。

我们的代码可以同样工作。我们建造了楼梯,当浏览器能够执行我们的javascript并且没有犯任何错误时,我们就移动它们。如果我们愿意的话,我们甚至可以在以后加一辆车,但一旦我们建造了楼梯,我们不必再为他们担心了。即使其他一切都失败了,这些方法也会奏效。

javascript–设置合理的基线

确保脚本工作的最简单方法是测试环境的功能。我们可以通过一个非常简单的if语句来实现这一点。通过使用新浏览器的属性和对象,这意味着我们可以屏蔽那些我们不想再支持的浏览器。当我们创造了一个HTML/server解决方案来支持这些,这是完全可以接受的,也是一个很好的主意。

作为开发人员,没有必要惩罚我们,因为我们必须在一小部分用户使用的浏览器中进行测试,而这些浏览器在我们当前的操作系统中甚至不再可用。不给这些浏览器提供任何我们已经介绍过的javascript。我们不会用功能来打扰他们,他们运行的硬件很可能不支持任何方式。

中的开发人员英国广播公司把这个叫做“切芥末”发表了几篇关于它的文章.当前测试用于不影响旧浏览器的是:

如果 “查询选择器” 在里面文件& &
    “本地存储” 在里面窗口& &
    '添加事件侦听器' 在里面窗口 {
  //支持浏览器。
  //让我们添加javascript功能
}

最近,谷歌的杰克·阿奇博尔德找到了一个更短的版本:

如果 '可见性状态' 在里面文件 {
  //支持浏览器。
  //让我们添加javascript功能
}

这可以防止javascript在10岁以上的Internet Explorer和基于WebKit的Android浏览器中运行。它还可扩展到浏览器中的其他即将推出的技术,并可根据您的需求进行简单调整:

如果 '可见性状态' 在里面文件 {
  //支持浏览器。
  //让我们加载javascript
  如果 “服务工作者” 在里面领航员 {
    //让我们添加脱机支持导航器。服务工作者.登记'S.J' {范围 “/”
    }
  }
}

这个,然而,当我们开始改变语言本身时就无法工作。

严格模式–赋予javascript新的功能

为了让javascript更安全、更干净,我们需要它的解析器不那么宽容。为了确保我们不会通过标记开发人员过去犯下的所有错误来破坏网络,我们需要找到一种方法来选择这些更严格的解析规则。

一个相当巧妙的方法就是“use strict”解析器指令.这意味着我们需要在脚本前面加上一个简单的字符串,后跟一个分号。例如,以下javascript不会在浏览器中导致错误:

X= 

宽大的解析器不关心变量x没有被启动,它只看到一个新的x并定义它。如果使用严格模式,浏览器不会对此保持冷静:betway体育官方网

“使用严格”X= 

在火狐的控制台中,您将得到一个“referenceerror:assignment to undeclared variable x”(引用错误:分配给未声明的变量x)。

这种选择可以将JavaScript提升到一种定义更明确、占用内存更少的语言。在一个最近的演示文稿谷歌V8团队的AndreasRossberg建议使用它来将javascript升级为更安全、更清洁的版本,称为sanesccript,随后是soundscript。所有这些都只是建议,在对精神卫生界提出合理投诉之后,现在有了一个改变,称之为“强脚本”。最初的想法是使用名为“use sanity”的字符串来选择这个新的解析器,很可爱,同时也对患有认知问题的人傲慢和侮辱。正如你所看到的,推进JS并不容易。

ECMA脚本–更改语法

使用字符串选择新的解析器,然而,当我们更改语言的语法时不起作用。这就是我们现在要做的ECMA脚本,它被吹捧为Javascript的未来,在许多帖子和会议讨论中都有涉及。关于这一切的历史课,退房Florian Scholz在JFokus上的演讲叫做“javascript的下一步是什么?”ES6超越“.

ECMA脚本有一些很好的新特性。你可以看到所有的在详细的文档中多媒体数字网这个帖子还有一个很好的概述。它将类引入到JavaScript中,对范围问题进行消毒,允许跨多行并有变量替换的模板字符串,增加承诺,不需要很多匿名函数来命名。

确实如此,然而,更改javascript的语法,并将其包含到文档中,或将其放入不支持它的浏览器的脚本元素中,您所要做的就是创建一个javascript错误。

在这个问题上没有渐进的增强方式,一个可选字符串也不能完成这项工作。本质上,我们打破了Web脚本的向后兼容性。这可能不是什么大问题,如果支持浏览器ES6,但我们还不完全在那里。

ES6支持和解决方法

这个当前支持表ECMA脚本6在浏览器中,解析器和编译器看起来不太令人鼓舞。很多是红色的,在许多情况下,我们所依赖的运行javascript的产品的制造商是否会大跌,这是未知的。

对于浏览器,这个ECMA编写测试套件脚本以运行JavaScript引擎在Github上公开。这也意味着你可以对其运行当前浏览器看看价格如何。

如果你想帮助收养电解加工浏览器中的脚本,请参与此测试套件。这是一个所有测试的地方,也是我们提供的更好的测试,我们的浏览器将变得更加可靠。

使用即将到来的ECMA立即编写脚本

变化的本质ECMA脚本使它或多或少不可能在浏览器和其他使用JavaScript的工具之间使用。由于对语言的许多更改都是javascript中的语法错误,而解析器对这些错误并不宽容,我们通过为遗留环境编写错误的代码来改进语言。

如果我们考虑ECMA脚本,这不是什么大问题。新功能解决的许多问题要么是企业问题,在构建大型项目时只会获得高额回报,要么是浏览器即将推出的功能所需的功能(例如,例如,承诺)。

这些变化主要意味着JS获得了真正的OO特性,内存更优化,对于以其他语言开始的开发人员来说,它将成为一个更具吸引力的编译目标。换言之,目标受众不太可能在文本编辑器中从头开始编写代码,但已经来自构建环境或集成电路设备.

这样我们就可以在构建过程中或在运行中将代码转换为JavaScript。这几天没什么令人震惊的——毕竟,我们转换的时候也会这样做萨斯CSS或者杰德HTML.

很久以前,像这样的新语言打字稿介绍给我们的功能ECMA脚本6现在。另一个要使用的工具是巴斯,它甚至有一个实时的编辑器,可以让你看到ES6代码转换为以便在旧环境中运行。

返回类型属性?

另一种解决浏览器不支持问题的方法ECMA新语法的脚本和阻塞可能是使用类型属性。每次向脚本元素添加类型值时,浏览器都无法理解,它跳过了它,并且不影响脚本引擎的内容。在过去我们用这个来创造HTML模板和微软有一个自己的JS派生,称为JScript。这一个给了你比JavaScript更多的使用Windows内部的能力。

确保我们所有人都能使用ECMA现在和明天的脚本安全地将是让浏览器支持“es”或类似的类型。问题是,看看这些问题是否真的值得ECMA脚本正在尝试解决。

我们已经进入了Web开发的世界,从嵌入脚本和视图源代码,到浏览器中的开发工具链和调试工具。如果我们坚持这些,从javascript切换到ES6这比让浏览器解析或忽略语法错误的javascript要少得多。

更新Axel Rauschmayer为ECMA脚本模块.他提出了一个建议模块元素获取脚本使用模块类型作为旧浏览器的回退。

不会让人厌烦的

无论如何,当有人讨论ECMA脚本。我们需要确保在有意义的时候使用新功能,不是因为听起来很棒。网络的力量在于每个人都被邀请为它编写代码。没有100%的对错。