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页
作者 | 以赛亚·伯林(Isaiah Berlin,1909—1997)英国哲学家和政治思想史家,20世纪最著名的自由主义知识分子之一。出生于俄国里加的一个犹太...
藤崎慎吾,日本新生代科幻小说作家,原名远藤慎一,毕业于美国马里兰大学海洋与入海口环境科学专业,日本科幻作家俱乐部成员,宇宙作家俱乐部成员。1999年,他凭长篇科...
作品目录《国学论坛精华录》目录 全文国学发微孔子论“学”……………………………………………李安纲(1)论儒家的经世之学及
《律师慢慢来》主要内容:着手写《律师慢慢来》时,我们,阳阳和小彤,正就职于国内一家主要从事非诉业务的知名律师事务所。从法
超级电玩任天堂Wii的创意是怎么产生的?——企划人希望开发一款全家老少可以一起玩、开心得像在家里吃火锅那样的游戏产品!但是,
☆写孔子的成长和转型,写孔子的执著与妥协☆细描圣人生活世界,还原孔子生平真相,发千载未发之隐覆☆品味贵族时代风貌,追寻古代政治文明。贵族社会为何渐行渐远,世袭寡...
比尔·奥莱特(Bill Aulet)麻省理工学院Martin Trust Center for Entrepreneurship总裁,麻省理工学院斯隆管理学院高...
大学毕业16年后,米奇偶然得知莫里教授病危,在恩师生命的最后几个月,他每星期二都去探望。于是,老师又单独给他上了最后14堂课。米奇根据这段经历,写成了风靡全球的...
极简经络按摩法:向止疼药说不.全家必备的急救魔法书 本书特色 一般观念认为,疼痛是操劳过度,或者机体老化造成的,五六十岁以后才多发。临床却发现,现代人在体能方面...
刑法中的事实错误 本书特色 刑法中的事实错误问题,在对我国刑法颇有影响的德日刑法学中都有深入研究,并且形成了学说之争的盛况。因此,对这一问题的研究,不可能忽略前...
英国法释义(第一卷) 内容简介 作者论述了英国法的基本原理和英国民主政体的形成基础,运用法律和法理学的基本精神和各项原则,对英国宪法的起源、历史及其合理性作了涵...
■ 新产品的研发是好的,但新市场的研发则更好。■ 失去好客户是坏事,抛弃坏客户则是好事。■ 车、烟、酒及衣服的品牌决定你的身份,但洗主衣粉的品牌与你的身份无关。...
(2013.3)-审判监督指导-总第41辑 本书特色 《审判监督指导(2012.3)(总第41辑)》以**手材料介绍其他法域的再审、减刑假释、案件质量管理等各种...
TheGenevaexpressjerkeditselfoutoftheGaredeLyons.ForafewminutesthelightsofouterPa...
17岁的高二学生万得,拳头厉害,成绩却是全班倒数第一。侏儒症的父亲,离家出走的母亲,智力缺陷的结巴叔叔,组成了万得残缺窘迫的少年生活。这也导致了他性情孤僻,自我...
淡水鱼养殖及鱼病防治 本书特色 《淡水鱼养殖及鱼病防治》包括两部分,**部分主要介绍了淡水鱼类养殖技术,包括养殖鱼类的生物学特征,主要养殖鱼类水环境,鱼类的营养...
建筑结构设计问答及分析-(第二版) 本书特色 朱炳寅编著的《建筑结构设计问答及分析(第2版)》的内容主要适用于非预应力钢筋混凝土多层和高层建筑结构、砌体...
苏肄海,四川大学经济系毕业,静雅思听有声读物网特邀作者,天涯网煮酒论史论坛人气作者,痴迷两次世界大战,熟读几十种相关图书,写作考据严谨、文笔生动。
郑永流,湖北省人,法学博士,博士生导师,现系中国政法大学法理学研究所教授,主讲法理学、法社会学和比较法总论。出版著作存《法治四章》、《法律方法阶梯》、《转型中国...
机械工程材料(第二版) 内容简介 简介本书是根据高等院校机械类冷加工各专业工程材料课程的基本要求编写的试用教材。本书从机械类各专业学生实际需要出发,介绍了常用机...