Rails如何读别人的源代码

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

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

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、代码结构格式化。这里指的每个人都有自己写代码的习惯,有人喜欢格式宽松的,有人喜欢严紧的。对于缩进、空格、换行等,可以把源代码的“长相”变美观一点,更符合自己的品味… ….并不是改动代码 … … 本人的理解就到这了,还有下面的这些。

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

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

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

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

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

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

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

转载于:https://my.oschina.net/kelby/blog/193505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值