当前位置:首页 > 技术分析 > 正文内容

Wing3.0体验版:极致顺畅,不止于快

年根将至,大家怀着欣喜期待的心情盼望着新年到来。小编也趁这个时机,“夜探”白鹭工具开发组,为大家带来Wing的最新消息。

本次透露,Wing研发团队将于近期发布一个新的版本——Wing3.0体验版!听说与旧版本相比,Wing3.0体验版采用了全新技术架构。那么,问题来了!新架构有什么不同?能给开发者带来什么“福利”?下面由白鹭时代架构师王泽带大家一探究竟:

在 Wing 2.0版本发布后的这些日子里,随着和开发者的不断交流,我们收到了白鹭开发者们对于Wing产品提出了很多意见。尤其是速度方面。

一位开发者告诉我们,现在的Wing在大型项目中不够顺畅。以至于开发过程中,总会被迫停下来“休息”一下。这成为了他写代码效率的瓶颈。就好像是一颗 i7最新的CPU,配了一块只有5400转的硬盘一般。他希望Wing作为一款IDE,应该可以让开发者更加容易地将想法转化成代码。

开发者所求,其实也正是我们所想。只不过,在之前的一段时间,我们显然没有满足大家的期望。因此,我们仔细审视了过去采用的技术、架构;反复论证原架构是否能够提供用户期望中的体验。并对是否重构展开激烈的论战。

如果重构,采用新的技术,那么我们相当于重做一个全新的产品。如果不重构,我们将在未来无法为用户提供预想的体验。其实,从内部讨论的意见中,我们也讨论过可以对现有的Wing进行优化以提高性能。但我们最后还是选择了使用新的架构重做一个Wing。因为,我们希望为开发者提供极致顺畅的开发体验,不论道路有多艰难。

Wing 3.0将会提供什么功能?

l 作为重新设计的Wing,原有 Wing2.5版本的核心功能会逐步移植过来。

l 更好的资源管理体验

l 更加便捷的文件搜索、文件跳转功能

l 130多项自定义设置

l 200多个可以绑定快捷键的命令。

l 14种颜色配置,兼容 SublimeText 和 Textmate、VSCode的主题格式。

l 40种语言的代码高亮功能,支持扩展自定义语言和XML标签。

l 浏览器与Node.js调试功能

另外,还将提供更多振奋人心的新功能:

l UI插件开发框架,允许开发者打造自己的IDE扩展

l 插件管理,更多的插件扩展机制,让每位用户有着更适合自己的极致体验

l 素材商城,丰富的代码、模版、设计资源,随心下载

l 更好的一体化游戏及应用解决方案

Wing还将支持引擎后续版本中的新特性,这里先卖个关子。{坏笑}

Wing 3.0 如何做到更好的开发体验?

Wing3.0采用 Electron进行重写,同时集成了VS Code编辑器的核心内容。

众所周知,Electron最初是Github为Atom编辑器开发的桌面应用运行环境,它集成了Node.js提供的本机资源的访问能力,同时将UI界面运行在基于Chromium的环境当中。随着硬件及网络环境的发展,及 Google、Microsoft 等巨头的不断加大投入,像 Electron 这样的基于Web技术的客户端框架已经成为了最主流的开发方式。比如 VSCode 就是 Microsoft 最近开源的非常优秀的基于 Electron 的跨平台文本编辑器。

在白鹭2014年初成立,开始做工具体系时,我们选用了当时最为成熟,也最有丰富代码类库积累的 AdobeAIR作为工具体系运行时架构。在这两年中,我们已经把 AdobeAIR用到了极致,Egret Wing 甚至有可能是世界上最为复杂、最大型的 AIR 桌面应用之一。但是随着 AdobeAIR的维护力度越来越小,同时由于他是个闭源的黑盒体系,在操作系统接口层面如果有一些问题的话很难解决。再加上以 Web为中心的桌面客户端架构在这一年不断完善,依托于 Google 提供的强大的 V8 + Chromium Blink内核运行环境,Github提供的完整的Electron 应用运行时,Microsoft 提供的成熟的 VSCode 与 Monaco 编辑器框架,我们决定“顺势而为”,站在巨人肩膀上,方能走的更远。

这个体验版主要做了什么?

这个体验版主要改进了代码编辑器的部分:

l 打开文件更快,因此切换顺畅,消除了卡顿的感觉。

l 更迅速的智能感知和错误提示。

l EXML智能提示中添加了对Imagesource属性的支持,能够自动提示res.json 中的资源名。

l TS编辑中添加了常用的egret代码片段

那么新的架构相比Wing2.5的优势?

l 首先是界面展现,新的Wing 3.0版本界面是基于React的虚拟DOM架构。这样做是为了追求DOM自身低能耗的优势,同时合理化的避免了DOM渲染效率低的问题,在对于IDE这样静态UI比例非常大的使用情景来说,有着极高的展现效率。并且在Wing 3.0的计划中,部分需要高表现力的UI界面将会直接使用WebGL来渲染,已达到更强的渲染效果。WebGL渲染在IDE文字渲染方面也会比Canvas渲染有优势,文字渲染更加清晰。

