蒲公英 · JELLY技术周刊 Vol.13 跟 VSCode 学习如何开发大型 IDE 项目

旧街凉风 提交于 2020-08-06 11:47:21

HEADER

开发一个 IDE 很难么?这或许是件很难的事情,但当我们参考 VSCode 的技术构架来看,整个开发流程就会平滑顺畅很多,从内核开发、代码编辑器、视图结构到插件系统,在这整个技术构架中我们可以看到很多一个 IDE 开发中需要注意的方方面面。如果你对 VSCode 深入研究过,相信可以从中颇受启发,在此之前不妨先来看看本期推荐。

登高远眺

天高地迥,觉宇宙之无穷

基础技术

跟 VSCode 学习如何开发大型 IDE 项目

VSCode 是当下非常流行的微软开源的代码编辑器,它在满足多样性插件化生态的同时保证了软件的健壮和性能,这得益于其优秀的插件化内核架构设计。本文作者是蚂蚁金服云凤蝶团队成员,文中对 VSCode 的关键技术架构作了深刻的剖析和理解,包括内核分层隔离与扩展机制、依赖注入、命令系统、插件化架构等等,如果你正在打造一个可扩展的软件系统,这篇解读非常值得去学习参考。其实,VSCode 的优秀架构离不开其专注而克制的产品定位——“编辑器 + 代码理解 + 调试”,其他的内容交给社区生态来扩展。最完美的设计,往往是精简到极致,而无法再做减法了。

前端进阶:跟着开源项目学习插件化架构

微内核(插件化)架构被广泛应用于软件系统设计中,譬如 Vue 的插件机制 Vue.use(Plugin) 就是一个简单的插件化设计。微内核架构既能满足灵活扩展的特性,又不影响系统的稳定性。本文基于西瓜视频播放器项目来阐述微内核架构的实践应用,在播放器中,小到一个播放按钮大到一项直播功能特性都可以理解为一个插件模块。作者贴合简练的代码,讲述了插件系统中插件管理、连接和通信的全过程,非常通俗易懂。

图形编程

UI 交互动效合辑

这个合辑收集了近期较有创意的 UI 交互转场动效,可以看到许多不同于寻常转场交互的想法,比如波纹、图形变形与转场动画的结合,又比如利用弧形色块的变化进行的转场效果等等,目前已发布了8期内容,有网页动效设计需求的设计或开发都可以浏览参考,同时感受一下优秀动效设计中的缓动曲线。

AR 体验的“后浪”来了:ARCore Depth API 让遮挡难题迎刃而解

针对 AR 开发场景中景深算法的 Depth API 正式发布。有了这个 API,开发者在支持 ARCore 的 Android 设备上开发 AR 场景时可以更准确地处理虚拟物体与现实物体的遮挡关系,完全杜绝虚拟物体与透视关系不符的“贴图”问题,使得虚拟物体沉浸效果更为真实。文中还有更多的应用场景,并提供了海量动图演示。

桌面开发

Flutter 在桌面端的最新进展:支持打包 Windows 和 Linux 应用了

Flutter 的目标是支持尽可能多的平台和设备,我们已经知道它可以很好地在 iOS 和 Android 设备上运行了,那么它对桌面端的支持情况如何呢?Tim Sneath,Flutter 产品经理,在最近的一篇博文中分享了他们最新的进展,聊到了他们支持了打包 Windows 和 Linux 应用了,如何调用不同桌面系统的原生组件,以及更新插件模型来方便开发者更容易地支持不同的平台等工作。Tim Sneath 还分享了有开发者已经利用 Flutter 发布了最新的桌面端应用,你也可以跟随本文,尝试一下,看看 Flutter 桌面端能否满足你的需求。 译文:https://jelly.jd.com/article/5ef9e4ac7c53070156dd5b8a

服务端开发

Easy-Monitor3 开始你的Node.js内核性能监控之旅

Easy-Monitor3是一款基于 Node.js Addon实现的开源内核采样以及收集工具,提供完整的Web UI支持(APM),支持私有化部署,全平台支持。可用于内存泄露分析,性能瓶颈分析,监控告警等。

工具推介

AutoCannon:一款http压测工具

AutoCannon是一款使用node编写的压测工具,能比wrk生成更多负载,市面上类似的产品很多,老牌的ab,带有图形界面的soap ui等。不过AutoCannon可以方便的进行命令行调用,甚至还能在代码内调用,这对于写压测脚本来说就非常方便。另外它还能结合node clinic 一起使用,定位性能问题无往而不利。

沧海拾遗

沧海拾遗,积跬步以至千里

实现一个简单但有趣的 AR 效果

看完 Depth API 这样的 AR 后浪,不知道你有没有心动呢?如果你也想快速上手 AR,不妨来试试这样一个简单的效果,让你快速对 Web AR 有一个了解,这些基础能帮助我们在 AR 这条路上走的更远。

碰撞检测 -- 源自生活的特效

Web 中有很多常见的 2D 碰撞检测,掌握这些实用的小技巧,在特定需求的页面中会有更为出色的体验。你对这些方法熟悉么?还不了解的话可以进来试试看哦~「内含基于 Canvas 的运行实例、图片说明」

「蒲公英」期刊,每周更新,我们专注于挖掘「基础技术工程化跨端框架技术图形编程服务端开发桌面开发人工智能」等多个大方向的业界热点,并加以专业的解读;不仅如此,我们还精选凹凸技术文章,向大家呈现团队内的研究技术方向。

抬头仰望,蒲公英的种子会生根发芽,如夏花绚烂;格物致知,我们登高远眺、沧海拾遗,以求积硅步而至千里。

蒲公英 · JELLY技术周刊贡献指南

FOOTER

欢迎关注凹凸实验室博客:aotu.io

或者关注凹凸实验室公众号(AOTULabs),不定时推送文章:

欢迎关注凹凸实验室公众号

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!