Rails如何读别人的源代码

别人给你一段源代码,或者你从github上下载了一份,想对它进行了解并改进。如何读源代码?除了源代码,你手头上的东西不多,不要说给作者发个邮件,让他帮忙解释一下。~~

先说一下个人理解:

1、先 bundle install 安装好需要的 gem... 如果有问题,查看 Gemfile 和 Gemfile.lock 解决

2、在 config/database.yml 配置数据库

3、运行 rake db:create 和 rake db:migrate 以迁移代码。看 db/seeds.rb 如果有内容,就 rake db:seed 初始化一些数据

1、先看 Gemfile,看用到了什么插件,并对插件进行简单的注释。对不懂用的插件做上标记… …如果写代码的人用rails plugin install安装呢?当然插件可以在vendor里找到,可有的插件是作者自己写的。怎么办?

5、运行 rails s 然后在浏览器里输入网址 localhost:3000 查看

2.对于自己熟悉的插件就不多说了,对于没用过或没听说过的赶紧的学习、理解它,通过github、railscasts、google、官网等。

3、通过对db/schema.rb文件还有app/models的查看知道表间关系,能够画出简单的ER图。有的人把schema.rb删了,甚至和db/migrate迁移文件删了才开源的(确实遇到过),怎么办?

4、查看controllers控制器——角色(如游客、普通用户、管理员等)——action明白角色和对应权限。如:对于Products控制器上的游客可以index,show,普通用户还可以new,create,update,edit,管理员还可以destroy… ….此外,对于非GET请求的(没有对应视图的)可以做上简单的记号… …理解功能 特殊情况举例,有的人把验证authenticated_systeml.rb写到lib里,然后autoload… …怎么特殊处理?

5、角色——权限动词——资源,这个可以根据第4步,模仿cancan,用框图的形式画出来… ….理解权限

6、代码结构格式化。这里指的每个人都有自己写代码的习惯,有人喜欢格式宽松的,有人喜欢严紧的。对于缩进、空格、换行等,可以把源代码的“长相”变美观一点,更符合自己的品味… ….并不是改动代码

… …

本人的理解就到这了,还有下面的这些。

改动前应能够找出各个模块间的接口,在不改变接口的情况下,可以改变模块内部结构。 对要“删除”的代码或文件夹在不确定的情况下,并不是真正的删除,可以注释或改变文件名,最好能够加上时间戳以提醒自己。删除后提交github 对源代码的增、删、查(查找接口,方法等等)、改应该分步进行,并且提交github 分步重构。这个和3差不多,不要一下子改动太大,对已更改的能够容易还原。 问题:

1 改动很难不出错,怎么才能减少。你说TDD/BDD..?改一点,测试一点。如果源代码根本就不写测试呢?(这情况还不少),或者他用的测试是你不熟悉的,比如源代码用的是Test:Unit,而你只会用Rspec…..?

2 理解,理解,还是理解!怎么才能更好的理解源代码,举例源代码一下controller里的方法很长?一个model里有很多的方法?有的很难理解或者出现在错误的地方本应放到observer,却呆在了model里?

3 再有就是视图了。开发或理解控制器、模型等还算容易,看视图真的一点头绪都没有。能否给点建议?

结束:因为在github上下载并认真的看了几个别人的项目,但却经常感到力不从心,不得要领,所以来此提问。希望有经验的能够帮忙解答一下~~

应个人水平不高,可能有些问题过于简单或者问得过于模糊,但请给点建议或宝贵经验(特别是高手或有经验的人)就更好了。不甚感激!

回答不必一一对应,只希望有经验或者遇到过类似问题的,恰好看到本文的,能够回复一下。

如何部署?

1 先把线上环境当做开发环境,跑起来

2 sidekiq, whenever, cron, assets:precompile 等需要脚本运行的注意自动化

3 记得重启

4 记得共享文件的设置

5 搜索、搜索,再搜索(即使有的问题你觉得不是这样子的,但搜索结果却发现就是这样子)