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页
Abeautiful,butdead,blondeisdiscoveredinthelibraryofGossingtonHall.AndonlyMissMar...
カタワレ時、二人はついに出逢う──…。三葉の口嚼み酒を飲んで三葉と入れ替わることができた瀧。ティアマト彗星から三葉たちを
这是一本专门介绍图画书的书。图画书是一个包容性很强的概念,它种类繁多,各个种类之间界线也非常模糊,比如有人把图画书分成婴儿书、字母书、数数书、概念书、玩具书……...
马伯庸:作家。人民文学奖、朱自清散文奖、银河奖得主,有“文字鬼才”之誉。被评为沿袭“‘五四’以来历史文学创作的谱系”,“文字风格充满奇趣”。代表作:《七侯笔录》...
别让读不懂影响孩子的成绩、学习能力和终生阅读习惯的养成! 作为家长,你知道阅读能力很重要,想让孩子拥有良好的阅读理解能力。但你不敢贸然指导孩子,不知从何下...
为了给年迈的父母过生日,五个子女邀请他们来首尔。在首尔的地铁站,妈妈却走失了。丈夫和子女相互 埋怨,散发寻人启事,想方设法寻找她。他们追寻她的踪迹,复原有关她的...
光の雨が降ってくる重さのない光がからだの中を突き抜けていく『うたたね』『花火』『花子』3冊同時出版から10年―。アメリカ・Aperture社との共同出版による撮...
一切合乎逻辑理性的事情都难不倒“神探伽利略”,还有什么能让他苦恼?上市一周,即与《圣女的救济》包揽日本三大图书榜前2名这本书的故事,发生在《嫌疑人X的献身》和《...
作品目录剑尖的火花潜入温达姆城前夜祭礼千年封土深渊的重逢血路巴基拉卡石王城的花· · · · · ·
《互联网经济》内容简介:本书聚焦上海市互联网经济发展这个主题,从互联网技术、电子商务、互联网金融、物联网、电子医疗、信息化
《乐学Web编程》内容简介:本书通过通俗易懂的语言,向读者介绍了当前*主流的互联网应用之一——Web网站的技术实质,包括Web及各种
中医学基础 本书特色 为发展普能高等中医药专科教育,加强专科教材建设,提高专科人才培养质量,国家中医药管理局组织编写出版了专科中医学专业16门教材。本套教材主要...
可蕊本名閆冰,女,網名可蕊,一九七五年出生,山東省青州市人。自幼酷愛文學,尤其喜歡幻想類作品,著有詩歌散文集《遠去的歌》(2000年)。 2002年起在網路發表...
法里德•扎卡里亚Fareed Zakaria哈佛大学政治学博士,曾入选世界百名最具影响力的公共知识分子。他师从国际政治学大师亨廷顿,先后担任《外交事务》杂志主编...
手诊·手法整骨:诊治骨关节脱位、半脱位、错位 本书特色 手法诊断(简称手诊)似乎是不可思议又很神奇,虽然难以掌握,却是在临床诊断疾病的实践中不可或缺...
塞缪尔·亨廷顿哈佛大学阿尔伯特·魏斯赫德三世(Albert J.WeatherheadⅢ)学院教授,哈佛国际和地区问题研究所所长,约翰·奥林战略研究所主任。曾任...
祝东隅:90后一枚。美食爱好者,胃是无底洞。文字爱好者,喜欢各种治愈系和致郁系的词句。最爱做的白日梦是一觉回到小时候。
本书凝聚了一个从业多年、仍战斗在办公室工作一线的小秘书的实践经验总结和理论思考成果。它不是以往或粗制滥造、或板着面孔、或不说真话的职场书,而是敢于揭露职场真相的...
【编辑推荐】作为具有海军工程教育背景的军事史专家,亚历克斯·罗兰追溯了从☆早期的人类到现当代战争中技术和作战的共同演进过程,着重探讨了技术与战争之间依然保持着的...
鱼菲本名潘晋元创意美食家高级西点师ICS《洋厨房》“食尚厨神大赛”总冠军《橄榄餐厅评论》专栏作家已出版《行走的厨房》