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页
《中国人的生活方式》内容简介:本书初版于1909年,正值风雨飘摇的满清王朝行将崩溃之际。作者在中国生活了半个世纪,几乎与各阶层
微型盆景创作手册 本书特色 终于有一本关于微型盆景方方面面的著作呈现在读者面前,它可能不是*全面的,但却是*用心、*有诚意的,是了解微型盆景知识的绝佳途径。书中...
TheFourthEditionretainstheelementsofthetextthathavecontributedtoitssuccesswhilea...
制浆造纸实验 内容简介 随着制浆造纸、林产化工等工业的快速发展,植物纤维化学及制浆造纸分析与检测技术也得到了相应的发展,分析测试技术的内容也更加丰富新颖,其方法...
从1989年开始,吕楠用15年的时间完成了他恢宏如史诗般的“三部曲”——《被人遗忘的人——中国精神病人生存状况》、《在路上——中国天主教》和《四季——西藏农民的...
互联网的存在令追求物美价廉的消费者与来自世界各地的商品只有轻点几下鼠标的距离。这诚然是一个伟大的科技进步,但却也是一个发人深思的商业现象。本书中,作者扎拉奇与斯...
《在轮下》内容简介:天才少年陨落,引起无数青少年共鸣,引发对于教育制度的反思。诺贝尔文学奖得主赫尔曼·黑塞代表作,多种辅文
董氏奇穴针灸学 内容简介 本书之穴位数目及部位、主治仍以“董氏正经奇穴学”内容为主,不做增减。原书每一穴位之解剖原系指作用而言,依旧照列,特加括号区别,在此之前...
常新港,中国作家协会全国委员会委员,黑龙江省作家协会副主席。已出版长篇小说《青春的荒草地》《陈土的六根头发》《天才街》《三臂树的传说》,小说集《独船》《光明树》...
林西莉:瑞典文的名字是塞西丽娅·林德奎斯特(Cecilia Lindqvist),教授、作家、摄影家和汉学家。1961—1962年在北京大学读书,同时在北京古琴...
Acomprehensivehandbookfocusingondermatologicaldrugsforthefelineandcaninepatient.
Itisintheinterestofthetotalitarianstatethatsubjectsnotthinkforthemselves,muchles...
孤独会危害人的身体健康?压抑真实感受的人更容易患癌症?精神压力会使类风湿关节炎发作?亲人离世会导致哮喘发作?……当心灵受了伤,身体也会记得★英国著名精神分析学家...
供配电技术 本书特色 本书是在进行了大量的现场考查和实地调研,广泛征求电力系统工程技术人员对课程建设的意见,同时结合供配电运行人员对岗位技能的要求,和企业工程技...
精彩摘录由于它的存在,那些彼此分离的人又走到了一起,不断地追求其命定的存在——无疑这种存在就是其更高更多的存在——引自第
作品目录前言简介第一部分 设计用户交互的基础第一章 入门……第二章 设计原则和方法学……第三章 基本概念……第二部分 Window
李峰,陕西宝鸡人。1983年西北大学历史系考古专业毕业,1986年获中国社会科学院考古研究所硕士学位,之后从事西周都城丰镐遗址的发掘。1990年进入日本东京大学...
木瓜黄,晋江文学网人气作者,被收藏数67804。作者文风诙谐幽默,轻松愉快,行文流畅,作品多描写丰富多彩的校园生活,深受年轻读者的喜爱,代表作有《伪装学渣》《七...
作品目录前言你能做到竞争精神我的梦想公司早期的玫琳凯公司玫琳凯的热忱面带微笑上帝第一,家庭第二,事业第三职业妇女的多重身
【比】弗雷德里克•莱卢(Frederic Laloux)独立学者、组织发展顾问。麦肯锡咨询公司前资深合伙人,欧洲工商管理学院MBA。