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页
1.我值得被愛,放下成見與包袱曾有機會迎來春天!2.帶你深入淺出了解男性心理,羅列「女神的十大條件」,你就能自然散發女人味!3.給所有不善聊天的小姐,掌握談話要...
作者彼得·亚伯拉罕斯教授行医已有30多年。著有《实用程序临床解剖学》、《普通放射学解剖学图册》、《临床解剖学要领》、《人体解剖学影像图册》等多部著作。屈晓旋 女...
作者简介乔舒亚·福尔(Joshua Foer),秘境舆图网站(AtlasObscura.com)的创始人之一。全球畅销书《与爱因斯坦月球漫步:美国
《时尚新娘造型专业技法》内容简介:本书向读者展示了30个新娘发型设计教程,并且配有大量的精彩案例赏析。本书以技术手法进行分类
正义的慈悲-美国司法中的苦难与救赎 本书特色 正义不仅存于冰冷的法律 更存于每个人心中的仁慈和悲悯|“美国的曼德拉”布莱恩·史蒂文森律师的 本书|《纽约时报》畅...
☆ 生活如此绝望,每个人却都兴高采烈地活着☆ 米格尔街和米格尔街上的人,都像盐一样平凡,像盐一样珍贵!☆ 诺贝尔文学奖得主V. S. 奈保尔成名作,获毛姆文学奖...
主编:七堇年,女,十月生,天枰座。自幼学习钢琴多年 后又接触吉他 爵士鼓等器乐,西洋绘画基本功扎实,爱好文字。立志脱离华而不实的矫情,即便文艺也须文艺得脚踏实地...
育儿中医智慧 本书特色 本书主要介绍富有传统中医文化特色的宝贵育儿智慧,从通过观察孩子的耳朵、眼睛、舌头、指甲、小便、大便和脸色等对其做健康状况整体评估入手,列...
作品目录中国的经济改革为什么与众不同——M型的层级制和非国有部门的进入与扩张中国特色的维护市场的经济联邦制中国的财政分权
年轻人要想在激烈的竞争中生存下去并获得成功,就要具备相应的技能。著名的成功学大师卡耐基总结出交际、口才与演讲是人生的3项基
阿曼达•诺克斯,这个在百度上搜索指数一直高居不下、被人们议论纷纷的名字,多次被搬上各种荧幕的主角:今年多伦多电影节展映了许多制作精良的纪录片,其中《阿曼达•诺克...
顾客为什么购买?顾客如何购买?两个看似简单的问题,却考验着上至企业领导,下至一线销售人员的智慧。在销售中做到"知已知彼"非
芬兰刑法典 本书特色 《外国刑法典译丛》提要:本译丛致力于追踪两大法系各国刑事立法前沿动态,及时将当今世界刑事立法*新成果与价值理念介绍给国人。“他山之石,可以...
每個人的故事都有它的意義——透過挖掘劉宰的生命故事,探索南宋士人的崇高使命感不再侷限皇帝達官顯要的歷史——重新建構南宋基層社會樣貌◎「與士大夫共治天下」不是說說...
陈达(1892—1975),著名社会学家,长期担任清华大学社会学系系主任,抗战时期任西南联合大学历史社会学系系主任和清华大学国情普查研究所所长。1948年获选为...
★ 诺贝尔文学奖得主若泽·萨拉马戈代表作★ 获葡语文学桂冠奖项“卡蒙斯文学奖”,被译成四十余种语言★ 时隔20年,简体中文修订版全新上市!-★ 一部虚构而极富原...
贪污贿赂罪立案追诉标准与司法认定实务 本书特色 《贪污贿赂罪立案追诉标准与司法认定实务》是国家出版基金资助项目。贪污贿赂罪立案追诉标准与司法认定实务 内容简介 ...
法医探案 本书特色 与亡灵对话,为生命作证。美国HBO王牌节目《验尸》隆重推荐。法医探案 内容简介 司法科学对一般人来说是一个基本上毫无所知的特殊领域,“事实上...
现代针灸器材与特种疗法 内容简介 编写本书是想引起社会各界的重视,针灸医学要发展,首先要重视针灸器材的发展,主管部门应重视政策上适当倾斜,给予发展的空间。为研究...
《中国法律史研究(2017年卷)》内容简介:《中国法律史研究》是中国法律史学会的会刊,由中国法律史学会主办。会刊以中国法律史研