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页
车林外史-世界汽车品牌通俗演义 本书特色 世界汽车百余年,出现过数千个品牌,能够存活至今并称之为著名品牌的并不多。何继亮这本书,细数著名汽车品牌前世今生,顺手拈...
《虚拟现实的10堂课》内容简介:本书以10堂课的形式全面系统地对虚拟现实进行介绍。其中,第一堂课介绍虚拟现实发展概况,主要包括
面向不确定性的水资源安全评价和预警理论及方法 内容简介 在水资源安全问题日益严峻的背景下,水资源开发利用和管理面临的复杂性和不确定性逐渐增加,给水资源管理和水资...
詹姆斯·G·弗雷泽(Sir James George Frazer,1854—1941),英国人类学家、民族学家、宗教史学家。曾任利物浦大学和剑桥大学教授。早年...
缪娟,生于80年代,天蝎座,沈阳人。喜欢好烟,淡酒,雪后高山和夜色中的海。原为专业法文翻译,现在阿尔卑斯山谷小城生活。性格开朗到粗糙,不离烟酒,不停做梦。春夏秋...
孫中山與日本的關係,複雜且微妙,尤其是他與日本政客以及民族主義者的交往一直頗受民國史研究者的關注。孫中山以革命推翻滿清政府,建立中華民國的背後,他的日本友人擔當...
图解儿童保健按摩 内容简介 图解实用保健按摩丛书。图解实用保健按摩丛书。图解儿童保健按摩 目录 **章常用手法第二章常用穴位一、头面部穴位二、胸腹部穴位三、腰背...
刘小枫教授(1956-),男,重庆人,1978.09—1982.07 就读于四川外语学院,获文学学士学位;1982.09-1985.01 就读于北京大学,获哲学...
A collection of eighteen essays by the author of Nineteen Eighty Four and Animal...
The Tiger I tank, probably the most famous German armoured vehicle of the Second...
When Barry Fairweather dies unexpectedly in his early forties, the little town o...
E·B·怀特(1899―1985),二十世纪美国最杰出的随笔作家。作为《纽约客》主要撰稿人,怀特一手奠定了影响深远的“《纽约客》文风”。怀特对尘世上的一切都怀着...
智者面前有一頭真的大象,智者在大象面前蹲了下來。智者說:「這不是一隻大象。」過了一會兒,當大象轉身並開始笨重的移開,智者心中升起一股懷疑:是否有可能大象根本就沒...
ACompaniontoEconomicForecastingprovidesanaccessibleandcomprehensiveaccountofrece...
菜根谭 本书特色 洪应明所著的《菜根谭/全民阅读经典小丛书》展示的不是某一生活侧面,而是一个完整的生活。《菜根谭》所面对的不是某一种人,而是芸芸众生。《菜根谭》...
张定浩,笔名waits,著有《既见君子》《取瑟而歌》《孟子读法》《爱欲与哀矜》《无形之物》等,译有《我:六次非演讲》《悼念集》。2016年凭借诗集《我喜爱一切不...
夏广兴,男,1963年,山东新泰人。上海师范大学人文与传播学院教授。1990年毕业于上海师范大学古籍整理研究所中国古典文献学专业,获文学硕士学位,同年留校任教。...
世界上到底有多少对手,到底有多少成功的路子,恐怕是难以计数的。但有一个对手,有一条路子你必须要认清,这就是你应该辨清自己
《大智慧炒股软件从入门到精通》内容简介:本书分为4篇,共27章。第1篇【入门篇】主要介绍了炒股的基础知识、大智慧软件的安装与运
作者简介:达内兄弟(让–皮埃尔•达内 和 吕克•达内),比利时著名电影导演,与英国导演肯•罗奇、迈克•李等齐名的欧洲社会电影杰出代表。 1970年代开始联合执导...