为什么VSCode这么快
VSCode的性能非常好,让人感觉不到它是一个Electron应用。那么它为什么这么快,背后的实现原理是怎样的?
Visual Studio Code有哪些工程方面的亮点
这篇文章提到了VSCode将UI渲染与业务逻辑隔离,其中最重要的就是两大协议:Language Server Protocol 和 Debug Adapter Protocol
VS Code 是如何解决能耗和内存问题的?
针对文本的编辑,vscode 重写了 Text Buffer 的实现,数据结构选择了 Piece table。
对应的PR 。类似的Atom也使用C++实现了类似Piece Table的数据结构 (Atom's new concurrency-friendly buffer implementation)
其它值得一看的编辑器相关项目:
Xray
Atom团队基于Electron的新一代的编辑器。核心部分使用Rust开发,但现在已经不再更新了。
Xi-Editor :
使用Rust编写的编辑器后端。基于此后端已经有很多不同平台使用各种技术栈开发的前端了。类似的,Neovim 也是专注于后端与命令行端,现在已经有几十个前端实现。
值得读
Build Your Own React
一步步的实现一个自己的React。基于React16.8,所以其中包含Concurrent Mode、Fibers、Reconciliation、Hooks等的实现。
High Performance Go Workshop
作者是Go的维护者之一。这篇文章主要讲如何写Benchmark,Profile,编译器的优化,垃圾回收,以及一些性能优化的小机器。
Practical Go: Real world advice for writing maintainable Go programs
和上篇文章是同一个作者。一系列的文章介绍如何编写可维护的Go代码,包括包的设计,项目设计,API设计,错误处理,日志,并发,测试等等方面。
新项目
RedisInsight: The Redis GUI You’ve Been Looking For?
Redis Labs 发布了RedisInsight,基于之前收购的RDBTools开发,完全免费。可以浏览与操作Redis中的数据,在线或者离线进行完整的内存分析,集群管理、慢日志查看等等。
LocalStack
💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline!
Ristretto
Ristretto is a fast, concurrent cache library built with a focus on performance and correctness.