分享 The Rails Doctrine - 中文翻译

huacnlee for Ruby China · 发布于 2016年8月02日 · 最后由 uestc_bird 回复于 2016年9月29日 · 5820 次阅读
2
本帖已被设为精华帖!

The Rails Doctrine 已经发布一段时间了,原文英文版本的由于内容有太多的复杂语言表达、形容词,以及牛逼的文风,估计很多熟练英文的人阅读起来都会显得吃力。

前一段时间由 @juanito 先翻译成了 繁体版本,然后我再基于繁体版本,以及对照英文原文(吃力啊)重新捋了一下按照简体中文的表达方式翻译了一下。


这篇呕心沥血(指原文)的长文,是 DHH 对社区内以及社区外的开发者描述 Rails 的核心价值观、教条(或者我觉得甚至可以把它看成 Rails 或 Ruby 社区的《圣经》)。里面清楚了解释了以往你会对 Rails 的某些决定的质疑。让你看清 Rails 社区的设计实现理念,目标。

以往那些忠实的 Rails 粉丝,当你遇到一些外面的质疑或挑战的时候,或许你不知道该用什么样的语言来解释 Rails 为何要这么做(哪怕你心里知道它的价值和意义,只是无法表达出来),这篇文章中的很多观点或许正是你在哪种时刻想要说的话。

强烈大家细细阅读:

GitHub 参与排错

共收到 32 条回复
3 lgn21st 将本帖设为了精华贴 8月02日 21:00
3
lgn21st · #2 · 2016年8月02日 2 个赞

谢谢 DHH 给我们带来如此优雅的框架,谢谢 @juanito 辛苦翻译了繁体版,也谢谢 @huacnlee 翻译了简体版。 这篇长文不仅适合新手学习 Rails,也适合老手反复揣摩,参考,借鉴到实际的系统设计中。

2
huacnlee · #3 · 2016年8月02日 1 个赞

再一次膜拜 @juanito,我光从繁体翻译成简体,短短续续都来回花了 3 天的时间,可以想象他费了多少精力

16862
tanete · #4 · 2016年8月02日

感谢!哈哈。

Ruby 可以用 exit 和 quit,来回应程序员的需求,也就是想离开终端交互界面。另一方面 Python 则迂腐的告诉程序员如何做该做的事,即便它已经知道程序员想干嘛了(却只显示错误信息)。这是非常清晰的、小的、最惊讶原则的例子。

3081
xuncheng · #5 · 2016年8月02日

我怎么读着简体中文版也读得很吃力呢,果然很『圣经』😢

4898
springwq · #6 · 2016年8月02日

谢谢 @juanito @huacnlee 👍

有几处 Typo

另一个例子只用了些许代码实现,却几乎引发了惊愕的程度。Array#second 到 #fifth(以及挑衅意味的 #forty_two)。这些 别买 的存取器,非常严重的冒犯了常发表意见的支持者,说:这简直太过度设计了(几乎是编程时代的结束),这些写成 Array#[1]、Array#[2](以及 Array[41])不就可以了嘛。

-

更糟糕的是,当系统过早解耦,或是过早拆成小服务,以及更糟糕的拆成 Microservices。这是现代网络应用的错误认知,你只会反复的重造系统:同样的功能在后端做一次,在端再做一次,在 Native 手机端又再次实现一次等等。这不是自然规律,你也不需要这样。

16862
tanete · #7 · 2016年8月02日

@huacnlee typo: 约定优与配置->约定优于配置 Convention over Configuration

2
huacnlee · #8 · 2016年8月02日

#5楼 @xuncheng 有些地方很难翻译,目前仍有不太准确的地方

17424
davidzhu001 · #9 · 2016年8月02日

不错

4521
jasonZYJ · #10 · 2016年8月02日

Awesome

2575
darkbaby123 · #11 · 2016年8月02日

但框架要是只是厚重的教科书就不可能了,新的应用好比一张白纸。蛋蛋 是要理解从那开始,如何起步,就需要花费巨大的努力。

揪个小错误。开始还没会过来,想着 DHH 文风果然狂野……

2
huacnlee · #12 · 2016年8月02日

#11楼 @darkbaby123 改了,一直都小心翼翼的,没想到还是有漏网之鱼

15999
embbnux · #13 · 2016年8月02日

赞,谢谢翻译,之前英文看得都睡着了

1551
LinuxGit · #14 · 2016年8月02日

看到exit的例子,我哭了,哈哈。

1364
hlcfan · #16 · 2016年8月03日

💥

23873
coderliu · #17 · 2016年8月03日

😂 前两天刚看的繁中版

2
huacnlee · #19 · 2016年8月03日

#18楼 @jude 已改 昨晚都在读了一遍,检查错别字,没想到还有...

96
rocLv1 · #20 · 2016年8月03日

@huacnlee hanging当名词讲的时候,才有“绞刑”的意思,当形容词讲的时候,是“悬着的”。“a hanging rope”是和 Java “forcefully” 作对比,用来说明Ruby 的灵活性,见这里

相比之下,我们通常把 MVC 的 Model 看成是“面向对象”精华的主要堡垒(需要改善翻译!)。

根据上下文,应该是说 M odel 是利用面向对象的长处的主要的地方,或者直译为“堡垒”,可能是 DHH 想加强一下语气吧。

可以开个 Repo 给大家修改 😄

20167
jude · #21 · 2016年8月03日

#19楼 @huacnlee

开头这里还有一个:

本文翻译 The Rails Doctrine - 作者是 DHH

本文翻译自 The Rails Doctrine - 作者是 DHH

#20楼 @rocLv 附议 开个 Repo

3211
kamiiyu · #23 · 2016年8月04日

谢谢,翻译👍

像下面那样可能有些人觉得无所谓的细节,却是正是Rails走心的地方。

正是像midnight beginning_of_day noon middle_of_day这样的方法的存在,让我在写代码的时候多了一份追求 😁

有时候优美的代码反而更玄乎。不是要追求写得多短多短,或是多厉害,而是读起来要有节奏感。

if people.include? person
...      
if person.in? people
15752
siriut · #24 · 2016年8月04日

感谢翻译~

5984
tim_lang · #25 · 2016年8月04日

phoenix的作者应该多读读这篇文章。

5575
peterfei · #26 · 2016年8月09日

感谢

28117
betakuang · #27 · 2016年8月18日

感谢翻译!

24996
lilijreey · #28 · 2016年8月18日

学习感谢

14206
baypm2014 · #29 · 2016年8月19日

感谢翻译!

2942
jameswork · #30 · 2016年8月19日

感谢翻译!

96
roadt · #31 · 2016年8月23日

这个顶~

96
boyishwei · #32 · 2016年8月24日

谢谢翻译,终于抽出了时间来好好阅读。再次感谢!!!

96
uestc_bird · #33 · 2016年9月29日

@huacnlee 总是这么靠谱

18852 freefishz 另一篇 The Rails Doctrine - 中文翻译 中提及了此贴 10月07日 23:08
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册