l 其次是大型项目加载,反思Wing 2.5 ,被吐槽最多的是大型项目的加载速度。在最初设计Wing时,它的定位是一款GUI编辑器,随着功能的逐渐丰富及强大后,原有的同步加载架构成为了Wing的加载性能瓶颈。Wing 3.0重构了文件加载部分,吸取Node.js及VS Code核心编辑器的优势,将所有核心文件系统访问异步化、延迟加载,极大的提升文件加载速度。

l 之后是代码编辑器, Wing 3.0抛弃了从 Wing 最初版本以来一直沿用的文本编辑架构,而是集成了微软的 Monaco 编辑器。与其他国内同类工具相比,本次架构更多的汲取了VS Code的核心优势。这使得编辑器的文本输入体验和技术上的可扩展性得到了很大的提升,特别是括号、引号智能补全,光标智能聚焦,代码片段模板等常用代码输入辅助功能得到了更加智能的提升,由于 Monaco 目前被用在Visual Studio Online 和 VS Code 中,所以这也是Wing 3.0 的体验版在很多方面看起来像 VS Code的原因。

l 最后是响应速度,IDE主要核心内容是处理字符串相关内容,得益于 V8 JS引擎强大的JIT编译技术,JavaScript在处理字符串时的计算效率至少高于ActionScript十倍以上,使得新的架构下语法着色、全局搜索等于字符串处理相关功能响应速度慢的槽点会得到根本性的解决。

Wing3.0将在什么时间发布

Wing3.0的第一个Prerelease版本将会在春节后的一段时间内与大家见面{害羞脸}。届时新版本将会包含Wing2.5的大部分功能。在那之前,我们会“流出”一些小版本供大家体验,搜集反馈意见,完善产品。最近我们将发布一个Wing3.0的体验版,开发者就已经可以感受到新架构带来的性能红利。简单概括,就是“快”。

这个体验版作为新架构下的“婴儿”,还有诸多功能没有完成。因此:

1、目前从Wing老版本的用户向3.0版本做迁移还是需要有一些代价的。因为老版本的一些功能在 3.0 体验版中尚未实现,我们正在抓紧时间开发。3.0最终版本会与2.0在配置文件结构、用户界面等诸多方面保持一致。为用户提供零成本迁移。

2、目前还没有搭建完插件体系。基于全新版本的 Wing插件体系正在开发中,会在未来的一个版本中进行呈现,并布置更多更细更密集的扩展点,同时提供更容易的插件开发过程,并与 Egret 老版本的插件完全兼容。期望与开发者与我们一同打造Wing的插件生态。

3、Wing 3.0体验版本还有很多体验优化可以进行进一步优化。比如与 2.0版本的快捷键没有完全统一,布局不够个性化等等。这些问题我们会聆听开发者的呼声,不断收集和改良。

我们期望Wing能够成为开发者们腾飞的翅膀。当我们每天戴上耳机,冲一杯咖啡后,就可以“基情澎湃”地敲击着键盘,把脑海中的点子变成程序,不受束缚,乐在其中。我们也将为此而努力。

最后,欢迎使用wing3.0体验版,无论是点赞还是吐槽,我们都会认真聆听,与你并肩,让Wing好,让开发更简单。

我是白鹭,我在这里守候。

我是白鹭架构师王泽,欢迎您试用Wing3.0体验版并告诉我们你的感受。您的每一条反馈,或许都将成为Wing的一个改变或新功能。强烈欢迎神吐槽,欢迎高质量喷子!我将回复这篇文章下的每一条留言,白鹭的引擎团队期待您对Wing的关注与支持!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3808.html

分享给朋友:

“Wing3.0体验版:极致顺畅,不止于快” 的相关文章

如何在GitLab上回退指定版本的代码?GitLab回退指定版本问题分析

在Git中,回退到指定版本并不是删除或撤销之前的提交,而是创建一个新的提交,该提交包含指定版本的内容。这意味着您需要将当前代码更改与指定版本之间的差异进行比较,并将其合并到一个新的提交中。如果您没有更新本地代码,并且您希望将 GitLab 仓库回退到指定版本,您可以使用以下命令:git fetchg...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

el-table内容\n换行解决办法

问题请求到的数据带有换行符 '\n'但页面展示时不换行statusRemark: "\"1、按期完成计划且准确率100%,得100分;\n2、各项目每延误1天,扣1分;每失误1次或者员工投诉1次,扣3分,失误层面达到公司级影响较大的,该项绩效分数为0\"\n&...

Gemini应用在Android上广泛推出2.0闪电模式切换器

#头条精品计划# 快速导读谷歌(搜索)应用的测试频道在安卓设备的双子应用中推出了2.0闪电实验功能,现已向稳定用户开放。双子应用通过谷歌应用运行,目前推出的15.50版本中,用户可通过模型选择器体验不同选项,包括1.5专业版、1.5闪电版和2.0闪电实验版。2.0闪电实验模型提供了更快的响应速度和优...