过去的这一年,有一个很强烈的感觉就是自己的时间控制力变强了。这一年一共支持了公司的五个平台,持续更新开源项目 [cellar](https://github.com/xiaoqiang-zhao/cellar),本博客的建立和内容更新还有健身和户外。自我感觉做了非常多的事情,得益于 GTD 这个时间管理方法,其实就是把要做的事情写下来,然后拿出来一件做忘掉其他的,直到手上这件事完成再看下一件(可以休息一下)。在此做一个整年的 GTD 粗粒度列表。
拖和放是连个复合事件,由多个事件组成,所以不能用普通的事件处理来处理拖放遇到的问题,其中一个问题就是接收拖拽的元素是一组层叠嵌套的元素时,会出现多次响应 `drop` 事件的问题,这里提供一个解决此问题的方案。
GoF 四人组总结出23种设计模式,后人对设计模式的评价总体来说赞誉多一点,也有负面意见,认为设计模式就是语言这件衣服的补丁。JavaScript 这件衣服不算太破,前辈们总结出了14种模式来弥补语言设计的"缺陷",在很多事情上选择是对立的,所以这里的缺陷只是一种选择。其实设计模式另一个来源就是实践中总结出来的套路,比如适配器模式在平滑迁移老代码这种场景下特别好用。这篇文章是《JavaScript 设计模式与开发实践》的读书笔记,共勉。
本文是全栈系列第一篇,主要讲那些一定要知道的基础概念,有了这些基础概念才能更好的学习和使用 Linux,而不是零散的记住几个命令。除了基础概念还记录了一些我在使用 CentOS 是遇到的问题和解决办法,这些问题都是初学者大概率会遇到的问题。
早闻大名,开始学习,下面是学习过程留下的笔记,力图用最少的时间,了解 80% 的内容。这个笔记也是以书《MongoDB in Action》为主线来进行,会加一些官网和博客中的内容,这一篇是 Redis 的姊妹篇。
NPM 的全称是 Node Package Manager,原本是一个 NodeJS 包管理和分发平台,但是浏览器端运行的 JS 也缺一个第三方包管理平台,后来在社区的推动下 NPM 可以管理全部的第三方 JS 包,包括 Node 端和浏览器端,浏览器到目前为止还没有原生支持包管理,现在浏览器端项目的包管理一般借助脚手架来实现。NPM 可以算作前端的必备技能,这里介绍一些基础知识和典型场景下的技巧。
正则一直是一块硬骨头,有很多写了几年代码的人依然搞不定这玩意,今天我来换个思路学正则。先给出“正则能做什么”,再传授“解析语法与技巧”,然后给出我收集整理的一些常用正则,最后从“原理与性能”出发对各种正则方案优中选优。
版本管理是软件开发和发布中一个非常重要部分,混乱的版本会大大的缩短一个软件的寿命。我终于有幸看到这篇文章来讲述“语义化版本控制的规范”,作者是Tom Preston-Werner(Gravatars 创办者, GitHub 共同创办者),这些规则是根据(但不局限于)已经被各种封闭、开放源码软件所广泛使用的惯例所设计,为叙述方便,下面以作者作为第一人称来叙述这套规范。
服务器端渲染简称 SSR(server side render),就是在服务器端将数据和 HTML 融合后返回给浏览器,多年前的 JSP 不就是这么做的吗,我们当初为什么抛弃这种模式,现在为什么又重提这种模式,是换个轮胎开倒车吗,还是爱情买卖?当初是你要分开,分开就分开,现在又要用真爱,把我哄回来...
Vue-cli 是创建 Vue 项目的脚手架,但是不像 Angular 和 React 脚手架那样提供大而全的功能,而是让使用者通过学习其他开源工具(如 Express,webpack 等)来根据自己的项目定制脚手架。两种思路各有优劣,这里不做评判,关于这一点可以在知乎看 大漠穷秋 和 尤雨溪 的论战。由于 Vue-cli 脚手架的特点,我们需要深入了解 Vue-cli 的源码,才能更好的配置自己的脚手架,所以这篇文章来了。cli -> Command Line Interface for batch scripting.
CSS 和 JS 都处在一个快速发展的阶段,不断有新特性加进来,想要知道哪些可用哪些还得等等再用,就需要知道这个特性在标准中的进行到哪一步了还有浏览器支持情况怎么样,这篇文章介绍一个特性成为标准都有哪几步,各步又是什么意思。
号称最好用的前端IDE,Windows 和 Mac 上各用了一段时间,感觉确实不错分享出来。版本上从8一直用到11,在设置上9到10有一次比较大的调整,下面的设置大部分是从10的使用中记录整理而来,也有一小部分来自于11的使用经验,但是不用做任何区分,因为他们是兼容的。WebStorm在下面简写为WS。