Theia 技术揭秘之 JSON-RPC 通信

2021-03-05
阅读 18 分钟
5.4k
实现了双向通信的统一接口,对比 cyrus-and/chrome-remote-interface 使用协议定义文件自动生成 Chrome Debugging Protocol 接口,两种实现方式,各有千秋。还可以参考 VSCode 的 Language server protocol Node 实现 microsoft/vscode-languageserver-node,里面包含了 RPC 的 IPC 版本 vscode-jsonrpcTheia 的 WebSock...
封面图

Theia 技术揭秘之 Theme

2021-03-03
阅读 15 分钟
3.6k
遵循了 VSCode 的 Theme 规范,可参考:Color ThemeColor Theme 包括 Workbench colors 和 Syntax colors语法高亮(Syntax Highlight)由两部分组成:Tokenization 和 Theming基于 CSS Custom Properties 实现主题切换通过插件加载/切换主题的方式值得借鉴语法高亮基于:vscode-textmate 和 vscode-onigurumaTheming在 V...
封面图

Cloud IDE Theia 插件系统拓展探索

2021-01-07
阅读 14 分钟
5.1k
Eclipse Theia 是一个可扩展的平台,可以利用最先进的 Web 技术开发多语言的 Cloud & Desktop IDE。

Theia 技术揭秘之布局系统

2020-12-08
阅读 16 分钟
6.1k
基于 PhosphorJS 可以实现 桌面端/Web 端统一实现类桌面的交互了解 PhosphorJS 的核心组件 Widget 的接口和实现了解 Theia 是如何基于 PhosphorJS 在 ApplicationShell 中进行页面组装的了解 Theia 前端界面是如何通过 FrontendApplication.start() 构建的了解 React 与 PhosphorJS 混写方法Theia 框架前端 UI 布局和 Se...

什么是HSTS,为什么要使用它?

2020-04-09
阅读 4 分钟
16.6k
翻译自:What Is HSTS and Why Should I Use It?作者:Tomasz Andrzej Nidecki,一位非常专业的 Technical Content Writer ,目前是 Acunetix 的技术内容撰写人,他是一名拥有 25 年 IT 经验的记者、翻译和技术撰稿人,Tomasz 早年曾担任《 hakin9 IT Security 》杂志的总编辑,并曾经运营过一个专门针对电子邮件安全的...

2019年,你是否可以抛弃 CSS 预处理器?

2019-10-29
阅读 10 分钟
3.6k
随着前端工程化的不断完善,CSS 预处理器已经成为项目中不可缺少的部分,很多人在项目技术选型阶段就会先选择一个 CSS 预处理器,绝大部分前端工程的脚手架也内置了一系列的 CSS 预处理的模版,大家已经习惯了享受 CSS 预处理器带来的书写代码的灵活流畅,反而将原生的 CSS 冷落在一旁。

设计模式: 从ES5 到 TypeScript ——单例模式

2019-06-24
阅读 5 分钟
3.3k
Back in 1994, a book was authored by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides that discusses 23 desgin patterns, titled Design Patterns: Elements of Resuable Object-Oriented Software. You may have heard of this book or the authors as Gang of Four (GoF).

怎样阅读 ECMAScript 规范?

2019-05-20
阅读 16 分钟
4.5k
Ecmascript 语言规范 The ECMAScript Language specification(又名:Javascript 规范 the JavaScript specification 或 ECMA-262)是学习 JavaScript 底层工作原理的非常好的资源。 然而,这是一个庞大的专业文本资料,咋一眼看过去,大家可能会感到迷茫、恐惧,满怀激情却无从下手。

在原生 React Native 应用中使用 Expo API

2019-04-24
阅读 4 分钟
8.1k
从今天开始,你可以在任何 React Native 应用程序中使用尽可能少或尽可能多的 Expo SDK。 我们已经花了很多时间构建和维护这些包含原生应用特性的跨平台 API,我们很高兴最终实现了向整个 React Native 生态共享这些 API,并将它们作为一个整体继续优化。

老生常谈之CSS的垂直居中

2018-12-27
阅读 4 分钟
4.3k
“44 年前我们就把人类送上月球了,但现在我们仍然无法在 CSS 中 实现垂直居中。”——James Anderson([链接] status/358603820516917249)

13 个示例快速入门 JS 抽象语法树

2018-07-17
阅读 9 分钟
11.2k
随着 Babel 的生态越来越完善,我们通常会使用 Babel 来帮助我们分析代码的解析过程。Babel 使用一个基于 ESTree 并修改过的 AST,它的内核说明文档可以在 这里. com/babel/babel/blob/master/doc/ast/spec. md) 找到。

前端进阶之 Javascript 抽象语法树

2018-07-16
阅读 13 分钟
9.7k
Babel 是 JavaScript 编译器 compiler,更确切地说是源码到源码的编译器,通常也叫做 转换编译器(transpiler)。 意思是说你为 Babel 提供一些 JavaScript 代码,Babel 更改这些代码,然后返回给你新生成的代码。

Taro 技术揭秘之taro-cli

2018-06-21
阅读 10 分钟
25.3k
使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5、App 端等)运行的代码。实现 一次编写,多端运行。 关于 Taro 的更多详细的信息可以看官方的介绍文章 Taro - 多端开发框架 ,或者直接前往 GitHub 仓库 NervJS/taro 查看 Taro 文档及相关资料。

了解 Resource Timing 及相关

2018-05-14
阅读 4 分钟
5.4k
所有网络请求都被视为资源。通过网络对它们进行检索时,资源具有不同生命周期。Resource Timing API 为网络事件(如重定向的开始和结束事件, DNS查找的开始和结束事件, 请求开始, 响应开始和结束时间等)生成有 高分辨率时间戳( high-resolution timestamps ) 的资源加载时间线, 并提供了资源大小和资源类型。

