写点什么

JS基金会发布Dojo 2.0

2018 年 5 月 10 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

2018 年 5 月 2 日,Dojo 团队发布了 Dojo 第二版(Dojo 2)。Dojo 是一种为 JavaScript 开发人员扩展开发过程提供帮助的工具箱。Dojo 2 聚焦于开发人员对构建现代企业应用的需求,是在 2007 年发布 Dojo 1 的十多年后对 Dojo 的一次完全重写。Dojo 2 使用 TypeScript 构建,采用了基于组件的架构和虚拟 DOM。Dojo 2 在工具上做了大幅的改进,其中包括一种新的 CLI、集成的测试,以及一些连接 Dojo 与常见标准及工具的功能。

Dojo 2 关注于对现代 JavaScript 巨大改进的集成,并提供给开发人员使用。Dojo 的联合创始人和项目牵头者 Dylan Schiemann 给出了如下的介绍:

从很多方面看,Dojo 1 必须要先行一步。而当前的问题,更多的在于如何将各种功能以一致的方式整合在一起。如何创建具有 React 那样的响应能力、但是能够更好地扩展到更大规模组件上的功能?如何能自然而然地而非磕磕绊绊地实现国际化(i18n)。

我们正力图打破各种框架之间的隔阂。我们一直在推进,已使 Web 组件系统深受 Dojo 1 Widget 的影响。所以这里要指出的是,我们需要一个基于响应式组件的系统,但并不希望将开发人员锁定到 Dojo 中。因此我们实现了一套工具,用于导入或导出 Web 组件,以供在 Dojo 中使用或是在 Dojo 之外使用。

工具是 Dojo 2 的一个主要关注点。Dojo 2 提供了一种全新的 CLI 、集成的测试,以及一系列实现 Dojo 与常用标准和工具连接的功能。Dojo 2 的 Beta 测试人员 Rene Rubalcava 撰写了一篇博客文章,介绍了该即将推出的新版本。文中特别指出,非常容易实现将Dojo Widget 导出为可移植、符合标准的Web 组件:“在REPO 中运行命令 dojo build --element=src/createTwitterShareElement.ts,之后该组件就可以在 Web 页面中使用了”。当被问及在 Beta 测试中接触到的所有特性中他最喜欢哪个时,Rubalcalva 进一步做了如下的解释:

Widget 导出特性可以作为人们即刻开始使用 Dojo 2 的一个绝佳入口。这是一个很棒的特性!我之前从未在框架中看到这样的特性。在我看来,用户将会从该特性中受益匪浅。它使得开发人员可完全聚焦于组件的创建。CLI 非常好用。

CLI 提供了多种好特性,人们可以从中发现大量可用之处。其中之一,就是使用 CLI 为应用赋予主题。开发人员可以引入 Dojo 提供的一些默认的 Widget,而 CLI 则提供了将主题应用到 Widget 和应用的工具。

Dojo 中内建了一个基于 CSS Modules 的主题系统。所有内建 Widget 可主题化(Themeable)。根据 Dojo 的主题文档,可直接使用 CSS Modules 的组合(composition)功能实现主题的扩展。想要着手创建主题的开发人员,可遵循文档中给定的一个教程

Dojo 的前期版本因文档质量而饱受批评。因此在 Dojo 2 中,文档是核心团队的一个主要关注点。据 Schiemann 介绍:

只有通过了很好的测试和文档化,代码才能加入到主分支(Master)中。我们全面掌握人们学习并尝试以此方式记录文档的情况。我们在 Dojo 网站上推出了一个很好的系列教程,其中涵盖了人们想要做的头 50 到 100 件事情。

感兴趣的开发人员,可以从 Dojo 教程入手,就一些常见的问题及其解决方案查阅指南(Cookbook),或是直接深入翻阅文档

对于熟悉 React 的开发人员,可能会发现 Dojo 2 相对比较易于上手。当被问及如何比较 Dojo 与其它一些现代 JavaScript 框架时,Schiemann 表示,Dojo 与 React 最为相似,但 React 遵循的原则是允许开发人员灵活选择所使用技术栈的各个部分,而 Dojo 2 对前端应用的各个部分都具有自身倾向性的默认设置。Rubalcava 对此给出了进一步的解释:

