炮哥说的对!
如果准备重写的话,可以考虑在 Rails 这端设计新的数据库结构,然后实现 sync 机制把新数据同步到老系统的数据库里,直到新系统完全取代旧的
另外我还是推荐刚提到的 guides 的网站,里面很多玩法(主要是 Advanced 部分),写过几年的高手都未必知道的,基本用法、提升完全可以靠 guides。
当然,真正的黑科技玩法,还是得读源码~
这些文档当然是写在代码里的,rdoc 跟 javadoc 是一模一样的东西,比如截图里的文档出自 https://github.com/rails/rails/blob/master/actionview/lib/action_view/helpers/rendering_helper.rb#L11-L28 另外 javadoc 也可以生成这样的网站来,这种东西基本是各大语言的标配
Rails 绝大部分(不敢说所有)对外暴露的方法都是有很全面文档的,只不过你这样看 doc 方式有个缺点就是不太容易搞清楚方法来自于哪里,因为 Ruby 有 module 这种做为组合的语言设施,不像 Java 方法精确的在某个类里
http://guides.rubyonrails.org/ 我建议多读读的,对一些普遍的功能也有详细的介绍,还是你刚提的 Controller 方面的东西 http://guides.rubyonrails.org/action_controller_overview.html
另外里面藏了很多最佳实践,比如之前华顺给我写的一个 PR
这样最简单吧,另外一些开发技巧类的博文、指南也能获得一些(比如 http://blog.bigbinary.com/),否则即使直接给你 API doc,也需要先简单过一遍源码理顺类之间的关系才能够进行有目的的浏览,换个语言也会是这样子。
就说 params
吧,说个简单方法,控制器的 action 里写个 raise,然后访问那个 action,异常了,在 Web console 里,输入 params.class
就暴露他的类型了,嘛...
搜 render
这不就是么... 顺带一提,rdoc 就是 Ruby 版本的 javadoc,你发的那个网站就是利用 rdoc 生成出来的。
另外因为 rdoc 跟 javadoc 一样都是写在方法上部的,装个 RubyMine,按住 CMD 点方法名,就直接跳到定义了,然后就可以直接看文档,不用搜
不过这些必用的组件,看 guides 比 API doc 要好,解释详尽,而且也介绍了很多最佳实践 http://guides.rubyonrails.org/layouts_and_rendering.html#using-render
他们搞这么复杂是因为他们的业务复杂呀,实现远端仓库可以看看 B 大 几年前写的 https://ruby-china.org/topics/16295 就几十行
昨天说的是这个 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/initializers/0_as_concern.rb 支持了 prepend,可以更好地做 AOP 了
他们整合 VUE 的方式没啥好看的,因为现在有了 Webpacker,直接用这个是最好的,他们那个时候太早了
那个我还真没研究过,应该是 git 有支持,然后 gitlab-shell 实现了相应的协议,这样入手应该就好了
其实多用用不同产品就好啦,有很多功能点都是相通的,比如用户登录注册,高级一点的比如权限管理、访问控制、还有多租户隔离之类。要读代码的话,先看文档跑起来然后扫一遍依赖和目录结构
没有... 我貌似都不知道有类似的文章。我一般是看到哪些功能我需要、感兴趣,就研究一下
另外可以看一下 Gitlab 对 Concern 做了点 hack 来支持 prepend
另外可以善用 rake routes
命令打印你系统里的路由匹配列表。
我个人更提倡数据驱动编程,你输入的路由定义,最终会变成一组匹配规则,学习的过程中,不断的去观察最终生成的匹配规则,找到规律,就可以了。基于规律也可以达成一些特殊的用法。
用 rvm 安装 ruby 不要用内置的,你这个提升可能是系统的出什么问题了
炮哥这几年功力有所减弱...
这个不知道了,没用过 Swagger
没看懂 form-urlencoded
不就是一般的 HTTP 表单提交么,用 postman 之类很容易模拟吧,你要是调网络库不也是看 API 写的事么?
?
不会数据库,包教么
给 AMS 底层换 oj
benchmark 都能快三倍了,标准库的做法很保守
是一种流派,但是另一派认为是坏的实践(我站这边)
简而言之,我不赞同让请求上下文污染到模型,模型的职责已经很多了
你省力的代价就是解释气要费力,你的举手之劳换做解释器可能要用上吃奶的劲,于是就出现了权衡
这种类似的需求 需要用状态机 来解决
你这也不是典型 web 负载啊,而且我说你可以上数据你回的这叫什么?
你写过多大规模的 site... 说这么多不妨直接上点数据来
开发 io 慢点还能接受吧,终端目前无解,没看到市面上有能追上 iterm2 的,不过终端的问题也是 docker vagrant wsl 共同问题了
说说看?