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...
(展开全部)
APhilosophyofSoftwareDesignPreface-Themostfundamentalproblemincomputerscienceisproblemdecomposition:howtotakeacomplexproblemanddivideitupintopiecesthatcanbesolvedindependently.1Introduction###1.1Howtousethisbook-Thebestwaytousethisbookisinconjunctionwithcodereviews.-Oneofthebestwaystoimproveyourdesignskillsistolearntorecognizeredflags:signsthatapieceofcodeisprobablymorecomplicatedthanitneedstobe.-Whenapplyingtheideasfromthisbook,it’simportanttousemoderationanddiscretion.-Thismeansthatthegreatestlimitationinwritingsoftwareisourabilitytounderstandthesystemswearecreating.-Therearetwogeneralapproachestofightingcomplexity,bothofwhichwillbediscussedinthisbo...
——引自第1页
ThebestwaytoeliminateexceptionhandlingcomplexityistodefineyourAPIssothattherearenoexceptionstohandle:defineerrorsoutofexistence.Thismayseemsacrilegious,butitisveryeffectiveinpractice.ConsidertheTclunsetcommanddiscussedabove.Ratherthanthrowinganerrorwhenunsetisaskedtodeleteanunknownvariable,itshouldhavesimplyreturnedwithoutdoinganything.Ishouldhavechangedthedefinitionofunsetslightly:ratherthandeletingavariable,unsetshouldensurethatavariablenolongerexists.Withthefirstdefinition,unsetcan’tdoitsjobifthevariabledoesn’texist,sogeneratinganexceptionmakessense.Withtheseconddefinition,itisperfectlynaturalforunsettobeinvokedwiththenameofavariablethatdoesn’texist.Inthis...
——引自第88页
科学家创业为什么鲜有成功的? 技术转化为生意,中间还面临着转化问题。一个好的生意还需要一个好的管理者,而很多技术性创业者,空有技术但却完全不懂企业的运营和管理,...
白凯(Kathryn Bernhardt),1984年美国斯坦福大学历史系博士,现为加利福尼亚大学洛杉矶校区历史系教授,并与黄宗智共任《近代中国》(Moden ...
《历史文化名城名镇名村系列:淮安》内容简介:淮安,位于江苏省中北部,为第二批国家历史文化名城,全国卫生城市”“国家园林城市
威尔·杜兰特(Will Durant,1885—1981),美国作家、哲学家、历史学家,普利策奖(1968年)、美国总统自由勋章(1977年)获得者。早年与胡适...
飞速发展的航空电子 本书特色 本书科学地、系统地回顾了航空电子近百年发展历史,从通信、导航、探测、电子战、侦察、监视、火力控制、航空电子管理和航空电子综合系统等...
精彩摘录Self-love,myliege,isnotsovileasinAsself-neglecting.——引自第76页Ill-willneversaid...
锅炉操作工 内容简介 中国中车股份有限公司编写的这本《锅炉操作工》是轨道交通装备制造业职业技能鉴定指导丛书之一,以企业职业技能鉴定的内容和形式为主要依据,分为初...
◆推理文坛无法逾越的一代宗师◆东野圭吾、宫部美雪、岛田庄司、京极夏彦都是松本清张的忠实读者。◆他开创社会派推理之先河,写尽人性的弱点和罪恶的根源。◆他的作品被改...
脑源性多器官功能障碍综合征 目录 **章 脑源性多器官功能障碍综合征(CMODS)综述第二章 概论**节 对MODS的认识过程第二节 MODS的现代概念第三节 ...
◎在日本销量破亿的系列漫画《乔乔的奇妙冒险》,中文简体版出版!◎第五部·黄金之风乔鲁诺·乔巴纳:我有一个梦想,就是成为黑帮之星!我要净化我所生长生活的街道!◎梦...
精彩摘录如果向程序员报告缺陷,他的第一反应是问你,“重现问题了吗?”——意思就是说,你能确实让问题再现一次吗?如果答案是
林中泽,1956年生,广东海丰人。华南师范大学历史文化学院教授、博士生导师。主要研究方向为世界古代中世纪史、中外关系及基督教会史。出版论著多种,主要有《早期西方...
出生于日本京都市,毕业于府立大阪女子大学。婚后开始认真学习幼年时就喜欢的针织,二儿子出生后,转为自由设计师。著有《钩针编织可爱的宝贝装》、《女孩与男孩的编织物》...
《追求精确》内容简介:★《追求精确》浓缩250年来精密制造的科学发展历程,带领读者见证公差是怎么从0.1缩小到0.000 000 000 000
吉姆·柯林斯,著名商业畅销书作家。柯林斯早年在斯坦福大学商学院从事教学与研究工作,并获得杰出教学奖。1996年,他回到家乡科罗拉多州的博尔德市,创办了自己的管理...
尾鱼热衷一切奇思怪想的轶闻,相信世界的玄妙大过眼睛,热爱旅行,尤喜探险,身体跨越不了的险境,就是故事开始的地方。代表作品:《怨气撞铃》《七根凶简》《西出玉门》《...
罗伯特·D. 卡普兰 著美国前国防部长第一幕僚,美国海军学院特聘教授,《外交政策》杂志评选的“100 位全球百大思考者”之一,新美国安全中心高级研究员,美国防务...
《30天App开发从0到1:APICloud移动开发实战》内容简介:本书围绕APICloud平台,全面、系统、细致地讲述了App开发的相关内容,涉及
在这本书中,英国摄影师吉米•纳尔逊用他的镜头带领我们,去寻找地球上最后未经污染的原始人性之美,为“他们”的存在留下最后的影像记录。生活在后工业时代的我们,往往会...
临床实用舌象图谱 本书特色 《临床实用舌象图谱》图文并茂、通俗易懂、颇多创新,既适合中医临床、科研和教学专业人士使用,也适合非中医人士学习了解中医,并可作为指导...