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

本文介绍了Tcl和Raft发明人John Ousterhout的软件设计理念,强调了问题分解、深类设计、避免错误存在以及战术与战略编程的思考。John提倡在设计中提供简洁接口,隐藏复杂性,减少异常处理,并通过实例说明如何改进设计以提升软件质量。他还批评了Java IO的复杂性和某些过度简化的编程准则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者 | 章烨明

640?wx_fmt=jpeg

杏仁医生CTO。中老年程序员,关注各种技术和团队管理。

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 列出了他的软件设计的原则,不过这个演讲里面,他主要只讲了三点:Classes should be deep、Define Errors Out of Existence 以及 Tactical vs. Strategic Programming。Classes should be deep

640?wx_fmt=png

Deep class 就是指接口非常简单,把复杂度都隐藏在实现里面的类;而相应的 Shallow class 则相反。这个原则其实不仅仅针对类,对于系统、模块、方法等其实都一样,提供简单的接口,把复杂性封装起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值