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页
Japansjazzcommunity-bothmusiciansandaudience-hasbeenbegrudginglyrecognisedforits...
《三毛流浪记》所描述的三毛所生活的那个时代,已经成为了过去,但是了解过去,了解历史,却是每个人都必须完成的一份答卷。因为了解过去,了解历史可以让成长的脚步更沉着...
《只为遇见你:试管婴儿妈妈孕育手记》内容简介:★国内首部以患者角度来书写试管婴儿孕育全过程的书,填补了这一领域的市场空白。
在《故事是这个世界的解药》中,作家、书评人韩松落精选22位中外作家的文学作品,用一个写作者的眼光看向这些作品,并将他的阅读体验融汇成一本深刻而治愈的读书笔记,告...
《海浪》中每个引子都是一篇精致的散文诗,以太阳和海浪的涨落与变迁对应生命的兴衰沉浮;跟在每段引子后面的是六个没有姓氏的、高度形式化的人物在各自相应人生阶段——从...
作品目录第一讲 乔托与阿西西的圣方济各 / 001第二讲 多那太罗之雕塑 / 015第三讲 波提切利之妩媚 / 031第四讲 莱奥纳多·达
家畜针灸技法手册 内容简介 本书详细介绍了各种家畜的针灸技法,内容丰富翔实、语言通俗易懂,绝大部分来自于作者在日常兽医临床实践、科研教学中的经验积累,具有很强的...
作品目录1.西线的对峙 2.滩头争夺战 3.横扫德国的门阶 4.帝国上空的激战附文勾勒“死亡地带”的蓝图一位纳粹将军拯救巴黎的计划
重骑兵作为欧亚大陆上长久以来的重量级军种,数千年来为各文明所重视。该兵种逐步成熟之后,甚至在很长一段时间内,其实力就是陆军实力的标志。《重骑兵千年战史》是一部叙...
萧鼎,男,福建人,特立独行,寄情写作。长篇奇幻系列小说《诛仙》在中国台湾一经出版,即飙升至港台畅销书冠军榜,以其天马行空的想像、雄健恢宏的叙事迅速成为华语奇幻文...
蔡澜最“年轻态”的生活家,作家、美食家、电影人、主持人……爱美食、爱电影、爱旅行、爱书法……喜欢享受生活,更喜欢努力奋斗!《舌尖上的中国》《风味人间》总顾问,《...
村上春树(1949- ),日本小说家。曾在早稻田大学文学部戏剧科就读。1979年,他的第一部小说《听风之歌》问世后,即被搬上了银幕。随后,他的优秀作品《1973...
现代实用动物疾病防治大全 内容简介 本书适应养殖业结构调整,突出中小动物常见多发、新发、疑难病,结合当今新的防治方法,对猪、牛、羊、马、犬、猫、兔、鸡、鸭等动物...
※ 位居英国各大畅销书排行榜前列※ 美国版上市第1周即进入《纽约时报》非虚构类畅销榜,在榜时间超过4个月※ 《星期天泰晤士报》年度历史图书,《每日电讯报》年度好...
契诃夫(1860—1904),俄国伟大作家、散文家、戏剧家,其作品被翻译成一百多种文字。本书所选的几部戏剧作品,在一百年间享誉世界戏剧界,在世界各国剧院常演不衰...
这本文集的内容涉及农业与农村问题、改革与社会公正以及历史文化等三个方面。作者穿越历史的时空隧道,从经济学、社会学和政治学等视角,深入分析了当代中国农村面临的问题...
本书是“变量”系列图书的最新一本。著名学者何帆发愿要用30年的时间,通过这套书为中国经济立传。在《变量:大国的腾挪》中,何帆继续他对中国经济的记录。他用双脚丈量...
全球华语科幻星云奖银奖得主、百万畅销书作者、青春幻想及科幻小说人气作家,凯特世纪签约作者。曾任儿童杂志《小牛顿》以及《科幻世界》(少年版)执行副主编,校园知名杂...
夏丏尊,现代著名文学家、教育家、翻译家、出版家。浙江上虞人。夏丏尊长期从事语文教育和编辑工作。1930年起,创办《中学生》杂志。1935年,与叶圣陶合编初中文科...
安全法学 本书特色 本书结合当前我国安全生产的实际,从安全生产法律、安全生产行政法规、安全监察制度、安全生产标准等方面对安全生产法规与监察进行了阐述。本书理论阐...