发表于2025-01-25
A Philosophy of Software Design pdf epub mobi txt 电子书 下载
John Ousterhout is the Bosack Lerner Professor of Computer Science at Stanford University. His current research focuses on new software stack layers to allow datacenter applications to take advantage of communication and storage technologies with microsecond-scale latencies. Ousterhout's prior positions include 14 years in industry, where he founded two companies (Scriptics and Electric Cloud), preceded by 14 years as Professor of Computer Science at U.C. Berkeley. He is the creator of the Tcl scripting language and is also well known for his work in distributed operating systems and storage systems. Ousterhout received a BS degree in Physics from Yale University and a PhD in Computer Science from Carnegie Mellon University. He is a member of the National Academy of Engineering and has received numerous awards, including the ACM Software System Award, the ACM Grace Murray Hopper Award, the National Science Foundation Presidential Young Investigator Award, and the U.C. Berkeley Distinguished Teaching Award.
This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process, and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly
##Class | method | module should be Deep! people often have so many skiny layers rather than meatier layers. Principle: We should be really easy to do the common case and the right thing. A lot of software design is figuring out what matters and what doesn't ...
评分写好代码的最佳标准就是降低复杂性。解决复杂性的时候需要引入一些投资理念,很多看起来提高复杂性的方法长远来看反而降低了复杂性。比如作者推崇合理的代码注释,甚至先写注释再写代码,这样可以更合理地设计整个项目的了逻辑,降低总体风险。
评分##Class | method | module should be Deep! people often have so many skiny layers rather than meatier layers. Principle: We should be really easy to do the common case and the right thing. A lot of software design is figuring out what matters and what doesn't ...
评分##在线的中译本,草草的看了一遍,也没有太多code经验,所以体会不够。 1. 架构是迭代的,没有一开始就能完美的架构。 2 复杂性定义=>小的复杂性会累加。复杂性的根源,耦合,依赖? 3 复杂性针对的是读者而不是作者,读者和使用者和维护者是一回事吗?时间久了,自己也变成了...
评分 评分 评分 评分A Philosophy of Software Design pdf epub mobi txt 电子书 下载