最近有求職者這樣跟我說 要求跟其他寫 NodeJS PHP 的公司很不一樣 說寫 RoR 好像什麼都要懂似的
想想身邊寫 RoR 新手的確比較少 心裏也有點同意
不知道各位有認同的嗎?
简化
换成降低复杂度、或者抽象更准确些。
比如 Form Django 写个 form,要 import 4、5 个函数,这种事情完全是重复劳动。
RoR 这点就很好,省去了很多麻烦,大大提高了生产效率。
简化
也不意味着不理解背后的原理,源码还是要大体看看的。
简化
确实也会带来麻烦,比如 RoR 每个 Request 都会缓存 sql 的结果,就会出现了 random sql 不 random 的坑。
确实会有这个坑,但却带来了性能的提升,我觉得这个 简化
是值得的。
再比如,乐观锁,实现起来也不难。需要的时候,手写一下,还是挺有意思的,第二次、第三次,一样的代码,写起来就没啥意思了。这个时候,我就希望框架能帮我简化
这个工作。
有些复杂度,本身是没必要的。
比如路由,可以说是正则匹配,但 RoR 默认情况下不需要正则,隐藏了这个复杂性,提高了维护性。
Rails 的学习曲线相对平滑些,入门更轻松,然后在项目制作过程中渐渐挖掘背后的黑科技。所以用 Rails 用多了,知识面很容易快速拓展,Rails 所选用的那些 Best Practices 可以让你获得远比其他框架多的知识量。
一个写 PHP 或者 Python 的人,他可能会对 DB Migration / ORM 不太熟,但是 Rails 用户是一定熟悉的。
他可能会对 TDD / BDD 不太熟,但是 Rails 用户是一定熟悉的。
他可能会对 SCSS / SASS 不太熟,但是 Rails 用户是一定熟悉的。
他可能会对 yarn / mvvm 不太熟,但是等以后 Rails 5.1 流行起来,项目多起来,Rails 用户也会很熟悉这些。
比起一些 PHP 程序员那样,抓来一个 TP4 就开始码,jQuery+CSS 扒皮一把梭,测试代码为零来讲,那是高到不知道哪里去了。
不过这并不只限于 Rails。你把主题里的 Rails 换成 Laravel,其实结论是一样的。
很認同 RoR 本來就有一大堆規範跟原則, 就是所謂的 best practice,
主要強調的是 Testing 跟系統構架,什麼 Service,什麼 MVC,怎麼把 Configuration 跟系統分離這些 這點我同意跟 Laravel 很相似
當然開發人員深入了解多少還是看他的時間跟使用場景而決定
不過也注意到 RoR 在 DevOps 那邊就比較冷門就是
所以我認為 RoR 未必很適合新手開發員
處理簡單的東西還好 當提及各種優化的時候 才會發現 RoR 後面做了一大堆工作 有時還會緊密聯繫在一起
新手作修改時還是會有點慌亂的吧
RoR 程序员要保证好学习时间,不能写完业务,就不学习了。
团队开发是多个人,每个人可能擅长解决不同问题,把问题就给擅长的人。
重框架 vs 不用框架
RoR 功能全,文档丰富,Google 可以解决大多数问题。
不用框架,从代码组织,到功能,都是黑盒,重复工作、复杂度就不说了,出了问题,代码从都看到尾,debug 到吐血,半天修个屁大点 bug,死的新都有。
RoR 复杂是复杂了点,但一般出问题了,大体能猜到。没框架,出了问题是真不少猜。