• 2012-02-05

    1step,软件开发第一步

    Tag:1step

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/190850298.html

    千里之行,始于足下 —— 《道德经》

    1step是1st step的缩写。

    有多少次,一个新想法在脑中成型,我摩拳擦掌,为即将诞生的一批新生代码兴奋不已。不过,真正的第一步,并不是打开编辑器/IDE狂飙代码,而是准备开发环境。

    以一个Ruby项目为例,我要做的是:

    • 安装RVM
    • 安装一个特定版本的Ruby
    • 安装bundler
    • 编写一个Gemfile
    • 创建lib目录,存放源码
    • 创建spec目录,存放测试
    • 创建一个Rakefile,用作构建脚本

    当然,这还是仅仅是一个个人项目,如果是公司项目,要准备的东西会更多。几乎每一次,要做的事情几乎都是一样的,做多了,自然就烦了。作为一个程序员,我们当然要把自己从这种繁琐中解脱出来。

    1step就是一次朝着这个方向努力的尝试。

    运行1step很简单,把下边这条命令贴到命令行里。

      bash -s stable < <(curl -s https://raw.github.com/dreamhead/1step/master/ruby/starter.sh)

    它就会替我们

    • 安装RVM,如果已安装RVM,但RVM过老,则升级RVM
    • 如果没有安装相应的ruby版本,则安装ruby
    • 为项目创建一个.rvmrc,存放项目配置
    • 如果没有bundler,则安装bundler
    • 如果没有Gemfile,就生成一个默认的Gemfile
    • 运行bundle install安装gem
    • 创建一个缺省的项目骨架
      • lib目录用以存放源码
      • spec目录用以存放测试,如果spec_helper.rb不存在,则创建一个缺省的spec_helper.rb
      • 如果没有Rakefile,则创建一个缺省的Rakefile

    目前,1step才刚刚起步,我只完成了在Mac环境下Ruby项目的准备。在后续的计划中,我还打算做Railsnode.js环境的安装。

    就个人而言,这个项目有几个有趣的地方:

    • 这是我第一次用shell脚本做项目。因为这个项目本身就是一个事关安装和设置环境的项目,假设目标机器上装有诸如Ruby这样的环境是不现实的,但装有shell还是可以预期的。正是因为第一次用shell,所以,我会因为变量和等号之间多了一个空格而百思不得其解。如果你愿意查看源码,会看到很多用法不是太地道的地方。
    • 部署在github上。这是从RVM和NPM上学来的。正如前面所见,只要在命令行里执行一条命令就可以了,无需用户下载保存,然后再去运行。这么做的好处是,我只要在github上升级了我的发布,所有人用到的命令就都是最新的了。目前而言,我每次提交都是一次最新的发布,真正做到了持续发布。
    • 这个项目其实是我脑子里一个更大想法的一部分。我和徐昊聊过,他对我这个想法的总结是,复制ThoughtWorks开发体验。
    1step是一个刚刚起步的开源项目,欢迎有兴趣的朋友加入。对了,除我之外的第一个贡献者是hkliya,多谢了!
    分享到:

    历史上的今天:

    引用地址:

    评论

  • 这才是合格的程序员该做的事情,哈哈。
    宁花机器一分钟,不花程序员一秒!