最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 2019-08-24
  • 本文字数:1271 字

    阅读完需:约 4 分钟

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

QCon北京2018大会上,贺师俊讲师做了《关于“时间”的各种编程与 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 设计问题。


讲师介绍


贺师俊


百姓网 前端工程师


贺师俊,网名 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 等话题的「优秀回答者」,可知乎 @贺师俊 向他提问。












完整演讲 PPT 下载链接


https://qcon.infoq.cn/2018/beijing/schedule


2019-08-24 17:172122

评论

发布
暂无评论
发现更多内容

总是说spring难学?看完这些spring的注解及其解释,对你来说就是So-easy!

Java 程序员 后端

成为架构师之前,你一定要懂的-CAP-定理,Java程序员必备书籍

Java 程序员 后端

快醒醒吧!互联网大厂面试必问的JVM底层原理,你还搞不清楚

Java 程序员 后端

怎样成为全栈工程师(Full Stack Developer),sqlproformysql使用教程

Java 程序员 后端

快速上手Apache,java递归求阶乘原理

Java 程序员 后端

快速鸟瞰并发编程,-呕心沥血整理的架构技术【2】,分层展示的架构图

Java 程序员 后端

并发编程专题三-JAVA线程的并发工具类,面试要掌握这几个关键点

Java 程序员 后端

微服务你得知道这些!从核心组件到远程调用方式以及HTTP通信方法

Java 程序员 后端

意犹未尽的一篇Nginx原理详解,面试官看了都忍不住点赞

Java 程序员 后端

怎样成为全栈工程师(Full Stack Developer)(1),已拿offer

Java 程序员 后端

意犹未尽的一篇Nginx原理详解,面试官看了都忍不住点赞(1)

Java 程序员 后端

强势出击!21天肝完这份字节面试题后直接斩获字节offer

Java 程序员 后端

微服务架构陷阱:过渡设计和设计不足,2021年Java开发前景如何

Java 程序员 后端

必知必会JVM四-垃圾收集器介绍,linux驱动开发入门与实践

Java 程序员 后端

并发编程专题四-原子操作和显示锁,java面试刷题

Java 程序员 后端

应届生想要找到一份Java开发的工作,需要达到什么水平?

Java 程序员 后端

很全面!每天一分享互联网大厂Java面试真题,java菜鸟教程实例

Java 程序员 后端

微服务网关与用户身份识别,JWT+Spring Security进行网关安全认证

Java 程序员 后端

总结历年各大厂面试官传授的面试经验+阿里P8级架构师整理的Java高频核心知识点

Java 程序员 后端

开发多年put、get、resize不知道,springcloud视频讲解

Java 程序员 后端

彻底理解coookie、session、token,mybatis的动态sql执行原理

Java 程序员 后端

强哥说Java--Java 变量,java面试逻辑思维题及答案

Java 程序员 后端

想进阿里、京东?这些多线程并发的技术要点你需要知道,Java程序员怎么优雅迈过30K+这道坎

Java 程序员 后端

快人一步!阿里爆款Java性能调优手册,源码,如何做到操作系统和并发同步结合

Java 程序员 后端

强哥说Java--Java 方法,kafka视频

Java 程序员 后端

怎么可能?面试会被Spring难住?Spring框架从入门到精通

Java 程序员 后端

怎么用Redis分布式锁才能确保万无一失?,15个经典面试问题及答案

Java 程序员 后端

恕我直言,我怀疑你们并不会用 Java 枚举,java分布式架构面试题

Java 程序员 后端

懵逼!阿里一面就被虐了,幸获内推华为技术四面,kafka高性能原理

Java 程序员 后端

应“云”而生的 Java 框架,带你手撸红黑树

Java 程序员 后端

开门见山的问MySQL:InnoDB一棵B+树可以存放多少行数据

Java 程序员 后端

关于“时间”的各种编程与API设计问题_QCon_贺师俊_InfoQ精选文章