圖書標籤: 軟件工程 軟件架構 計算機 軟件設計 編程 程序設計 架構師 programming
发表于2024-10-21
A Philosophy of Software Design pdf epub mobi txt 電子書 下載 2024
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
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.
神作啊。簡直字字珠璣。
評分理論和實踐兼具,沒得說。
評分重點看瞭前麵10章,特彆是關於軟件復雜性方麵。感受比較深的幾點是: 1.對抗復雜性的兩個方法:代碼簡潔和封裝。 keep these in mind when programming. 2. 盡量戰略性編程,而不是戰術性編程 3. module設計要有深度, 接口少而簡單。less is more。 讓復雜性下沉 4. 盡量減少module之間的依賴關係 5. 不同層,不同抽象。 Design it twice 6. 注釋應該包含設計者不能在代碼(接口)中錶達齣來的信息。代碼和注釋是寫給彆人看的 7. Agile推崇的漸進式開發的應該是抽象,而不是功能
評分deep and thick.
評分#道理都懂然鵝係列
1. complexity is incremental:you have to sweat the small stuff 2. working code isn’t enough 3. make continual small investments to improve system design 4. interfaces should be designed to make the most common usage as soon as possible 5.module should be d...
評分1. complexity is incremental:you have to sweat the small stuff 2. working code isn’t enough 3. make continual small investments to improve system design 4. interfaces should be designed to make the most common usage as soon as possible 5.module should be d...
評分1. complexity is incremental:you have to sweat the small stuff 2. working code isn’t enough 3. make continual small investments to improve system design 4. interfaces should be designed to make the most common usage as soon as possible 5.module should be d...
A Philosophy of Software Design pdf epub mobi txt 電子書 下載 2024