- Buy this product and stream 90 days of Amazon Music Unlimited for free. E-mail after purchase. Conditions apply. Learn more
A Philosophy of Software Design Paperback – 6 Apr 2018
|New from||Used from|
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Special offers and product promotions
Frequently bought together
Customers who viewed this item also viewed
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
About the Author
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.
Customers who bought this item also bought
There was a problem filtering reviews right now. Please try again later.
I'd recommend this book to the seasoned developer or software architect who has already seen a number of projects and designed a few systems. Which such experience the reader will quickly recognize many of the bad ways to design a system and the type of problems which bad design leads to.
He gives an excellent set of principles for software design. He carefully explains how he's come to this conclusion after many years of software development, and he gives alternative approaches explaining the trade-off between different approaches.
The actual software examples he gives come from operating systems. I have not worked on operating systems myself, so the examples were not entirely relevant to me. However the principles he is describing make a lot of sense and are very useful.
However, the book is not particular specific as to how to obtain software design with low complexity. It is high level guidance; it is left to the reader to make it into practical work. Too much theory, too few examples.