臨池不輟

feed:https://keelii.com/atom.xml
cron:12 * * * *
前端开发工具 - 编辑器篇
published:2011-05-12T02:20:04.000Z
updated:2011-05-12T02:20:04.000Z
公司分享会上自己总结的一些关于前端开发的工具应用知识
前端,改变
published:2012-08-19T02:20:04.000Z
updated:2012-08-19T02:20:04.000Z
部门分享 ⎡前端,改变⎦,一些个人对前端的见解和想法前端是一种介于程序和设计之间的契合,拥有程序严谨逻辑的同时也存在设计的感性,前端是设计师的代码实现更是一门艺术。
测试文章
published:2016-06-10T10:04:47.000Z
updated:2016-06-10T10:04:47.000Z
¶标题一¶标题二¶标题三¶标题四¶标题五¶标题六Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmodtempor incididunt ut labore et dolore magna aliqua. Ut...
JavaScript 节流函数 throttle 详解
published:2016-06-10T22:52:57.000Z
updated:2016-06-10T22:52:57.000Z
在浏览器 DOM 事件里面,有一些事件会随着用户的操作不间断触发。比如:重新调整浏览器窗口大小(resize),浏览器页面滚动(scroll),鼠标移动(mousemove)。也就是说用户在触发这些浏览器操作的时候,如果脚本里面绑定了对应的事件处理方法,这个方法就不停的触发。这并不是我们想要的,因为...
免费 https 证书(Let's Encrypt)申请与配置
published:2016-06-12T10:04:47.000Z
updated:2016-06-12T10:04:47.000Z
之前要申请免费的 https 证书操作步骤相当麻烦,今天看到有人在讨论,就搜索了一下。发现现在申请步骤简单多了。¶1. 下载 certbotgit clone https://github.com/certbot/certbotcd certbot./certbot-auto --help解压打开执...
可能是 Windows 下最漂亮的 Gvim 配置了
published:2016-06-13T13:25:57.000Z
updated:2016-06-13T13:25:57.000Z
一直以来被称为编辑器之神的 vim 在 Windows 下很难发挥其强大的功能,本文从实用的角度阐述如何调校出一个比较好用的 vim不过仍然要说明下,在众多 vim 构建版本中 Mac OS 平台的 MacVim 是我认为最好用的一个版本。由于自己公司主力用 Windows,又因笔者是一枚对编辑器颜...
Windows 下使用 MinGW 编译安装 (g)vim 添加 lua 等编程语言支持
published:2016-06-14T02:39:40.000Z
updated:2016-06-14T02:39:40.000Z
vim 一些插件需要其它编程语言支持,比如 neocomplete 自动补全插件需要 lua官方下载的 vim 版本是不带这种第三方语言支持的,得自己手动编译一个支持的版本。但是 Windows 下编译源代码需要选择一个 GUN 工具集,比较流行的有 Cygwin, MinGW。主要是为了使用一些编...
《JavaScript 权威指南》读书笔记 3 - 类型、值和变量
published:2016-06-16T05:06:13.000Z
updated:2016-06-16T05:06:13.000Z
JavaScript 中的数据类型分为两类:原始类型(primitive type)和对象类型(object type)。原始类型包括数字、字符串和布尔值JavaScript 中有两个特殊的原始值:null(空)和 undefined(未定义),它们不是数字、字符串或布尔值。它们通常代表了各自特殊类...
《JavaScript 权威指南》读书笔记 2 - 词法结构
published:2016-06-16T05:06:13.000Z
updated:2016-06-16T05:06:13.000Z
词法结构(Lexical Structure)是程序语言的一套基础性规则,用来描述如何使用这门语言来编写程序¶字符集JavasSript 程序是用 Unicode 字符集 编写的,Unicode 是 ASCII 和 Latin-1 的超集,支持几乎所有在用的语言。ECMAScript 3 要求 J...
《JavaScript 权威指南》读书笔记 1 - 简介
published:2016-06-16T05:06:13.000Z
updated:2016-06-16T05:06:13.000Z
第一章 主要介绍 JavaScript 的大概情况、基本语法。之前没有 JavaScript 基础的看不懂也没关系,后续章节会有进一步的详细说明,我会通读一遍 《JavaScript 权威指南》,然后根据个人的理解整理出来我认为重要的核心概念,同时我也会参考原版英文版 JavaScript The ...
《JavaScript 权威指南》读书笔记 4 - 表达式和运算符
published:2016-06-20T11:10:28.000Z
updated:2016-06-20T11:10:28.000Z
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果。程序中的常量、变量名、数组访问等都是表达式简单表达式组合成复杂表达式最常用的方法就是使用运算符(operator)¶原始表达式是最简单的表达式...
《JavaScript 权威指南》读书笔记 7 - 数组
published:2016-06-23T11:10:28.000Z
updated:2016-06-23T11:10:28.000Z
数组是值的 有序集合。每个值(任意 JavaScript 数据类型)叫做一个元素,元素在数组中的位置叫索引。JavaScript 数组是无/弱类型的(untyped),数组元素可以是任意类型JavaScript 数组是 动态的,根据需要它们会增长或缩减,创建的时候不须要声明一个固定的大小JavaSc...
《JavaScript 权威指南》读书笔记 6 - 对象
published:2016-06-23T11:10:28.000Z
updated:2016-06-23T11:10:28.000Z
对象是 JavaScript 的基本数据类型。是一种复合值:将很多值聚合在一起。对象可以看做是无序集合,每个属性都是一个名/值对。这种基本数据结构还有很多叫法,比如「散列」(hash)、「散列表」(hashtable)、「字典」(dictionary)、「关联数组」(associative arra...
《JavaScript 权威指南》读书笔记 5 - 语句
published:2016-06-23T11:10:28.000Z
updated:2016-06-23T11:10:28.000Z
表达式在 JavaScript 中是短语(phrases),那么语句(statements)就是 JavaScript 整句或命令,语句以分号结束。表达式计算出一个值,语句用来执行以使某件事情发生¶表达式语句赋值语句、递增/减运算、delete 运算符删除对象属性、函数调用都是表达式语句gretti...
《JavaScript 权威指南》读书笔记 8 - 函数
published:2016-06-29T12:22:22.000Z
updated:2016-06-29T12:22:22.000Z
函数是一段 JavaScript 代码,定义一次,可以被执行多次。JavaScript 函数是参数化的:函数定义会包括一个形参(parameter)的标识符列表,这些参数在函数体中像 局部变量 一样工作,函数被调用的时候会为形参提供实参(argument)的值。使用实参的值计算返回值,成为该函数的 ...
《JavaScript 权威指南》读书笔记 9 - 类和模块
published:2016-07-02T05:58:30.000Z
updated:2016-07-02T05:58:30.000Z
每个 JavaScript 对象都是一个属性集合,相互之间没有任何联系。在 JavaScript 中也可以定义对象的类,让每个对象都共享某些属性,这种「共享」的特性是非常有用的。类的成员或实例都包含一些属性,用以存放或者定义它们的状态,其中有些属性定义了它们的行为(通常称为方法)。这些行为通常是由类...
使用 lisp 简单描述加法运算
published:2016-07-04T01:32:45.000Z
updated:2016-07-04T01:32:45.000Z
最近在看 MIT 公开课-计算机程序的构造和解释,即使你像我一样根本没学过 lisp 也能看懂下面这段代码,这段代码展示了怎么实现加法运算,这种我们几乎从来不会去想为什么的问题,这几行简单的代码告诉我们如何计算出 3 + 4 的值由 皮亚诺 算术定义的求 x 和 y 之和的过程; Define a ...
《JavaScript 权威指南》读书笔记 10 - 正则表达式的模式匹配
published:2016-07-06T04:43:30.000Z
updated:2016-07-06T04:43:30.000Z
正则表达式(regular expression)是一个描述字符模式的对象。在 JavaScript 中 String 和 RegExp 都定义了相关方法对文本进行模式匹配、检索和替换¶正则表达式的定义JavaScript 中的正则表达式用 RegExp 对象表示,可以使用 RegExp() 构造函...
《JavaScript 权威指南》读书笔记 11 - 服务器端的 JavaScript
published:2016-07-10T11:47:18.000Z
updated:2016-07-10T11:47:18.000Z
¶用 Node 实现异步 I/ONode 是基于 C++ 的调整 JavaScript 解释器,绑定了用于进程、文件和网络套接字等底层 Unix API,还绑定了 HTTP 客户端和服务器 API。除了一些专门命名的同步方法外,Node 的绑定是异步的,且 Node 程序默认绝不阻塞,这意味着它们通...
《JavaScript 权威指南》读书笔记 13 - Web 浏览器中的 JavaScript
published:2016-07-14T06:11:08.000Z
updated:2016-07-14T06:11:08.000Z
¶客户端的 JavaScriptWindow 对象是所有客户端 JavaScript 特性和 API 的主要接入点。它表示 Web 浏览器的一个窗口或者窗体,并且可以用标识符 window 来引用它。Window 对象定义了一些属性,比如:// 页面跳转window.location = 'http...
《JavaScript 权威指南》读书笔记 14 - Window 对象
published:2016-07-26T03:35:42.000Z
updated:2016-07-26T03:35:42.000Z
本章介绍 Window 对象的属性和方法¶计时器setTimeout() 和 setInterval() 可以用来注册指定时间之后调用的函数,不同的是 setInterval 会在指定毫秒数的间隔里重复调用。它们都返回一个值,这个值可以传递给 clearInterval/clearTimeout,用...
京东单品页前端开发那些不得不说的事儿
published:2016-07-31T02:48:57.000Z
updated:2016-07-31T02:48:57.000Z
§简介前端的发展历程混沌时期初见端倪拨云见日单品页前端模块的结构与划分概览按什么维度划分模块整体核心模块模块内部结构前端技能树HTMLDOM 节点数同步渲染还是异步加载外链静态资源使用双协议的 URL删除元素默认属性给脚本控制元素加上类钩子CSS样式分类雪碧图适当使用 DataURI关于兼容性Jav...
《JavaScript 权威指南》读书笔记 15 - 脚本化文档
published:2016-08-12T07:36:59.000Z
updated:2016-08-12T07:36:59.000Z
每个 Window 对象有一个 document 属性引用了 Document 对象。Document 对象表示窗口的内容,它是一个巨大的 API 中的核心对象,叫做文档对象模型(Document Obejct Model, DOM),用来展示和操作文档内容¶DOM 概览HTML 或 XML 文档的...
JavaScript 浏览器事件
published:2016-09-29T09:22:29.000Z
updated:2016-09-29T09:22:29.000Z
¶JavaScript、浏览器、事件之间的关系JavaScript 程序采用了异步事件驱动编程(Event-driven programming)模型,维基百科对它的解释是:事件驱动程序设计(英语:Event-driven programming)是一种电脑程序设计模型。这种模型的程序运行流程是由用...
简单方法解决 Macbook 电源接口接触不良的问题
published:2016-10-04T09:22:29.000Z
updated:2016-10-04T09:22:29.000Z
Macbook 电源用的时候久了,接口里面的几个针脚弹性变差,有时候接通电源然而灯不能亮在网上搜索了下发现一个好方法:接电源那头是突出金属的,稍微打磨下去一点就可以了,亲测有效PS: 如果没有打磨工具可以直接找个空地面磨,有条件的话磨完再用砂纸抛光下就可以了来两张图片看看!mbp-power-cor...
平滑迁移 Octopress 到 Hugo
published:2016-10-25T05:27:20.000Z
updated:2016-10-25T05:27:20.000Z
¶原由自从新博客建立以来一直用 Octopress 这个博客框架来搭建静态文章页面。漂亮的默认主题、方便的发布到 github page 等功能吸引了我但就在最近因为家里的用 Macbook,刚好升级到了新版的 Sierria,杯具的是之前安装的 Octopress bundle 都失效了。调试了很...
PhantomJS & NodeJS 在京东网站前端监控平台的最佳实践
published:2016-11-17T01:55:41.000Z
updated:2016-11-17T01:55:41.000Z
§为什么需要一个前端监控系统需要监控系统解决的问题技术选型NodeJSPhantomJS架构设计架构概览架构简述解决方案前台规则录入常规监控高级监控可用性监控主动错误上报页面脚本执行错误监控页面主动上报后端页面抓取服务规则队列生成器类消息队列的实现长时持续处理器长时持续处理实现APIPhantomJ...
TrimPath 模板引擎使用指南
published:2016-11-21T04:39:49.000Z
updated:2016-11-21T04:39:49.000Z
TrimPath 是一款轻量级的前端 JavaScript 模板引擎,语法类似 FreeMarker, Velocity,主要用于方便地渲染 json 数据¶语法 Syntax¶表达式 Expressions表达式和修饰符(其它模板语言中叫做过滤器 filter)中间用 | 分割且 不能有空格${e...
sku 多维属性状态判断算法
published:2016-12-22T07:55:52.000Z
updated:2016-12-22T07:55:52.000Z
§问题描述确定规则解决方法缩小问题规模调整思路优化体验算法复杂度¶问题描述这个问题来源于选择商品属性的场景。比如我们买衣服、鞋子这类物件,一般都需要我们选择合适的颜色、尺码等属性先了解一下 sku 的学术概念吧最小库存管理单元(Stock Keeping Unit, SKU)是一个会计学名词,定义为...
关系代数的基本运算
published:2017-02-19T07:10:38.000Z
updated:2017-02-19T07:10:38.000Z
¶关系代数运算符集合运算符运算符含义英文并Union差Difference交Intersection笛卡尔积Cartesian Product比较运算符运算符含义$=σ$选择Sele...
Nginx 配置 Google fonts 反向代理开启 HTTP2/SSL 支持
published:2017-04-22T03:19:58.000Z
updated:2017-04-22T03:19:58.000Z
由于博客主题使用了 Google fonts PT Serif 字体,国内只能通过中科大的代理来使用 Google fonts 字体。然而最近发现其速度不稳定,响应时间有时候甚至超过 600ms。刚好因为自己有 vultr 的 VPS(带小尾巴) 就自己动手搭了个来用VPS 环境如下:Ubuntu ...
Sublime text 3 配置 ESLint 代码检查
published:2017-04-29T09:17:24.000Z
updated:2017-04-29T09:17:24.000Z
¶安装环境Windows 7 SP1 企业版Sublime text 3 Build 3162Node.js v6.9.5Yarn 0.23.2 (可用 npm 代替)¶安装 ESLint到你的项目根目录生成一个 package.json 文件,如果没有使用 yarn init -y 来自动生成ES...
jQuery data 方法的一个小特技
published:2017-05-03T09:59:45.000Z
updated:2017-05-03T09:59:45.000Z
通常我们在用 JavaScript 操作 DOM 元素的时候会往 DOM 上临时添加一些参数,用来记住一些状态,或者从后端取参数值等一般通过在 HTML 标签上添加自定义属性来实现,但是这样会不可避免的访问 DOM,性能上并不好。如果你使用 jQuery 的话建议使用 $el.data() 方法来取...
macOS 单独设置 command(⌘) 键点击功能
published:2017-10-03T17:10:27.000Z
updated:2017-10-03T17:10:27.000Z
由于最近全面切换工作环境到 Mac 上,快捷键基本上成了适应期的最大问题传统意义上像 Ctrl, Alt, Shift, Win, Option, Command 都属于 修饰键,只能和其它键配合使用才可以(Ctrl+c,Ctrl+v),单独敲击并没有效果但是 Win 键在 Windows 中被赋予...
macOS Sierra 开发环境配置指南
published:2017-10-07T17:19:27.000Z
updated:2017-10-07T17:19:27.000Z
本文来自于我自己配置两台 macOS 开发环境的过程,主要记录一些常用的配置技巧¶系统设置¶更改计算机名称macOS 默认的计算机名称「xx的xx」,我一般会把这个名字改成英文,在命令行中看起来会漂亮一点。修改 系统设置-共享-电脑名称 即可¶触控板设置轻点触控板为鼠标点击设置三指拖动¶Finder...
解决 seajs parseDependencies 方法引起的依赖解析错误问题
published:2017-11-03T15:51:27.000Z
updated:2017-11-03T15:51:27.000Z
使用 seajs 的过程中偶尔会发现 require 进来的模块甚至都没有加载。查看源代码之后发现 seajs 是通过正则表达式匹配出了模块 factory 中的 require 路径正常情况下,下面这个模块里面 require 的外部模块会解析出依赖 GLOBAL_ROOT/base/cookie...
又双叒叕写了一个 host 管理插件
published:2017-11-07T12:51:27.000Z
updated:2017-11-07T12:51:27.000Z
切 host 对于平常开发来说再正常不过了,可是「切 host 难」的问题一直没解决,因为手动修改 host 文件会有很多(系统dns、浏览器)缓存问题。经常听到xx说「我这是好的呀,你 host 有问题吧...」在 windows 下我一直使用 fiddler 来切换 host,很多人可能不知道这...
jQuery ajax 方法 data 参数默认 encode 失败的 bug
published:2018-05-26T02:20:04.000Z
updated:2018-05-26T02:20:04.000Z
使用 jQuery ajax 方法调用异步接口时 data 参数默认会被添加转码 encodeURIComponent,如下:$.ajax({ url: 'http://your.domain.com/action', dataType: 'jsonp', data: { ...
Fuzzy finder(fzf+vim) 使用全指南
published:2018-08-13T02:20:04.000Z
updated:2018-08-13T02:20:04.000Z
§简介优点安装使用用 vim 打开文件切换当前工作目录切换 git 分支shell 命令行补全配置核心命令 FZF_DEFAULT_COMMAND界面展示 FZF_DEFAULT_OPTS触发命令行补全 FZF_COMPLETION_TRIGGERVIM fzf 插件安装插件结语¶简介Fuzzy f...
VIM 代码片段插件 ultisnips 使用教程
published:2018-08-26T09:59:45.000Z
updated:2018-08-26T09:59:45.000Z
§安装配置依赖定义一个代码片段定义格式最小化的一个代码片段可视选择区的内容为占位符代码片段的参数内容解释器shell 代码vimscript 代码python 代码占位符选择自定义上下文常见用法行内连续展开使用正则代码片段使用 python 解释器 + VISUAL 模式实现代码注释功能¶安装Ult...
HTTPie 官方文档中文翻译版
published:2018-09-03T19:10:27.000Z
updated:2018-09-03T19:10:27.000Z
§主要功能特性安装macOSLinuxWindows 及其它开发版Python 版本使用例子HTTP 方法请求 URLQuerystring 参数localhost 的 URL 缩写自定义默认的方案请求项字符转义规则JSON默认行为明确的 JSON非字符串的 JSON 域表单普通的表单文件上传表单H...
译Python 中的 Socket 编程(指南)
published:2018-09-24T19:10:27.000Z
updated:2018-09-24T19:10:27.000Z
§说明原作者译者注授权开始背景Socket API 概览TCP Sockets打印客户端和服务端打印程序服务端打印程序客户端运行打印程序的客户端和服务端查看socket状态通信的流程分解处理多个连接多连接的客户端和服务端多连接的服务端多连接的客户端运行多连接的客户端和服务端应用程序客户端和服务端应用...
我理解的 iOS 与 Android 的区别
published:2018-10-15T19:10:24.000Z
updated:2018-10-15T19:10:24.000Z
事实上在讲清楚这个问题之前,必须知道一个所有人都无法拒绝的常识,即:对大多数人来说 iOS 绝对比 Android 好用。本文试着从使用者的角度出发谈谈自己对两个手机端操作系统的理解与认识¶iOS 为何好用决定一个操作系统好用与否的原因有很多,系统的功能健全、用户体验、稳定性、应用程序及其周边生态等...
《IT 狂人》中的摇滚精神
published:2018-10-21T19:10:25.000Z
updated:2018-10-21T19:10:25.000Z
前几天听说《生活大爆炸》将于 2019 年 5 月完成终结季(12季),一时间让我想起上大学那会刚开始看这部美剧的。起初是因为大学生活确实过的没意思,也是无意中在腾讯视频上点进去的。刚开始我是从第二季开始看的,后来大学毕业参加工作后就很少看了,一方面工作后确实时间少,一方面看大爆炸时间长了也会有一些...
谈谈技术驱动与尊重技术
published:2018-10-27T19:10:24.000Z
updated:2018-10-27T19:10:24.000Z
很多从事 IT 互联网公司工作的人(尤其是程序员)会常常提到「技术驱动与技术重视」的问题,大部分人在面临职业选择的时候也优先选择那些所谓的「技术驱动」型的公司。因为在这种公司里面技术氛围好,对自己的职业发展有帮助。这种想法肯定是无可厚非的。本文试着从大环境与自我两方面聊一下这个话题首先。在大家聊到这...
为什么 Youtube 广告更好看
published:2018-11-04T19:10:24.000Z
updated:2018-11-04T19:10:24.000Z
马上要到双十一大促了,无论你喜不喜欢,各种广告、短信都扑面而来。当大部分广告都在高呼打折、特价买买买的时候,大家似乎都忘记了自己想要买什么了。提到广告首先让我印象深刻的是 youtube 视频网站的广告。youtube 的广告一般大概两分钟,每次看到新广告总能让人感觉特别惊喜,同样的视频网站,国内的...
国内外购物网站的差异
published:2018-11-17T19:10:24.000Z
updated:2018-11-17T19:10:24.000Z
最近由于工作内容需要特地了解了一下国外在线购物网站的一些特点,过程中发现一些比较有意思的地方,记录下来同时聊聊我的感受我很少上国外购物网站买东西。毕竟做为个人来讲跨境消费是非常不方便的。但是我会通过信用卡购买一些服务类的产品,像虚拟服务器、域名、正版软件等。大概算是有一点国外网站的消费经历我研究了美...
为什么一些高赞公众号文章成为现代鸦片
published:2018-11-25T19:10:24.000Z
updated:2018-11-25T19:10:24.000Z
单看这篇文章的标题可能会有点言重,但是我更愿意记录下来给自己当做警钟。同时这也不是一篇聊历史的文章¶起因为什么会谈到这个话题,是因为最近新闻实在太多,无论是「金马奖台独」、「俞敏洪关于堕落的演讲」还是「D&G辱华」。每一次舆论的风口浪尖上总是会有一些公众号 站出来表达立场 ,我并不打算聊这三件事情中...
为什么前端工程师需要关注设计
published:2018-12-02T19:10:24.000Z
updated:2018-12-02T19:10:24.000Z
在很久之前我就说过同样的话,表达过我觉得做为前端工程师而言设计素养的重要性,今天我想聊天为什么我有这种观点¶泛化的设计实际上生活中设计是中无处不在的,大到建筑工程、工业设计,小到网页设计、产品设计。我认为设计的本质就是 理解你(或者你的用户)内心想法的一个过程,在完成了一个物件的物理功能后,你需要考...
ProseMirror 编辑器指南中文翻译版
published:2018-12-09T09:59:45.000Z
updated:2018-12-09T09:59:45.000Z
§简介 Introduction我的第一个编辑器 My first editor事务 Transactions插件 Plugins命令 Commands内容 Content文档 Documents结构 Structure标识与存储 Identity and persistence数据结构 Data ...
名不正则言不顺,是这样的吗?
published:2019-01-01T19:29:27.000Z
updated:2019-01-01T19:29:27.000Z
名正言顺这个成语大家都知道,尤其在一些政治典故中经常被提及。今天就来聊聊这个话题名正言顺的梗概出自于《论语·子路》中孔子和子路的一段对话:子路曰:“卫君待子而为政,子将奚先?”子曰:“必也正名乎!”子路曰:“有是哉,子之迂也!奚其正?”子曰:“野哉由也!君子于其所不知,盖阙如也。名不正,则言不顺;言...
理解比平等更重要
published:2019-01-06T19:29:27.000Z
updated:2019-01-06T19:29:27.000Z
很早以前就想聊聊这个话题,但是一直没机会。昨天看完电影《无名之辈》后让我心里突然有了一点感想。这便记录下来这部片子的剧情围绕着几小人物之间展开。一心想做协警的保安、一辈子想出人头地的劫匪、一个遭遇了车祸身体瘫痪的女孩、一心只想赚钱娶媳妇过日子普通男人…这些角色在我们现实生活中实在是太普通了,而且都处...
开源一个自己写的代码画板
published:2019-03-06T19:19:24.000Z
updated:2019-03-06T19:19:24.000Z
§代码画板 Code Sketch功能快捷键截图开发支持Code sketchGithub下载 macOS 应用(.dmg),基于 electron,不喜欢的也可以使用 Web 版 但非全功能支持版¶代码画板 Code Sketch最初写代码的地方...¶功能内置 Sass/Babel 支持HTML...
如何使用前端技术开发一个桌面跨端应用
published:2019-03-15T02:20:04.000Z
updated:2019-03-15T02:20:04.000Z
§一、定位需求二、整体设计应用风格桌面应用的设计应用标识的设计默认设置快捷键/可用性三、技术调研实现控制台集成现代化的前端框工作流提高程序的扩展性使用 electron 实现桌面应用三、框架的选择Render processMain process构建工具原生应用打四、分离开发环境区分开开发环境开发...
使用 Pixi.js 构建一个视差滚动器(第一篇)
published:2019-03-17T02:20:04.000Z
updated:2019-03-17T02:20:04.000Z
¶翻译对照原文:PART 1・PART 2・PART 3・PART 4译文:第一篇・第二篇・第三篇・第四篇关注 @chriscaleb这个系列的教程已经更新到了 PixiJS v4 版本。曾经玩过 Canabalt 和 Monster Dash,好奇他们是如何构建一个滚动游戏地图的?在这个教程中我们...
使用 Pixi.js 构建一个视差滚动器(第二篇)
published:2019-03-18T02:20:04.000Z
updated:2019-03-18T02:20:04.000Z
¶翻译对照原文:PART 1・PART 2・PART 3・PART 4译文:第一篇・第二篇・第三篇・第四篇关注 @chriscaleb这个系列的教程已经更新到了 PixiJS v4 版本。在这个系列教程中我们将探索如何构建一个类似 Canabalt 和 Monster Dash 的视差滚动地图游戏界...
使用 Pixi.js 构建一个视差滚动器(第三篇)
published:2019-03-20T02:20:04.000Z
updated:2019-03-20T02:20:04.000Z
¶翻译对照原文:PART 1・PART 2・PART 3・PART 4译文:第一篇・第二篇・第三篇・第四篇关注 @chriscaleb这个系列的教程已经更新到了 PixiJS v4 版本。欢迎再次来到这个系列教程的第三部分,这一节将会涉及到如何使用 pixi.js 制作视差滚动游戏的地图。整个教程到...
选择太多所以迷失方向
published:2019-03-25T02:20:04.000Z
updated:2019-03-25T02:20:04.000Z
前几天无意在微博上看见了《流浪汉沈巍自述》一文,此文来自一个上海的流浪汉语录。不同的是他并不是为了生计而流浪捡破烂,沈巍从小喜欢捡破烂,捡完破烂换了钱买书看。家庭环境不理解更不支持,到了社会上,他本来可以按大多数人眼中的 正常 人一样工作,一辈子当公务员。但是他还是改不了自己捡破烂的习惯,这样以来单...
也许 Markdown 并不是一个好选择
published:2019-06-06T18:33:24.000Z
updated:2019-06-06T18:33:24.000Z
我经常会使用 markdown 来写一些东西。比如:博客文章、技术文档什么的。但是时间长了总是会觉得编辑 Markdown 源码的写作方式太容易让人分心了。Markdown 确实是一个非常好的通用排版格式,因为它很简单,学习使用起来没有门槛。但是随着人们越来越多的使用 Markdown 创作,Mar...
复联4是一集电视剧,3才是一部电影
published:2019-06-20T18:33:24.000Z
updated:2019-06-20T18:33:24.000Z
相信复联4的热度也应该过了,今天我来聊天复联4的观影感受以及我对漫威系列电影的一些看法。当然我并不是一名合格的漫威迷,对漫威系列电影的一些细节也不是很了解,更没看过漫画。我只想说说做为一名普通的观电影者的感受。¶我是如何喜欢上漫威电影的我看的第一部温威电影就是《钢铁侠》,记得还是在上大学的时候。那种...
Nestjs 框架教程(第一篇:简介)
published:2019-07-04T01:01:00.000Z
updated:2019-07-04T01:01:00.000Z
¶教程目录请注意:本教程结合官方文档内容并添加了许多我自己学习过种中的理解,存在许多个人观点Nestjs 框架教程(第一篇:简介)Nestjs 框架教程(第二篇:入门)Nestjs 框架教程(第三篇:控制器)Nestjs 框架教程(第四篇:Providers)Nestjs 框架教程(第五篇:模块)N...
Nestjs 框架教程(第二篇:入门)
published:2019-07-04T01:02:00.000Z
updated:2019-07-04T01:02:00.000Z
这篇教程起,你将会学习到 Nest 的几个核心点。为了更好的了解 Nest 应用中的模块,我们将开发一个有基本 CRUD1 功能的入门级应用。¶实现语言Nest 是 TypeScript 写的,所以天生就很好的并且渐进地支持 JavaScript。¶依赖保证你的操作系统上安装的 Node.js 版本...
Nestjs 框架教程(第三篇:控制器)
published:2019-07-04T01:03:00.000Z
updated:2019-07-04T01:03:00.000Z
控制器(Controller)负责处理客户端请求并发送响应内容,在传统的 MVC 架构中控制器就是负责处理指定请求与应用程序的对应关系,路由则决定具体处理哪个请求。¶路由得益于 TypeScript,在 Nest 中我们可以使用类来实现控制器的功能,使用装饰器来实现路由功能。它们分别需要配合 @Co...
Nestjs 框架教程(第四篇:Providers)
published:2019-07-04T01:04:00.000Z
updated:2019-07-04T01:04:00.000Z
Provider 主要的设计理念来自于控制反转(Inversion of Control,简称 IOC1 )模式中的依赖注入(Dependency Injection)特性。使用 @Injectable() 装饰的类就是一个 Provider,装饰器方法会优先于类被解析执行。到这里我们应该要了解整个...
Nestjs 框架教程(第五篇:模块)
published:2019-07-04T01:05:00.000Z
updated:2019-07-04T01:05:00.000Z
模块(Module)是一个使用了 @Module() 装饰的类。@Module() 装饰器提供了一些 Nest 需要使用的元数据,用来组织应用程序的结构。每个应用都至少有一个根模块,根模块就是 Nest 应用的入口。Nest 会从这里查找出整个应用的依赖/调用图。@Module() 装饰器接收一个参...
Nestjs 框架教程(第六篇:中间件)
published:2019-07-04T01:06:00.000Z
updated:2019-07-04T01:06:00.000Z
中间件就是一个函数,在路由处理器之前调用。这就表示中间件函数可以访问到请求和响应对象以及应用的请求响应周期中的 next() 中间间函数。Nest 中间件实际上和 Express 的中间件是一样的,Express 文档中对中间件的描述如下:中间件函数主要做以下的事情:执行任意的代码对请求/响应做操作...
Nestjs 框架教程(第七篇:异常过滤器)
published:2019-07-04T01:07:00.000Z
updated:2019-07-04T01:07:00.000Z
Nest 框架内部实现了一个异常处理层,专门用来负责应用程序中未处理的异常。默认情况未处理的异常会被全局过滤异常器 HttpException 或者它的子类处理。如果一个未识别的异常(非 HttpException 或未继承自 HttpException)被抛出,下面的信息将被返回给客户端:{ "...
Nestjs 框架教程(第八篇:管道)
published:2019-07-04T01:08:00.000Z
updated:2019-07-04T01:08:00.000Z
管道(Pipes)是一个用 @Injectable() 装饰过的类,它必须实现 PipeTransform 接口。从官方的示意图中我们可以看出来管道 pipe 和过滤器 filter 之间的关系:管道偏向于服务端控制器逻辑,过滤器则更适合用客户端逻辑。过滤器在客户端发送请求**处理,管道则...
Nestjs 框架教程(第九篇:守卫)
published:2019-07-04T01:09:00.000Z
updated:2019-07-04T01:09:00.000Z
守卫(Guards)是一个使用 @Injectable() 装饰的类,它必须实现 CanActivate 接口。守卫只有一个职责,就是决定请求是否需要被控制器处理。一般用在权限、角色的场景中。守卫和中间件的区别在于:中间件很简单,next 方法调用后中间的任务就完成了。但是守卫需要关心上下游,它需要...
Nestjs 框架教程(第十篇:拦截器)
published:2019-07-04T01:10:00.000Z
updated:2019-07-04T01:10:00.000Z
拦截器(Interceptors)是一个使用 @Injectable() 装饰的类,它必须实现 NestInterceptor 接口。拦截器有一系列的功能,这些功能的设计灵感都来自于面向切面的编程(AOP)技术。这使得下面这些功能成为可能:在函数执行前/后绑定额外的逻辑转换一个函数的返回值转换函数抛...
我想要 AOP — 使用 AOP 分离关注点
published:2019-07-06T18:33:27.000Z
updated:2019-07-06T18:33:27.000Z
本文翻译自:I want my AOP关注点表示人们的一种特殊的意愿、理念或是某个感兴趣的领域。从技术角度来讲:软件系统包括若干核心的、系统级别的关注点。比方说:信用卡处理系统的核心关注点是处理交易,同时系统级别的关注点或许应该是处理日志、事务、一致性、授权、安全、性能等。许多这种关注点被叫做横切关...
漫谈哲学与编程
published:2019-08-25T18:33:24.000Z
updated:2019-08-25T18:33:24.000Z
谈到哲学,多数人都会直觉性的认为它是很高深的一门学问。实际上大多数情况并非如此,哲学研究的往往是非常简单的一些命题,而这些命题在常人看来可能并没有现实意义。比如说:到底是先有鸡还是先有蛋的问题;比如说:一个号称只给不能给自己理发的人理发的理发师到底能不能给自己理发的问题。当然本文的目的并不在于讨论这...
Java 并发与多线程教程
published:2019-11-24T18:33:24.000Z
updated:2019-11-24T18:33:24.000Z
§什么是多线程?为什么要使用多线程更好的利用单个 CPU更好的利用多个(核)CPU更好的用户响应体验更好的用户公允体验多线程与多任务多任务处理多线程处理多线程并非易事Java 中的多线程与并发并发模型Java 并发学习指引注:此文翻译自 Java Concurrency and Multithrea...
前端开发的瓶颈与未来之路
published:2020-05-11T02:18:33.000Z
updated:2020-05-11T02:18:33.000Z
§引子定义瓶颈前/客户端框架的瓶颈后/服务端框架的瓶颈TypeScript 语言的瓶颈打包工具的瓶颈未来前端开发的瓶颈到底在哪里,前端技术是否已经走到一个十字路口,全栈化的系统架构是否能改变目前的窘境?本文将根据作者自身的开发经历谈谈当下前端开发中遇到的一些问题和想法。¶引子近两年我一直在思考的一个...
从实际案例讲 Deno 的应用场景
published:2020-08-15T02:18:33.000Z
updated:2020-08-15T02:18:33.000Z
§简介特性安装Deno 内置命令deno rundeno evaldeno installdeno test实战初始化一个 NPM 包初始化 tsconfig编写 request 方法发布 NPM 包此篇文章实际上就是《前端开发的瓶颈与未来》的番外篇。主要想从实用的角度给大家介绍下 Deno 在我们...
Fabric.js 原理与源码解析
published:2021-05-09T02:20:04.000Z
updated:2021-05-09T02:20:04.000Z
§Fabric.js 简介使用场景Canvas 开发原理Fabric.js 源码解析模块结构图基本原理核心模块详解fabric.util 工具包fabric 通用类fabric.Canvas 类fabric.StaticCanvas 类fabric.js 的画布渲染原理requestRenderAl...
所谓的设计系统
published:2021-10-25T02:20:04.000Z
updated:2021-10-25T02:20:04.000Z
是的,我今天就想批判一下那些披着「设计(系统/语言)」外衣的研发工程师。设计系统(Design system)这个概念应该是从国外最先有的。它的定义是:A Design System is a set of interconnected patterns and shared practices c...
从《如梦令·昨夜雨疏风骤》读出人生三重境界
published:2022-05-15T09:59:45.000Z
updated:2022-05-15T09:59:45.000Z
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否,知否?应是绿肥红瘦。—— 李清照〔宋〕¶看山原是山 —— 一切景语皆情语开头两句「昨夜雨疏风骤,浓睡不消残酒」是交代场景。昨天晚上下着稀疏小雨,伴着大风。睡了一觉醉意仍然没有消退。浓睡不消残酒,此处用「浓」字形容沉睡,浓本来是形容液体的,「...
我做程序员这十年
published:2022-05-19T10:59:45.000Z
updated:2022-05-19T10:59:45.000Z
今天是个特殊的日子,十年前的这个时候我根本无法想像我可以在一家公司呆十年,坚持做一样工作十年之久。于是我就想要写点儿东西来回顾一下这十年的发生在我身上的事情。工作、学习、编程、生活。¶起因我接触电脑的时间比较早,大约在小学五、六年级的时候就有了微机课。似乎是邓小平爷爷的一句「计算机要从娃娃抓起」的原...