前言

作为一个开发为什么对一个vscode 这样的工具进行整理呢,因为vscode 非常的常用,它包含很多编辑器共同有的特征,这些特征帮助我们了解其他编辑器。

这里可能就有人疑问了,我们需要去非常的关注去了解一个编辑器嘛,不应该去关系并发问题吗。

对于这个问题现在的我是不疑惑的,现在动不动广告就是什么什么技术怎么样的,什么千万级并发,什么大数据啊。

有一个东西叫做互联网造词,以前难道就没有大数据吗?难道已经就没有人处理大数据吗,也是有的,以前好像就叫数据处理吧,然后就开始造词大量的进入ppt了。

同样千万级并发,一言不和就是千万级并发的,给你一台一核一G并发一个看一下。数据并发不仅仅涉及到开发,还设计到运维和测试,他们能够得出我们一台机器对于我们某个业务的承载量,需要多少机器,提升曲线是什么。

现在很多广告,或者为了吸引眼球的标题,往往给人一种设计了一款千万级的应用,只差一个程序员的感觉。

其实个人觉得代码的优化空间并不大,只有写的不过分的话,主要还是业务设计的优化空间大,复杂业务可以拆分成多个简单的业务,那么这些业务如果能拆分开负载到不同机器上,那么可以横向扩展来满足需求是比较好的,横向扩展上升也是有曲线的。还有一个是数据库设计问题。

并发问题同样看的是业务的复杂性,比如说解压业务,并发上万就很了不起了。那你要是说log业务,那么复杂度比较低,那么就是比较好处理的了。

似乎有点偏离主题了,前面提及的这些仅仅是为了说明一下或许不是那些听起来高大上的能帮助自己更好的工作,或许是一些我们不是那么关心的事情。

正文

vscode 是一款免费开源的轻量级编辑器,为什么说其轻量呢?因为其没有针对某一门语言进行设计,所以安装状态,它是轻量的,我们需要安装我们所需要的插件,然后启用,那么轻松就能获取intelisentse,debug 和git 仓库支持。

vscode 基于electron 进行开发,那么electron 是跨平台的,所以vscode 也是跨平台的。

elecrtron 接触过一段时间,感觉可以替换一下展示类的桌面开发,因为其开发效率还是很高的,然后生态还是可以的。当时还开发过能够提示开发效率的工具。

https://www.electronjs.org/ 这是electron 地址,更新比较快把,2018年的时候还是5版本,现在都14或者15了。文档也不错,当然有一些坑了,大部分可以看源码解决一下,如果真的是bug,那么就要思考一下是否拉一个分支,该一下用上去了。

electron 开源地址: https://github.com/electron/electron

monaco editor 是vscode 的核心组件,是基于浏览器的代码编辑器。那么知道这个有什么用呢? 因为monaco editor 是开源的,我们也可以基于这个编辑器,制作相应的工具。可能有人说了vscode 不就行吗?

为啥还要开发工具呢?因为有的公司的是允许外人开发的,公司提供开发环境,在该环境下用户允许的代码,才能在该公司的平台上完美运行。

同样vscode 拥有利用LSP提供了诸多语言的自动补全、定义跳转、代码格式化等于变成语言相关的问题。

同样vscode 体用debug adapter protocol 协议来提供对诸多语言的支持。

那么vscode解决了语言开发问题,语言调试问题,同样一个还差一个终端工具,这个终端工具就是Xterm.js。

Xterm.js 支持业界主流的浏览器,包括Chrome、Edge、FireBox和Safari。Xterms.js 可以与Electron开发的应用进行无缝集成。

xterm.js github 地址:https://github.com/xtermjs/xterm.js,有兴趣可以看一下。

vscode 是用typescript开发的,tyepscript和c# 的语法非常像,这是为什么,毕竟是同一个设计师————anders,所以作为c# 开发者开发typescript几乎只要过一遍语法就好,当然了同样需要一些js或者nodejs的基础。

知道了vscode 的一些开发组件或者一些思想,那么自己也能开发一些小工具。

下一节,介绍一些vscode的主要功能,或者编辑器的主要功能和用法。

最新文章

  1. 被滥用的for in循环
  2. Func系列2:常用模块及API
  3. Qt 按键长按的处理
  4. EasyUI form ajax submit到MVC后,在IE下提示下载内容的解决办法
  5. SignalR发布后不能生成signalr/hubs
  6. Linux安装后的系统配置
  7. Arcgis Desktop 9.3 安装
  8. LABjs、RequireJS、SeaJS 哪个最好用?为什么?
  9. 【IT人】如何提高阅读源代码的效率
  10. 第十三节,OPenCV学习(二)图像的简单几何变换
  11. 2种方式解决vue路由跳转未匹配相应路由避免出现空白页面或者指定404页面
  12. 【XSY2524】唯一神 状压DP 矩阵快速幂 FFT
  13. centos系统swap设置 查看swap分区的方法
  14. centos 安装npm node
  15. Day3作业及默写
  16. $.toJSON和eval的区别
  17. css实现背景图片模糊
  18. Python3.5+SQL+Prometheus+Grafana报表/监控
  19. Linux NFS 详解
  20. 954I Yet Another String Matching Problem

热门文章

  1. HCNP Routing&Switching之BGP路由宣告
  2. mall笔记
  3. js--Symbol 符号基本数据类型
  4. 【UE4 设计模式】状态模式 State Pattern
  5. 短短 29 天,应对高峰 100W+ 访问,看浙大如何交出满分答卷
  6. Java:HashTable类小记
  7. 实用小工具:screen
  8. vs2017和Qt5的字符编码问题
  9. 最小最大堆min-max Heap
  10. gcc中预定义的宏__GNUC__