React 是一个很好的软件库,非常棒的 UI 框架,并且十分灵活。但是对于团队工作,同样的灵活性会使新加入的团队成员难以融入。而使用 Dojo 2 时,它支持 JSX,团队成员将具有十分类似的虚拟 DOM 体验。当在团队环境中合作开发时,对所有内容的封装将使新团队成员很容易上手。

Dojo 2 是受 JS 基金会支持的一个开源项目。JS 基金会还为 jQuery、webpack 和 lodash 等关键 JavaScript 项目提供法律上的和管理上的支持。有意参与 Dojo 开发的开发人员,可参考给出在GitHub 上的贡献指南,或是在 Dojo Gitter Channel 上与团队和社区开展直接的交流。

查看英文原文: JS Foundation Announces Dojo 2.0 Release

2018 年 5 月 10 日 19:001782
用户头像

发布了 366 篇内容, 共 88.6 次阅读, 收获喜欢 161 次。

关注

评论

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

写给大忙人看的内存管理

cxuan

后端 操作系统

超级专家术语学习机

程李文华

深入理解队列:LinkedBlockingQueue源码深度解析

独钓寒江雪

阻塞队列 LinkedBlockingQueue Queue

【week05作业】

chengjing

如何通过调试学习 nginx ?

张小方

c++ nginx 高性能 后端开发 服务器端开发

架构师训练营第5周-一致性hash算法总结及作业

傻傻的帅

极客大学架构师训练营

面试官:反射都不会,还敢说自己会Java?

码农月半

Java Java 面试 反射 大厂面试 java反射

啃碎并发(一):Java线程总述与概念

猿灯塔

游戏夜读 | 跟风说一说爬虫

game1night

hash一致性算法与优化

Mr.Monkey

「架构师训练营」第 5 周作业 - 一致性哈希算法

guoguo 👻

极客大学架构师训练营

正确的做事比做正确的事更重要

魔曦

架构师 极客大学架构师训练营

因为我的一个低级错误,生产数据库崩溃了将近半个小时

鄙人薛某

Java MySQL 数据库 故障定位

阿里P7岗位面试,面试官问我:为什么HashMap底层树化的标准元素个数是8

鄙人薛某

Java hashmap 面试题 哈希

一篇文章深入理解分布式锁

独钓寒江雪

redis 分布式锁

20道Redis面试题(含答案)面试官会问的我都找到了

你是人间四月天

redis Spring Cloud Java 面试 redis6.0.0 Redis项目

架构师训练营第 5 周——学习总结

在野

极客大学架构师训练营

架构师课程第五周 作业

杉松壁

让你大显身手——掌握RocketMQ与Kafka中如何实现事务

小谈

kafka RocketMQ Java 面试 JVM原理 大厂面试

最强总结——分布式事务处理方式

小闫

分布式 分布式锁 Java 面试 分布式存储 分布式缓存

【week05】总结

chengjing

面试官80%会问的分布式事务中的“最大努力通知”事务

无予且行

Java MySQL 面试 事务 java面试

你那么追捧的 SpringBoot,到底替你做了什么?

爱java爱自己

spring

数酒瓶童谣:从99数到0

程李文华

架构师训练营 一致性Hash算法Java实现

Cloud.

记录一次拼多多Web前端面试【一面+二面+hr面】

阿文

Spring Cloud Spring Boot Web Java 面试

解决死锁的4种基本方法(建议收藏)

小吴选手

Java 死锁

这是什么神仙面试宝典?半月看完25大专题,居然斩获阿里P7offer

码哥小胖

Java spring 面试题 java面试 大厂面试

没有微服务项目经验,就别去面试官那里送人头了

小谈

Java 架构 面试 微服务 SpringCloud

深入理解ThreadLocal:拨开迷雾,探究本质

独钓寒江雪

源码分析 ThreadLocal

架构师训练营作业 (第五周)

王海

极客大学架构师训练营

2021年,算法还“香”吗?

2021年,算法还“香”吗?

JS基金会发布Dojo 2.0-InfoQ