基于 shipit 的Node.js 应用部署方案

本文主要介绍如何基于shipit的自动化部署方案,可以支持测试环境、灰度上线、回滚等功能。 shipit介绍 shipit 是一个为 Node 应用部署开发的一个工具,主要有以下特色 全部使用 Javascript 开发 基于 orchestrator(gulp 核心组件) 开发的任务流程管理 官方提供核心部署流程支持 交互式 SSH 命令 非常容易扩展 安装以及基本用法,请看官方仓库 部署方案 »

我们的前端技术2015--编码规范

1:编码规范 1.1 javascript 编码规范 编码规范的选择是件非常容易的事情,网上有非常多得选择,我们使用的是 airbnb 团队在 GitHub 维护的airbnb/javascript。 选择这个规范主要因为 它是目前 GitHub 上最有热度的规范,有恐怖的24000+个 star 支持 ES6 版本(我们现在的项目全面使用 ES6进行开发) »

co 进阶用法

1: co中数组的使用 map 传入的函数,也可以是个 generator。下面的代码解释如何处理 代码:array-co /** * co array */ var co = require('co'); var fs = require('mz/fs'); var paths = ['node_modules/co/', »

谈谈 CSS Modules

最近几天由于这篇文章,让大家对 CSS Modules 有了很高的热情。我们团队已经使用 CSS Modules几个月了,所以在这里谈谈我们的经验。 我们的项目是使用React.js 开发,所以我们在开始开发的时候,为了能让我们的组件能够在多个项目中复用,我们开始调研单文件组件的写法,这期间看了React: CSS in JS,radium等内容,最终选择的方案是使用 radium 来写 css。 CSS in »

学习 redux.js 的 流水账

具体 redux 的使用请访问redux 本文主要是一个学习使用与源码的流水账,有点乱,多见谅。 有问题欢迎找我讨论,一起学习~ redux redux 是一个 Flux 架构的实现,react-europe 上的演讲可以看到很酷的功能(视频需翻墙) react 项目所有的代码都是可以 hot-reload,并且不丢失 state,这对于开发复杂的单页应用非常有帮助,基于大量 es6+ 特性开发,看源码也算是学习es6+ »

搞定immutable.js

什么是Immutable Data Immutable Data是指一旦被创造后,就不可以被改变的数据。 通过使用Immutable Data,可以让我们更容易的去处理缓存、回退、数据变化检测等问题,简化我们的开发。 js中的Immutable Data 在javascript中我们可以通过deep clone来模拟Immutable Data,就是每次对数据进行操作,新对数据进行deep clone出一个新数据。 deep clone /** * learning-immutable - clone-deep.js * Created »

基于gulp和webpack的前端工程化

我的GitHub: https://github.com/demohi 微博:@mdemo 本文样例代码 :https://github.com/demohi/learning-gulp 本文主要简单介绍一下基于gulp和webpack的前端工程化。 技术栈 React.js reFlux Node.js 我们的需求 基于CommonJS模块化开发 基于React.js的组件化开发(JSX) 为保证组件的复用, »

搞定JavaScript内存泄漏

先了解一下背景 本小节主要简述内存泄漏的背景,以及 Chrome 的Heap Profiler所用到的一些术语 众所周知JavaScript具有自动垃圾收集机制,不过随着前端页面越来越复杂,内存泄露问题还是时有发生。 JavaScript变量的内存占用 5种基本类型 数字(Numbers) (如 3.14159..) 布尔值(Booleans) (true或false) 字符型(Strings) (如 'Werner Heisenberg') Null Undefined »

JavaScript常见的内存泄漏原因

JavaScript 的垃圾收集机制 javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中的使用的内存。而在C和C++之类的语言中,开发人员的一项基本任务就是手动跟踪内存的使用情况,这是造成许多问题的一个根源。在编写javascript程序时候,开发人员不用再关心内存使用的问题,所需内存的分配 以及无用的回收完全实现了自动管理。 JavaScript中最常用的垃圾收集方式是标记清除(mark-and-sweep)。当变量进入环境(例如,在函数中声明一个变量)时,就将这个变量标记为“进入环境”。从逻辑上讲,永远不能释放进入环境的变量所占的内存,因为只要执行流进入相应的环境,就可能用到它们。而当变量离开环境时, »