123
 123

Sun 05 February, 2012

Click here to bookmark this link.Channel Image21:57 1step,软件开发第一步» 梦想风暴

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

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,多谢了!

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image17:01 Three Songs From Anvil’s Show in Athens, GA on 02/03/2012» Joey Gibson's Blog
I went to see the awesome metal band Anvil last night at the Melting Point in Athens, GA. They played a great show, and here are three highlights. The first video is the first two songs of the night, March … Continue reading
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image09:41 The memes, they BURN!» James Britt - Code, Content, Caffiene
I'm not sure which one is worse. But they made me giggle when I thought of them, so here they are.





add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Sources