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页
《问水集》校注 本书特色 《问水集》是刘天和毕生的代表作,是其水利思想的总结,得到了时人和治水工作者的高度评价。本书采用传统与现代相结合的方法对问水集进行校对和...
古斯塔夫・勒庞 Gustave Le Bon(1841-1931) 法国著名社会心理学家。他自1894年始,写下一系列社会心理学著作,以本书最为著名,被 翻译成...
Samuel L. PopkinProfessor of Political SciencePh.D., MIT, 1969Voting Behavior, P...
中文首译本茨威格“明日的世界”一部真正的杰作----------------------------------------------------------...
酒井利夫:1962年,东京成为世界上第一个人口达到1000万的城市。酒井利夫就是在这年4月10日出生的。与他同年同月同日出生的还有广泽克己——一个伟大的棒球运动...
赖声川,创意源源不绝的创作人。1954年生于美国华盛顿,美国加州柏克莱大学戏剧博士,现任国立台北艺术大学教授、美国史丹福大学客座教授及驻校艺术家、【表演工作坊】...
彭志文:湖南娄底人,新浪军事名博,自由撰稿人,网络作家,民间观察家,现代军事评论员,环球网博客、中国军网、中思网名博或专栏人物,娄底一中历史教员,曾创办国内首家...
林巴巴这一生,一言难尽。他曾是一名理想主义者、哲学家、诗人,接着又成了吸毒者、劫匪和通缉犯。命运之神将他扔到了地球的另一端——印度孟买。在那里,他成为第一个融入...
李维毕业于复旦大学管理系,人力资源规划师。对“弱关系理论”有着很深刻的认识。作为资深的人际关系学专家,作者结合“弱关系理论”为人际关系提供了一个全新的视角,帮助...
本书在莱辛近千页的神学文章中选取了一部分,基本反映了莱辛神学写作的基本结构。阅读这些文章,特别要悉心领会莱辛对神学与哲学关系的看法。 目录: “莱辛注疏集”出版...
维修电工快速入门 内容简介 本书主要介绍维修电工应具备的电工基础知识和操作技能;电工常用工具和测量仪表的操作技能;电动机故障修理、检查技能;变压器的故障检修及试...
浙江针灸名家临证录 目录 楼百层 传承岐黄立奇功 创新补泻谱华章高镇五 精研针灸辟新路 医教结合续春秋阮少南 幼承庭训扬家学 针药并施震四海杨楣良 勇于创新造钩...
楊傑美(James Webb Young)楊傑美James Webb Young(1886年~1973年)美國傳奇廣告大師、廣告創意魔島理論的集大成者。在智威湯...
法国电影大师、新浪潮“五虎将”之一夏布罗尔的30堂大师课...................※编辑推荐※克劳德·夏布罗尔是法国国宝级电影大师、《电影手册》派导...
依四季花材与景致各异,寻味着色出130个极具画面感的花艺习作。或温婉甜美,一抹金黄的喜悦,一捧粉紫交叠的舒心,幸福满溢。或清丽流动,窗边青瓶中三两把野花向阳而开...
"This is an eminently readable book which an ordinary programmer, unskilled in m...
精彩摘录Theinitialquestionstreatedbyinformationtheorylayintheareasofdatacompressiona...
马铃薯变性淀粉加工技术 本书特色 本书着重介绍了马铃薯变性淀粉的性质、生产及应用。全书主要由三大部分组成:**部分主要介绍淀粉及变性淀粉的基本知识;第二部分全面...
多木木多。言情作家,人生目标就是吃遍天下美食,作品风格多变,喜欢尝试各种题材。代表作品:《满庭芳》、《炸年糕》、《失落大陆》、《重回初三》、《寄生》等。
The Art of Computer Programming is Knuths multivolume analysis of algorithms. Wi...