Tcl 和 Raft 发明人的软件设计哲学

Posted doit8791

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tcl 和 Raft 发明人的软件设计哲学相关的知识,希望对你有一定的参考价值。

John Ousterhout(斯坦福大学教授,Tcl 语言、Raft 协议的发明人...真的是超级牛人,Title 好多好多,这里就列几个大家熟悉的),在 Google 做了一次演讲,题目就叫 「A Philosophy of Software Design」。
首先,John 问了大家一个问题,什么是计算机科学里最重要的事情?下面有回答 Abstration 的,有回答 Complexities 的,有回答 Testing 的。他还问了 Donald Knuth(高德纳,程序员应该都认识吧),Kunth 说是 Layer of Abstration,而 John 的答案是 Problem Decomposition。

John 认为,很不可思议的是,在计算机科学的教育里面,没有任何课程是真正教学生软件设计的。所以他在斯坦福开设了一门课程,在这门课里,John 会教学生一些设计方法和原则,同时让学生做一个比较大的项目。然后 John 会 Review 学生的代码,上课讨论,从而让学生掌握软件设计的方法和原则。
John 提出了一个战术编程(Tactical Programming)和战略编程(Strategic Programming)的概念。战术编程就是没有太多设计,简单粗暴快速实现;战略编程则是需要做良好的设计,为长远考虑。

以上是关于Tcl 和 Raft 发明人的软件设计哲学的主要内容,如果未能解决你的问题,请参考以下文章

2020荐书:软件设计的哲学

软件设计的哲学:前言

软件设计的哲学:第十一章 两次设计

翻译软件设计的哲学-0 序言

软件设计的哲学:第四章 深度封装模块

翻译软件设计的哲学-2 复杂性的本质