关于“时间”的各种编程与API设计问题

所属专题:编程语言

所属领域:

嘉宾 : 贺师俊 | 百姓网前端工程师

会议室 : 203CD

讲师介绍

专题演讲嘉宾:贺师俊

百姓网 前端工程师

贺师俊,网名Hax,现就职于百姓网架构部;十多年来一直活跃在Web标准、前端开发和JavaScript社区,对HTML标准有微小的贡献。

Hax精通JavaScript,很早就通过es-discuss邮件列表参与标准讨论,并给ECMAScript标准提交过issue。Hax关注和参与了多项ES新草案的讨论,写过多个针对新特性的Babel转换插件,给Babel、ESLint等项目提交过issue和pull request,并是Atom编辑器js-refactor插件的维护者。Hax做过大量JavaScript相关的分享,包括题为「JavaScript — The World’s Best Programming Language」的演讲。

Hax对其他编程语言也有广泛的兴趣,机缘巧合下对Groovy语言并间接对Swift语言的设计有微小的贡献。Hax也给PHP提交过issue,并撰有「PHP黑系列」文章。Hax还创造了Jedi语言,对DSL的设计和实现略有一点经验。

Hax是QCon的老朋友,五次出任讲师,两次担任出品人并获得「优秀出品人」荣誉,还临时客串过主持人;也经常在其他众多技术活动中担任讲师、嘉宾或主持人,并是「BXT技术沙龙」的组织者之一。

Hax毕业于复旦大学,曾在上海交通大学工作,是教育部「中国大学生在线」创始团队成员,任技术负责人;后两次进入盛大,先后参与过盛大盒子与电子书项目;2012年加入百姓网至今。可在GitHub上 @hax,或微博 @johnhax 与他交流。Hax还是知乎的编程、前端开发、JavaScript、CSS等话题的「优秀回答者」,可知乎 @贺师俊 向他提问。

议题介绍

地点:203CD
所属专题:编程语言
所属领域:

演讲:关于“时间”的各种编程与API设计问题

我们编程时多少会遇到需要处理“时间”的情况,在各语言平台下通常也会内置时间相关的API。“时间”作为一个问题领域:第一,非常常见;第二,往往比我们想象的要复杂!因此程序员常会因为轻视它而踩坑。实际上,就连语言和库设计者也不能例外。JavaScript语言在1995年诞生时因为只有十天时间,并且因为管理层要求“像Java”,所以内建的Date直接照搬了Java 1.0中java.util.Date的设计。然而该API却非常糟糕,以至于在1997年Java 1.1中就被deprecated了。不幸的是,因为种种原因,此API却一直在JavaScript中沿袭了20多年至今。这些年以来,在JavaScript社区中出现了许多非常优秀的类库和框架,2011年诞生的Moment.js作为一个仅仅专门用于时间处理的库,也忝列其中。然而Moment.js至今仍然有一些重大缺陷。另一方面,Java 1.1之后的java.util.Calendar也仍然一直被诟病,从而出现了如Joda-Time这样的库,并成为了事实标准。可是Joda-Time也不是没有问题。最终直到2014年发布的Java 8,才包含了重新设计的java.time包。以Java和JavaScript为代表的主流工业语言及其社区的历史经验证明,设计一个好的时间API远比我们想象的要困难得多。本次分享将以JavaScript语言标准新的Temporal提案为核心,结合前述历史,探讨“时间”这一领域的各种编程问题和API设计问题。

交通指南

© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方