调研了市面上其他厂商做的IDE,有些是基于electron或NW.js从头开始构建的,成本较高。还有很多是基于VSCode源码定制的,后来了解到Eclipse Theia这个框架,发现样式和功能与VSCode差不多,而且也部分支持VSCode的插件,最主要是能够通过扩展的形式去丰富IDE的视图功能,比VSCode修改源码更加好用。
结构化思维
在日常工作中,我们时常会碰到这样的情况,有的人讲事情逻辑非常混乱,罗列了很多事项,却把握不到重点,无法把一件事情说清楚。他说的每个字你都听得懂,然而组合在一起,你并不知道他想说什么,内容没有逻辑,语句没有重点。
这种思维混乱是典型的缺少结构化思维的表现。结构化思维非常重要,不仅仅体现在表达上,也体现在在我们分析问题的过程中。具备结构化思维,才能将问题分析地更全面、更深刻。
深入Vue源码理解diff算法
计算两颗树的结构差异并进行转化,传统的diff算法是通过循环递归对每个节点进行依次对比,算法复杂度达到 O(n^3) ,n是树的节点数,这个有多可怕呢?——如果要展示1000个节点,得执行上亿次比较。。即便是CPU快能执行30亿条命令,也很难在一秒内计算出差异。
深入Vue源码理解响应式原理和依赖收集
每当问到Vue响应式原理,大家可能都会脱口而出“Vue通过Object.defineProperty方法把data对象的全部属性转化成getter/setter,当属性被访问或修改时通知变化”。然而,其内部深层的响应式原理可能很多人都没有完全理解,网络上关于其响应式原理的文章质量也是参差不齐。
浅谈Typescript
TypeScript是一种由微软开发的开源、跨平台的编程语言。它扩展了JavaScript的语法,添加了可选的静态类型系统和很多尚未正式发布的ECMAScript新特性。TypeScript是JavaScript的超集,现有的JavaScript程序可以直接运行在在TypeScript环境中,TypeScript最终会被编译为JavaScript代码。
数据结构与算法基础知识点
数据结构是在计算机中组织和存储数据的一种特殊方式,使得数据可以高效地被访问和修改。更确切地说,数据结构是数据值的集合,表示数据之间的关系,也包括了作用在数据上的函数或操作。
100行代码实现Virtual DOM和render
在编写代码之前,我们需要先了解需要先来了解一下Virtual DOM是怎么样构建并渲染到浏览器的,常见的构建Virtual DOM的方法有两种,一种是jsx(react),另一种是template(vue)。
浅析 Web 安全与防护
在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷,Web 安全的对于 Web 从业人员来说是一个非常重要的课题,也许你对所有的安全问题都有一定的认识,但最主要的还是在编码设计的过程中时刻绷紧安全那根弦,需要反复推敲每个实现细节,安全无小事。
git filter-branch指令
git filter-branch 这个指令,是一个非常强悍的指令,《Pro Git》的作者说这是一个核弹级指令。除非特别清楚你准备干什么。否则不要抱着尝试的想法来试试,除非你想尝试下核弹的威力。
RxJS和响应式编程
RxJS 是一个库,它通过使用 observable 序列来编写异步和基于事件的程序。它提供了一个核心类型 Observable,附属类型 (Observer、 Schedulers、 Subjects) 和受 [Array#extras] 启发的操作符 (map、filter、reduce、every, 等等),这些数组操作符可以把异步事件作为集合来处理。可以把 RxJS 当做是用来处理异步事件的 Lodash 。