-
2012-02-05
1step,软件开发第一步
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://dreamhead.blogbus.com/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项目的准备。在后续的计划中,我还打算做Rails和node.js环境的安装。
就个人而言,这个项目有几个有趣的地方:
- 这是我第一次用shell脚本做项目。因为这个项目本身就是一个事关安装和设置环境的项目,假设目标机器上装有诸如Ruby这样的环境是不现实的,但装有shell还是可以预期的。正是因为第一次用shell,所以,我会因为变量和等号之间多了一个空格而百思不得其解。如果你愿意查看源码,会看到很多用法不是太地道的地方。
- 部署在github上。这是从RVM和NPM上学来的。正如前面所见,只要在命令行里执行一条命令就可以了,无需用户下载保存,然后再去运行。这么做的好处是,我只要在github上升级了我的发布,所有人用到的命令就都是最新的了。目前而言,我每次提交都是一次最新的发布,真正做到了持续发布。
- 这个项目其实是我脑子里一个更大想法的一部分。我和徐昊聊过,他对我这个想法的总结是,复制ThoughtWorks开发体验。
1step是一个刚刚起步的开源项目,欢迎有兴趣的朋友加入。对了,除我之外的第一个贡献者是hkliya,多谢了!引用地址:








评论
宁花机器一分钟,不花程序员一秒!