JS 装饰器,一篇就够

2018-04-20
阅读 8 分钟
58.2k
三年多以前,Yehuda Katz 首先提出了装饰器的概念。TypeScript 在 1.5 版本(2015)中发布了对装饰器的支持以及许多 ES6 的相关特性。 一些主流框架,如 Angular 和 MobX 等开始使用它们来增加开发者体验:这使得装饰器非常受欢迎,并给社区带来了一种已经稳定的错觉。

HTTP 实体与编码

2018-04-11
阅读 7 分钟
2.9k
可以被正确地识别(通过Content-Type首部说明媒体格式,Content- Language 首部说明语言),以便浏览器和其他客户端能正确处理内容。

HTTP 状态码整理

2018-04-08
阅读 8 分钟
6.5k
为了让服务器检查请求的首部, 客户端必须在发送请求实体前, 在初始化请求中发送 Expect: 100-continue 首部并接收 100 Continue 响应状态码.

HTTP报文详解

2018-04-04
阅读 9 分钟
17.2k
HTTP 报文是在 HTTP 应用程序之间发送的数据块。这些数据块以一些文本形式的 元信息(meta-information)开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。

Webpack 将代码打包成什么样子?

2018-04-02
阅读 9 分钟
6.4k
可能你学会了如何使用 Webpack ,也大致知道其工作原理,可是你想过 Webpack 输出的 bundle.js 是什么样子的吗? 为什么原来一个个的模块文件被合并成了一个单独的文件?为什么 bundle.js 能直接运行在浏览器中?

前端性能优化——关键渲染路径

2018-03-15
阅读 9 分钟
6.9k
从收到 HTML、CSS 和 JavaScript 字节到对其进行必需的处理,从而将它们转变成渲染的像素这一过程中有一些中间步骤,优化性能其实就是了解这些步骤中发生了什么, 即关键渲染路径。优化关键渲染路径是指优先显示与当前用户操作有关的内容。

HTTP 连接管理进化论

2018-03-08
阅读 5 分钟
6.6k
连接管理是一个 HTTP 的关键话题:打开和保持连接在很大程度上影响着网站和 Web 应用程序的性能。在 HTTP/1.x 里有好些个模型:短连接(short-lived connections), 持久连接(persistent connections), 和 HTTP 管道(HTTP pipelining)。

HTTP/1的缺点总结

2018-03-05
阅读 3 分钟
6.3k
HTTP/1 已经支撑我们走到今天,但是现代 Web 应用的需求迫使我们关注其设计缺陷。下面是它面临的一些比较重要的问题;这自然也是设计 HTTP/2 要解决的核心问题。

不知道层叠,别说你懂CSS

2018-02-28
阅读 3 分钟
2.7k
在实际的工作中,我们可能还有些疑惑,当有多个选择器作用在一个元素上时,哪个规则最终会应用到元素上?其实这是通过层叠机制来控制的,这也和样式继承(元素从其父元素那里获得属性值)有关。

常见的HTTP Method深度解析

2018-02-07
阅读 4 分钟
18.2k
在HTTP的发展过程中,出现了很多HTTP版本,其中的大部分协议都是向下兼容的。在进行HTTP请求时,客户端在请求时会告诉服务器它采用的协议版本号,而服务器则会在使用相同或者更早的协议版本进行响应。

WebSocket 详解

2018-01-23
阅读 16 分钟
55.3k
构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步。通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见。在 WebSocket 出现之前,我们有以下解决方案:

《编写可读代码的艺术》——表面层次的改进

2017-11-24
阅读 8 分钟
4.6k
程序员之间的互相尊重体现在他所写的代码中。他们对工作的尊重也体现在那里。 在《Clean Code》一书中Bob大叔认为在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。这也是同样的道理。 这样,代码最重要的读者就不再是编译器、解释器或者电脑了,而是人。写出的代码能让人快速理解、轻松维护、容易扩展的程序...

HTTPS详解

2017-10-23
阅读 7 分钟
28.9k
人们会用 Web 事务来处理一些很重要的事情。如果没有强有力的安全保证,人们就 无法安心地进行网络购物或使用银行业务。如果无法严格限制访问权限,公司就不 能将重要的文档放在 Web 服务器上。Web 需要一种安全的 HTTP 形式。

《简约至上》——话说简单与明确认识

2017-10-11
阅读 8 分钟
3.3k
像Flip、早期的大众甲壳虫汽车以及Twitter这样简单的产品,都会对市场产生深远的影响。它们简单易用,因此能够为大众所接受;它们值得信赖,因此会赢得用户;它们适应性强,因此总会发展出别具一格的应用方式。

SSH 详解

2017-09-28
阅读 7 分钟
19.1k
SSH(Secure Shell)是一个提供数据通信安全、远程登录、远程指令执行等功能的安全网络协议,由芬兰赫尔辛基大学研究员Tatu Ylönen,于1995年提出,其目的是用于替代非安全的Telnet、rsh、rexec等远程Shell协议。之后SSH发展了两个大版本SSH-1和SSH-2。

精读《你的深度思考能力,是如何一步步被毁掉的?》

2017-09-17
阅读 3 分钟
6.1k
judge 是居高临下的评判,往往是批评式,并且不一定了解内情。至于为什么不要评判,原因可以见此:每逢你想要批评任何人的时候,”他对我说,“你就记住,这个世界上所有的人,并不是个个都有过你拥有的那些优越条件。” ——《了不起的盖茨比》