David Heinemeier Hansson, Software Contrarian 是 Podcast 频道 corecursive 在 2020.2.1 发布的一个 DHH 关于软件开发相关的访谈。
DHH 不用介绍了,Rails 创始人。
可以说之前 Ruby 的流行很大程度上依赖于 Rails 的兴起。Rails 确实影响了很多后来的 Web 框架的设计和实现,并给软件开发带了一些全新的理念。
这期是我之前当作练习英语的材料来听的。DHH 的口音非常清晰,表达方式也是非常直接。因此这期听起来有一种类似 Rap 的快感。
为什么 Rails 成功了
Rails 的出现改变了软件开发,至少在 2006 年,当 Java,C# 大行其道的年代。Rails 以其优异的开发效率震惊了不少开发者。Rails 的成功无非是在恰好的时机做了恰当的事情。
DHH 总结了从 Java、PHP 的开发经验。Java 阵营里都是聪明人,有很多好想法,但是他们却在一个糟糕的开发环境里工作,不容易让新人轻易上手。而 PHP 却很简单明了,你直接把一个文件拖入特定的文件夹,就可以生成对应的网页。Rails 的第三个元素就是 Ruby,Ruby 是极其容易安装,容易上手而直接的编程语言。DHH 当时正在写 Basecamp,所以一切都是从实际使用出发的,自己构建工具,然后再用这个工具构建 Basecamp。
而且 DHH 当时也是一个 Ruby 新手 (那时的 Ruby 老手估计也没几个?)
新手的好处在于,他不知道 Ruby 的极限在哪里,哪里可能面临挑战。这样可以随着自己的性子,满足自己的期望来构建 Rails 了。在写 Rails 的过程中,DHH 更关注的是作为用户的感受是什么?编程就像是做菜一样,厨子需要关注的色香味俱全。
Ruby 最大的洞见是:程序员不仅仅是程序员,同时也是人。
依据这个原则,在设计 Ruby 中最重要的事情和设计标准就是:编程语言使程序员更快乐。
最开始如何开始接触 Ruby
Ruby 是日本人 Matz 于 1995。但是直到 2003,这门编程语言仍然是非常小众而神秘的。DHH 也是那段时间在看到些 Martin Fowler 和 Dave Thomas 写的技术文章,他们俩个都选择了 Ruby 作为编程语言介绍一些概念。这引起了 DHH 的兴趣,所以开始关注 Ruby,并去参加了 Ruby 2004 Conf。
那届 Conf 大约也就 42 人吧….
但是随后几年的 Rails Conf 就开始有 2500 人了。
关于编程语言的选择
很多程序员因为喜欢上编程,就是刚好碰到了符合自己口味的编程语言,并激发对编程的巨大乐趣。所以,语言的选择说不重要也不对。如果你还没找到自己的最爱,继续尝试吧。
但并不意味着,在一个小众的编程语言过多投资可能会带来其他的回报。语言的流行有很多其他的因素。Rails 的初衷并不是完全用来满足自己的创造轮子的快感的,而是依据自己的实际项目出发的。
这给我们的不错启示:从实际的需求出发,使用新的工具造轮子。
关于微服务的吐槽
DHH 对微服务保持否定态度,认为业界这么流行微服务其实是有害的。
大多数情况下,一个人可以完全理解、部署的单一应用,比微服务更容易维护。
微服务的优势在于,如果团队足够地大,我们需要给开发者一些界限。
不要盲目地沿用大公司的套路,因为解决的问题不同!
关于 TDD
TDD 也是 Rails 社区很流行和推崇的,但是 DHH 其实对此并不太感冒。并不是 TDD 就能写出更好的,更健壮的软件。
事先写测试用例还是事后写并不重要,重要的是自动化测试。