使用 dpdm 定位 JavaScript/TypeScript 中的循环依赖

2019-07-19
阅读 4 分钟
7.9k
在写大型项目的时候, 一不小心就会踩到直接循环依赖的坑里面, 所谓直接循环依赖, 是指在模块工厂函数中, 对其它依赖于自己的模块的成员有直接调用的情况. 比如:

使用 ink + react 制作一个命令行的在线五子棋游戏客户端

2019-04-19
阅读 2 分钟
3.2k
Ink 是 React 在命令行中渲染系统的一个实现, 在 GitHub 上已经有 1w+ Star. 看着蛮好玩, 因此尝试着写了一个五子棋游戏, 经过若干天的划水, 终于初见成效了!

web 全架构系列(一): 整体分层及各层模块化

2019-03-22
阅读 1 分钟
2.1k
这一系列文章, 旨在描述面对一个从零开始的 B(C)/S 应用的时候, 如何去搭建一个业务无关的平台, 承载上层应用流量. 这里要强调这个平台的几个特点:

cocos2d-x (js-binding)游戏开发解决方案设计稿

2018-11-02
阅读 1 分钟
2.4k
简介 此文描述使用cocos2d-x(js-binding)进行三端同步的游戏开发方案设计, 主要包含: 两种场景: native(Android/iOS) html5(canvas/WebGL) 三个问题: 开发: 开发时能够动态更新脚本文件, 类似于RN中的Live Reload 打包: 热更新支持(native), 条件编译, 代码混淆 热更新(native): native版本与热更新版本控制, patch更新

iclipboard: 一个更好用的复制文本到剪贴板的 npm 包

2018-11-02
阅读 1 分钟
7.3k
最近开发遇到一个需求, 要把一串文字复制到剪贴板, 然后就看了下 github, 发现了一个 star 2W 多的库 clipboard, 想都没想就拉来用了, 结果发现这货真特么不是一般的难用, 特别是和 react 或者 vue 绑定的时候, 简直不想吐槽.

从零认识 DOM (一): 对象及继承关系

2018-11-02
阅读 1 分钟
4.1k
先上图为敬! 说明: 图中包括了大部分 DOM 接口及对象, 其中: 青色背景为接口, 蓝色背景为类, 灰色背景表示为 ECMAScript 中的对象 忽略了一部分对象, 包括: HTML/SVG 的具体元素对象 Canvas/WebGL/Video/Audio 相关 Event 相关 红虚线框内为 DOM 中关系比较复杂的部分, 将会是重点认识对象, 外部的为一些孤立的对象接口(...

在TypeScript项目中像PHP一样使用魔术变量

2018-08-22
阅读 2 分钟
3.5k
PHP 当中有许多很有用的魔术变量, 比如__CLASS__, __METHOD__之类. 但是typescript中并没有. 因此我写了一个插件typescript-magic-variable-plugin来使用它们, 源代码已经放到了GitHub上: [链接].

TypeScript 3.0 + React + Redux 最佳实践

2018-08-17
阅读 3 分钟
9.7k
首先声明, 这篇文章是想说明一下最新版本的 TypeScript(3.0) 的新特性带来的极大的 React 开发体验提升. 而不是如何利用 TypeScript 开发 React 应用.

python爬虫实践: 豆瓣小组命令行客户端

2018-08-11
阅读 4 分钟
2.6k
主要特性 前一阵重新组织了一下代码, 加了命令行help信息, 用起来更方便了一些 初步实现了豆瓣小组及用户相关的API爬虫和请求 基于requests和lxml, 没有用高阶的诸如scrapy之类的爬虫工具 所有的命令行输出都是标准的json格式, 可以使用jq操作 安装 仅支持python3 {代码...} 使用 两种命令模式: 客户端接口调用和豆瓣模...

房间号生成器

2018-05-25
阅读 2 分钟
6.1k
在写游戏服务器中, 特别是卡牌一类的游戏, 经常需要让用户手动输入房间号加入一个房间, 为了用户友好, 这个房间号通常需要限定长度, 比如4位或者6位数字. 因此用数据库的auto_increment对用户不太友好, 其一是长度不固定, 其二是后期房间号会很长, 所以专门写了一个房间号生成器服务器, 其满足以下需求:

i18n-json-compiler 一个为TypeScript编写的国际化方案

2018-01-26
阅读 2 分钟
3.6k
在写一个APP的过程中, 难免会遇到要做国际化的时候. 也就是需要根据不同的地区, 展示不同的文案. 对于简单的文本, 直接用一个xml或者json或者一个变量就能搞定, 但是有时候需要在一句话中加入变量, 就比较麻烦或者说比较恶心了. 比如这样的情况:

造轮子系列(三): 一个简单快速的html虚拟语法树(AST)解析器

2017-08-20
阅读 5 分钟
13k
虚拟语法树(Abstract Syntax Tree, AST)是解释器/编译器进行语法分析的基础, 也是众多前端编译工具的基础工具, 比如webpack, postcss, less等. 对于ECMAScript, 由于前端轮子众多, 人力过于充足, 早已经被人们玩腻了. 光是语法分析器就有uglify, acorn, bablyon, typescript, esprima等等若干种. 并且也有了AST的社区标...

造轮子系列(二): 史上最简单的长连接通信协议及实现

2017-07-28
阅读 5 分钟
7.9k
现在写客户端或者网页的时候, 越来越多的需要与长连接打交道, 尤其是在这个老板动不动就要搞一个聊天系统的时代, 后端大哥们于是分分钟就能造一个基于TCP或者WebSockets的消息协议出来. 但是问题在于每做一个新项目, 后端大哥们就能造出一个新协议, 而且能有各种神奇的限制. 比如说要在长连接当中保持一个状态机, 发送某...

造轮子系列(一): 一个速度九分快的JSON解析器

2017-07-25
阅读 5 分钟
11.5k
前一阵子看到了一个Golang的JSON库go-simplejson,用来封装与解析匿名的JSON,说白了就是用map或者slice等来解析JSON,觉得挺好玩,后来有个项目恰好要解析JSON,于是就试了试,不小心看了一眼源代码,发现竟然是用的Golang自带的encoding/json库去做的解析,而其本身只是把这个库封装了一层,看起来更好看罢了。于是心...