美文网首页
Rails 学习感想

Rails 学习感想

作者: 王谙然 | 来源:发表于2016-07-30 22:21 被阅读104次

    后端(应用层)不同于前端,最重要的概念是 middleware/pipeline.

    Rails能较为深入的理解一定要建立在对后端整体架构理解架构的基础上,不然就会进入开始很爽越来越晕的尴尬节奏。

    大致分为两大部分:Server/App,一个负责接收分发 request,一个负责业务逻辑,他们之间的数据对接靠 Rack 规范。Server 具体可参考这篇文章。而 App 部分就是 Rails。

    Rails干的活一句话就是一个按照 Rack 标准数据格式化的 Request 进来,分析url,分配给它一个 Handler 方法处理:

    1. 解析 url 参数,HTTP header/body
    2. 身份验证,权限验证
    3. Database操作
    4. 渲染需要返回的数据(html/json)

    当然为了控制 App 的逻辑复杂度,Rails 采用 MVC 架构,遵循 convention over configuration,don't repeat yourself 理念,尽量将 Server API 设计的 restful.

    Rails 重要的组件都是根据 Handler 来,ActionController,ActiveRecord(ORM),ActiveView(view).

    然后对一个项目还有:配置,第三方库管理(bundler),测试(RSpec/factory_girl)

    这里要提一下Rspec,对于魔法语言 Ruby 来说,只有相对完善的测试(最好TDD)心里才踏实,推荐一本书《Everyday Rails Testing With RSpec》。

    有时有些 Request 是好是操作,我们需要后台任务,需要了解 sidekiq.
    对于 HTML 有时可能需要 Cache,这时简单粗暴的内存KV数据库 memcached。

    有哪些地方容易写出坑:

    1. 低效 SQL,所以对 SQL 也要有一定了解,知道一个链式 ActiveRecord 操作背后执行的哪条 SQL,而且对所用数据库(MySQL/Postgresql/MongoDB)有一定了解。
    2. 尽可能不要在 View 中写业务逻辑。
    3. Controller 中有过多逻辑。
    4. 当我们把逻辑从 Controller 迁入 Model,Model 会迅速臃肿起来。

    对 Ruby 的理解需要达到什么程度?看懂《Ruby元编程》。

    拓展阅读:

    再谈 API 的撰写 - 架构-程序人生

    相关文章

      网友评论

          本文标题:Rails 学习感想

          本文链接:https://www.haomeiwen.com/subject/kqutsttx.html