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页
作品目录前言卷一君道第一(凡五章)政体第二(凡十三章)卷二任贤第三(凡八章)求谏第四(凡十一章)纳谏第五(凡十章)附:直
埃里克·霍布斯鲍姆(Eric J. Hobsbawm,1917—2012),享誉国际、备受推崇的历史学大师,英国皇家科学院院士、巴尔扎恩奖(Balzan Pri...
空中客车公司创建于1970年,是一家集法国、德国、以及后来加盟的西班牙与英国公司为一体的欧洲集团。其创建的初衷是使欧洲飞机制造商能够与强大的美国对手有效竞争。通...
北京大学与南京大学,分踞南北,同经百年世事,各具血脉气质,或不拘一格,善开风气,或诚朴雄伟,励学敦行。上世纪九十年代,恰时代交迭,思潮涌动,作者樊国宾闻道两校,...
【编辑推荐】★ 揭秘硅谷精英开启创业新模式的细节。披露马斯克、贝佐斯等人如何创建并运营航天公司的故事。怎样找准时机、布局调整、与对手抗衡……★ 马斯克的火箭是回...
Stellarastrophysicsstillprovidesthebasicframeworkfordecipheringtheimprintsleftov...
作品目录婆罗洲雨林探险记雨林边缘进入雨林雨林生物百态探访猩猩家族初遇猎人头族文明与原始的抉择燕窝探秘最后的普南族出草猎头
刘军宁,1961年生,安徽人。北京大学政治学博士。曾任中国社科院政治学所研究员,哈佛大学费正清研究中心访问学者,现为文化部中国文化研究所研究员。作为年轻一代政治...
俄罗斯著名的小说和戏剧作家列昂尼德·安德列耶夫(1871-1919)是一位人们争论很多的作家:有人说他是杰出的现实主义作家,有人说他是有着浓重颓废主义倾向的印象...
青木和雄,1930 年出生于日本神奈川县横滨市,毕业于早稻田大学第一文学部,专攻心理学,曾任横滨市教育委员会指导主任,并担任过横滨市立小学校长、横滨市教育中心教...
一本溯本求源、充满真知灼见的古诗词讲授之书。【内容简介】四千年中国历史,三千年古典文学。从诗与骚的古朴典雅,到唐诗宋词的繁丽辉煌,本书为我们展现了一幅流动的画卷...
本书由史密森学会编,史密森学会成立于1846年,是全球最大的博物馆综合体和研究机构综合体,拥有19个博物馆和画廊,一个国家动物园。国家自然历史博物馆收藏了大量文...
露西·莫德·蒙哥玛利出生在加拿大最美丽的爱德华王子岛,从小与外祖父母一起生活在一所老式的四周都是苹果园的农舍里,美好的田无生活培养了她对大自然的终生热爱。露西九...
作品目录前 言 / 1英国文学阅读应该是一种享受 / 3《摩尔•弗兰德斯》 / 9《格列佛游记》 / 11《汤姆•琼斯》和《项狄传》 / 13《
☆本书看点---------------------------------------------------------------------------...
图解国外高速铁路 目录 第1章 铁路的历史1.1 铁路的诞生1.2 蒸汽机车的发明促进了铁路网的发展1.3 国外修建铁路的高潮1.4 汽车和飞机对铁路的有力挑战...
ThetraumaticsocialupheavalwhichengulfedJamaicaintheearly1970sleftanyonefamiliarw...
拔罐保健治疗图解 本书特色 随着医疗改革的深入和回归自然观念的加强,安全有效、方便经济的传统疗法正越来越受到人们的普遍欢迎。为了使广大群众能比较容易地学会...
质量员必读 内容简介 本书介绍了施工企业质量员必须掌握的基础知识和专业知识。基础知识包括建筑材料、建筑识图、房屋构造、工程质量管理等;专业知识包括建筑工程个分部...
安吉拉·卡特(Angela Carter,1940—1992)英国知名女作家,作品风格独树一帜,融合魔幻现实主义、女性主义、哥特和寓言色彩于一体,想象奇诡,语言...