工程化

  • 前言

    之前在项目中引入了scss-lint,参考 #19 。在用的时候踩到一些坑,记录在这个地方。

    1. 属性排序

    // 比如这样的代码会报错!
    .refresh {
      margin-left: 10px;
      color: $color;
    }
    

    2016-01-12 6 13 37
    显然不科学啊!margin-left当然应该排在color前面啊!
    后来发现scss-lint默认属性排序是按照字母排序的......参考这里 brigade/scss-lint#463
    解决方法:重新设置属性顺序,参考这里

    linters:
      PropertySortOrder:
        order: concentric
    


  • 缘由

    昨天在看《程序员修炼之道》,其中说到“破窗理论”是导致程序腐败的原因。忽然联想到前两天跟同事在处理某些gulp的warning时候的分歧。

    情况

    2016-02-18 5 26 51
    这是我们在启动一个项目装包时候碰到的warning(其实这个warning我已经看到过好多次了,不过一直忽视它)当时我认为时间紧迫,这些warning并不影响开发,不必理会。同事则认为应该改过来。

    体会

    其实这些warning虽然不影响功能,但是却是一个糟糕的做法,在最求足够好的程序员眼中是不可忍受的(当然,足够好也应该充分考虑时间因素)。当遇到“破窗”的时候,正确的做法是修复它。如果时间不允许,则应该设法让其不扩大影响(比如不再使用这种糟糕

  • 起因

    前些日子在用yeoman自定义自己的脚手架的时候忽然对终端交互产生了兴趣。
    这些下拉框,单选框,复选框到底是怎么做的呢?
    2016-03-12 5 16 13
    后来了解到yeoman用的是**inquirer.js**。

    使用方法

    1. 安装

    npm install inquirer
    

    2. 使用

    var inquirer = require("inquirer");
    var validator = require("validator");  // 我使用了validator校验手机号
    
    var questions = [
    
     //是否类型
      {
        type: "confirm",
        name: "sex"


  • 事出有因

    随着团队的扩大,项目的增多,脚手架的缺失显得愈发地不可忍受。其问题主要有二:

    1. 每次新建项目都耗时耗力,特别是对于新员工来说,更是有更多的学习和操作成本。
    2. 项目规范难以推行。比方说,都知道需要用scss-lint,eslint等这些进行语法检查,但是大家新建项目的时候往往图快和方便而省略掉引入那些校验,如果能统一从脚手架中生成,只要保证脚手架是规范的,那么会很大程度提高项目的规范度。

    yeoman的初尝试

    一开始我是想自己写一个的,思路是这样的:

    1. 准备好项目架构文件
    2. 把文件copy到目的文件夹
    3. 执行npm install 和bower install 装包
    4. 执行gulp构建
    5. 执行
  • 前言

    继上篇 #13 之后,我找到了这个scss-lint工具,用来控制scss代码的质量,效果还不错。

    使用方法

    安装

    gem install scss-lint 
    

    在安装的时候我碰到一个问题。

    ERROR:  Could not find a valid gem 'scss-lint' (>= 0), here is why:
              Unable to download data from https://rubygems.org/ - SSL_connect retur
    ned=1 errno=0 state=SSLv3 read server certificat