厉害了 word 哥...
homeland 的历史包袱也挺多的,比如关注用户这块还是 mongodb 的设计(现在重构没有不道)
redmine 完全没用 assets pipeline、strong parameter 这些已经出现四五年的成熟技术,attr_accessible 都还是自己造的轮子,毕竟是从 rails 2.x 时代发展上来的
怎么样写成好的代码大概就是经验吧,不过即使明白怎么写好,工作时候因为进度压力、重要性不足,也胡搞了...
代码差不代表你不能了解他的思路,要是你好奇某个软件/库的某个功能是如何实现的,就读读看嘛,闭源的一样可以逆向的。
好看的代码大多存在于没什么人用的程序里吧。
Gitlab 和 Redmine 不是一种东西嘛...
从页面入手吧,先确定你的工作涉及到哪个(些)页面,简单的办法是浏览器打开到对应功能的页面去,看 URL,利用 Rails 的 Convention(这个算必须清楚的)看看能不能定位到对应的控制器和 action 上去,如果不能就去路由定义里找。
然后看 action 和相关的过滤器的实现,找到相关的模型,关注好模型间的联系(has_many、belongs_to 那些)还有各种钩子(before_save 那些,关注这个是留意在 hook 里的数据操作,避免踩坑)
然后搞你的功能就是了,上边的调研告诉了你要把新功能放到哪个控制器(或者是需要新建一个新的,但是控制器里的很多代码可以复制相关的控制器里的)。以及需要扩展哪些模型,模型里放业务逻辑和对字段的改动都是围绕数据来进行的,所以你只要保证你新的代码执行后对数据造成的改动是你在设计时预期的的就可以了
接手一个系统的时候,在不熟悉这套系统的时候,尽量不要对已有的业务逻辑进行改动,就是说,在适当的位置插入新的逻辑,尽可能避免修改已有的代码的执行逻辑,把对系统的改动的范围控制在你的新代码里,这样出问题你也更能解决(毕竟出问题肯定是你的新业务逻辑)。另外,小步走,多提交,每次提交的改动尽量小。
Redmine 总体来讲,还是上世纪的 Ruby 代码风格,尽量不要学他的写法。
http://guides.rubyonrails.org/active_record_validations.html#on
validate 可以传递 context
没参与 tower 项目,理论上就是个异步任务指定时间检查状态,然后执行一些逻辑而已
嗯,有道理,搞个这东西来...
RM 跳源码比较准了...阅读代码的神器,另外,构建类和模型的关系图也很好用,其他的功能我到都觉得鸡肋了...重构啥的预览看漏很容易搞出问题来
就是 public/uploads
目录存在?
现在 GoRails 继承了衣钵,不过感觉更初级一些,有一些视频其实有更好的做法
你确定 uploads
存在于那个路径?
@darkbaby123 有个问题...你们是怎么给表单里每项做标识的?就是字段名怎么取?
我是支持那文作者观点的...不过写 Current
的人大有人在,官方提供个版本防止他们写不好出出错吧
Rails 的 Session 还可以以 JSON 形式存在的 http://blog.bigbinary.com/2014/12/23/migrating-existing-session-cookies-while-upgrading-to-rails-4-1-and-above.html Rails 4.1 后这样是默认了
好东西。。。能正确写出线程安全的 Current
也不容易...
他们也是最近才有沙箱的。。。过去别无选择的
Matias
nnd 出去玩电脑报废了,回到家台机键盘报废了...
这个需要的话...我一般的做法两种,一种 puts 'yoooo'
另一种,下个断点,执行到了卡住,需要继续执行 continue
就可以了...
和微信互操作的部分肉测吧(直接放线上环境测,有条件开个测试用的站点和公众号、开放平台 etc),效率反而高...
我估计是说在 rails 里 raise 后,调出的 500 错误页面上的调试器吧...
欢迎投稿分享~
cc @danielglh
社区很多人其实也在写 go,并且我了解到一些公司,就在使用 ruby+go 的异构架构
直接用 for win 的编辑器就好了,文件能互相访问就好了
要啊
酒店还送夜宵拉面...
😁
嗯我说错了,并不能算 DFA,Mustermann 内部没仔细看过,Journey 有 OR 语义,不好搞 DFA