如何开始rails项目

2009-12-29

为了能胜任ruby项目的开发工作,你需要逐步掌握以下技能

h2. 1.安装操作系统(Linux)

经过实践,rails项目可以顺利在windows、linux(Ubuntu)、unix(solaris)下运行 但推荐使用的平台仍是Linux,所以你至少需要熟悉以下内容

h3. 安装

我们开发环境使用的是Ubuntu,安装后请阅读速配指南了解ubuntu的基本配置

“Ubuntu安装”:http://wiki.ubuntu.org.cn/articles/i/n/s/Install_Ubuntu_desktop_8.04_a2e3.html “Ubuntu速配指南”:http://wiki.ubuntu.org.cn/Qref/Hardy

h3. 熟悉常用命令

“Linux常用命令”:http://blog.csdn.net/ckboss/archive/2009/05/03/4144318.asp “常用命令联合使用”:/2009/11/23/linux.html

h3. 安装xp虚拟机

安装xp虚拟机操作系统是为了使用rtx、使用ie访问项目,具体步骤:

“安装virtualbox”:http://www.virtualbox.org/wiki/Linux_Downloads 宿主操作系统为”Ubuntu 8.04 LTS”,按电脑的cpu架构选择i386或者AMD的virtualbox安装包

在virtualbox安装windowns xp精简版 “ubuntu下安装xp指南”:http://www.lupaworld.com/340814/viewspace-139349

h2. 2.熟悉开发工具(Vim)

经过对netbean、RadRails、Vim的使用,最终选择了Vim作为我们的IDE vim可以让你在开发过程中尽量减少对鼠标的使用,提高编写效率

“Vim快速入门”:http://blog.csdn.net/lxrm_fly/archive/2007/08/13/1741206.aspx “Vim安装使用”:/2009/10/10/vim.html

h2. 3.了解Ruby

你需要知道模块、类、继承等概念 知道循环,判断等语句 了解String,File等类的常用方法,知道API可以在哪里查询到

要不断实践ruby,irb命令是你的最重要的朋友

“二十分钟入门”:http://www.javaeye.com/topic/55826 “Ruby延伸”:/2009/12/18/ruby-tips.html “Programming Ruby 1.9”:http://cloud.github.com/downloads/saberma/saberma.github.com/ProgrammingRuby1.9.pdf

h2. 4.熟悉Rails

你需要知道rails的以下内容:

“项目的目录结构”:http://biaoming.javaeye.com/blog/36212

rails项目中,也是遵循MVC模式的,开发一个功能时,可根据需要选择以下生成器

#看一下有哪些生成器(Installed Generators)
script/generate
#项目中常用以下生成器
#生成控制器、实体、整合(包括控制器、视图、实体)
script/generate rspec_controller
script/generate rspec_model
script/generate rspec_scaffold

url请求将由rails的哪些控制器中的哪些方法进行处理,需要了解

“route机制”:http://blackanger.blog.51cto.com/140924/122055

出现问题时多查看后台日志 主要检查由前端页面传递至后台的参数params是否正常 并检查控制器对数据库进行操作的SQL是否正确

#查看开发环境的日志
tail -f log/development.log

“Rails快速入门”:https://www.ibm.com/developerworks/cn/linux/l-rubyrails/ “I18n国际化”:http://www.letrails.cn/archives/rails-2-2-i18n-tutorials/ “Agile Web Development”:http://cloud.github.com/downloads/saberma/saberma.github.com/Agile_Web_Development_with_Rails.pdf “Advanced Rails Recipes”:http://cloud.github.com/downloads/saberma/saberma.github.com/advanced_rails_recipes.pdf

在rails项目中,要遵守[不重复发明轮子]的原则,在开发功能(非业务)前可以先找找 “Ruby工具箱”:http://ruby-toolbox.com/

要不断实践rails,script/console命令是你的最重要的朋友

h2. 5.前端技术

前端技术中的视图层是采用haml框架生成的,haml代码会转换为html代码,最终在浏览器中显示 另外包含javascript,css两部分 在项目中javascript主要使用jQuery框架编写js代码 css部分使用haml中的sass编写css代码

“html入门_共8小节”:http://www.21shipin.com/html/12496.shtml “haml入门”:http://haml-lang.com/tutorial.html “javascript入门”:http://www.prglab.com/blog/js-tutorial “css入门”:http://www.cainiao8.com/web/css.html “jQuery入门”:http://www.k99k.com/jQuery_getting_started.html “jQuery常用插件”:/2009/09/12/jquery-plugin.html “jQuery最佳实践之delegate”:http://jsgears.com/thread-402-1-1.html “sass入门”:http://sass-lang.com/tutorial.html

h2. 6.数据库(Mysql)

经过实践,rails项目可以连接Mysql,Oracle,Sqlserver,随时可以进行切换 在开发时,我们使用Mysql作为本地数据库,所以你至少需要掌握Mysql数据库

“Mysql入门”:http://www.xingyl.com/?m=blog&id=57

h2. 7.文档数据库(NoSQL)

先看看各大NoSQL软件的对比 “NoSQL数据库探讨之一 - 为什么要用非关系数据库?”:http://robbin.javaeye.com/blog/524977

“NoSQL介绍及MongoDB入门”:http://renial.javaeye.com/blog/684829 “Mongodb入门”:http://blog.csdn.net/lolinzhang/archive/2009/07/16/4353699.aspx

mongodb最全最好的学习资料是在官网(支持中文但很不全),上面还有一个TRY IT OUT,可以直接在线学习简单操作

“ruby数据库驱动说明”:http://www.mongodb.org/display/DOCS/Ruby+Language+Center

如果采用NoSQL,则rails中就不能再使用ActiveRecord了,需要要对应的ORM 推荐使用mongoid,虽然没有mongomapper那么功能全面,好在对rails3的支持更好(率先支持activemodel等)

mongoid也处于活跃开发期,所以最新资料只能看官网,最稳妥的资料只能看代码了 “mongoid官方文档”:http://mongoid.org/docs/installation/

基于nosql的开源项目现在还比较少,可以参考刚起步的shopqi “shopqi网店平台”:http://github.com/saberma/shopqi

h2. 8.测试

为保证项目质量,开发过程中需要遵循测试驱动开发

“黄瓜测试入门”:http://www.lycom.de/past/tags/cucumber “Rspec入门”:http://www.letrails.cn/archives/20/

h2. 9.版本控制Git和GitHub

以上技能掌握后,项目代码就需要进行版本控制及代码托管了

国内公司一般都是自建代码托管服务器,所用版本控制软件大多使用SVN,VSS,CVS 前两个我倒是用过,但我还是要极力推荐Git Git原生支持分布式代码管理(KO VSS),直观的冲突处理机制(KO SVN)

而基于Git的托管服务器Github,可以说是开源界的改革,使得开源项目真正地开源! 任何开发者可以直接获取开源代码,或追加功能或打补丁,之后只要按个按钮就可以向原作者请求合并 当然了,合并之前一般需要开发者编写好测试用例,保证代码的正确,同时不破坏原有功能

“Git使用”:/2010/01/26/git.html

如果公司只有svn服务器,折衷的办法就是本地使用git,再远程提交至svn “SVN集中存储”:/2009/09/09/git-to-svn.html

h1. 其他资源

“Learn Web Design”:http://thinkvitamin.com/web-design-2/learn-web-design-free-tutorial-videos/

blog comments powered by Disqus