Rails 大家在 Rails 的基础上是怎么进一步提升开发效率的?

1c7 · 2019年02月22日 · 最后由 sefier 回复于 2019年02月22日 · 1867 次阅读

重点

想问大家用了哪些 方法/工具/流程/魔法 来尽可能提升开发效率

目前我的开发流程:

(一个 Rails API 后端项目,前端有 Vue/微信小程序,前后端只用 JSON API 交互,暂无 GraphQL)

当我需要实现/修改一个功能时:

  1. 思考需不需要新字段或者新表,然后用 rails g migration / rails g model
  2. 给 Model 写 has_one, has_many
  3. 写 route
  4. 写 controller 代码
  5. 发 HTTP 请求看对不对,不对就继续改,改到对为止。

(目前暂未使用 TDD 工作流)

题外话

最近看了点 TDD 的视频,以下这个蛮搞笑的:

上下文:视频时间点 00:55 说 TDD 社区有种 shame shame shame 的做法。不用 TDD 就羞辱你哈哈。

补充说明(感谢 Rei 指出):

以上提到 TDD 的视频 不是反 TDD。 意义是说我做过一些功课,但是只是刚开始看,但还没有太多了解。

问题:如何进一步提升开发效率?

大家目前的开发流程是怎样的? (我不是指什么瀑布流/敏捷开发那样的哲学,是指更具体的做事步骤)

补充:生产力/效率的意思是

原先写代码可能要 4 个小时做完的事情,提升生产力之后可能 2-3 个小时就能做完。

很准确的"生产力/效率"的定义我也没有, 简单说就是加快做事情的速度,省下的时间可以做别的。

(补充这个是因为,在群聊里有人问”生产力在这个上下文里的具体定义是什么?“)

  1. 写接口测试代码
  2. 写 routes, controller, model, jbuilder
  3. 跑通测试,跑一下 rubocop
  4. 自动化生成文档扔到 Redmine 上
  5. 自动化部署到测试服务器
  6. 通知相关人员接口开发好了

当然第一步是关键,绝对不要手测,要做一个不负责任的后端工程师

楼主都还没开始讨论就引用了 Anti TDD 的资料,就是说楼主已经意识到自己问题在哪里了?

提高开发效率的目的是啥呢,迎娶白富美走上人生巅峰?

搞各种轮子,把工作变成组合各种轮子

不用非得严格的 TDD,但是如果没有写 test 就交付,会产生两种结果。

一种就是你为了构造各种测试场景花掉大量的时间,factory 写得好的情况下可以在几分钟内构造出数个测试场景需要的初始数据。而且很干净,不会因为数据问题影响你要测试的功能。要是自己手工整一套的话,费时费力还容易出问题。

另外一种就是你的代码还没有验证一些逻辑分支或者边界条件,交付以后一大堆的 BUG。这还不算,你还得靠你的脑子想清楚每一个新功能中和现有功能耦合的地方,累死。

写测试是一个你一旦尝试了就无法摆脱的习惯,我现在写完接口基本上都是直接用 spec 进行验证,只有最后功能快完成了才会打开浏览器看下页面,或者打开 swagger 看看 api 的整个返回结果。

然后写了测试以后,效率比原来提高了至少三成。

Rei 回复

不是反 TDD。那只是个搞笑视频,视频本身是支持 TDD 的。视频开头讲几个笑话而已。

nouse 回复

省出来的时间可以做别的事情。比如(对我来说):

  • 看书(技术,创业,任何感兴趣的东西)
  • 看教程(工作相关或无关,比如基因编程的 Coursera 课)
  • 出门锻炼(我这点做的不够好)
  • 学习 GraphQL,学 linear algebra(学 ML/AI 太吃力了,要补这个)
  • 待补,有很多
jasl 回复

感谢大佬的 wx_pay gem

adamshen 回复

感谢

ThxFly 回复

为什么要做一个不负责任的后端工程师?

sefier 回复

反语修辞手法,还是要负责任,自己的 Bug 自己抗

ThxFly 回复

我猜你本来想写双重否定,自己给写忘记了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号