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页
艾瑞克·伯恩(Eric Berne),美国心理学家,早年学习精神分析,20世纪50年代创立沟通分析流派(Transactional Analysis,简称TA)...
马克•布洛克(Marc Bloch,1886-1944),年鉴学派创始人之一,法国犹太裔史学大师。曾任斯特拉斯堡大学、索邦大学、蒙彼利埃大学等校教授,专攻中世纪...
微酸袅袅,80后青春校园金牌写手。 《花火》人气写手,十年来,每期文章票数从未下过前三,有居高的人气和固定的读者群。文风清新活泼,美好动人。作品常出现在《花火》...
张兴东,浙江绍兴人,北京语言大学 ,硕士。从事中学语文教学十余年,却是腔理性思维。有《用数学方法学语文》,业内小有声誉。
周其仁教授,北京大学国家发展研究院院长,央行货币政策委员会委员。早年在黑龙江下乡,其中在完达山狩猎七年半。1978 年从农村考入中国人民大学经济系。毕业后工作于...
亨利·J·亚伯拉罕已荣誉退职的弗吉尼业大学政府和对外事务的JamesHart教授。共有12部著作,其中包括:《法院与自由》(FreedonlandCourt,牛...
阿加莎·克里斯蒂被誉为举世公认的侦探推理小说女王。她的著作英文版销售量逾10亿册,而且还被译成百余种文字,销售量亦逾10亿册。她一生创作了80部侦探小说和短篇故...
乔纳森·芬比(Jonathan Fenby),曾任职于《南华早报》(The South China Morning Post)、《观察家报》(The Obser...
蔡仲德(1937-2004),曾任中央音乐学院音乐学系教授、博士生导师,全国音乐美学学会理事、冯友兰研究会常务理事,主要研究方向为中国音乐美学史,代表作有《音乐...
信号与系统-最新版-(第三版) 本书特色 《信号与系统(第3版)(*新版)》:面向21世纪高等学校精品规划教材·电气信息教材信号与系统-最新版-(第三版) 目录...
渊田美津雄:一九○二年生于日本奈良县。一九四一年海军中佐,“赤城号”飞行队长,袭击珍珠港飞行部队总指挥官。一九四二年,参加中途岛海战。一九四三年,第一航空舰队参...
Do your eyelids feel heavy during afternoon meetings? Do you sleep extra hours o...
Thisbookdescribestheboomof1998and1999.WhatagreattimeforalltheAmericanpeople.Next...
★英国当代思想家阿兰·德波顿主编、全球哲学与心理学普及项目「人生学校」十周年重磅出品:人生学校旨在帮助当代人更好地面对人生、提升修养与情商,在互联网上影响全球3...
月亮熊有人曾說「幽默是民主的成年禮」,那麼,我以幽默來緩衝故事背後的說教、諷刺與沉重意味,就算對於嚴肅的議題避而不談,光是看著我的作品也能哈哈大笑,那樣也很足夠...
虢子楷(笔名sheep)。毕业于四川美术学院工艺系陶瓷专业。 出版个人画集《妖绘卷》、《水仙》。喜欢人偶和木偶。 曾为电影《妖猫传》、《大鱼海棠》、《捉妖记2》...
姜小牙掌阅文学•趣阅小说网顶级言情作家。甜美外形,内心却狂野如火。擅长用天马行空的想象为女孩们筑造了一段段爱情美梦。
耶鲁大学政治哲学公开课姊妹篇,施特劳斯派经典之作一本书囊括现代哲学大师名著从文艺复兴的马基雅维利到20世纪诺贝尔文学奖作家索尔•贝娄,从小说与人生故事中,获取政...
《JavaScript网页特效范例宝典》内容简介:本书以网站开发者在开发中遇到的实际问题和应该掌握的技术为中心,全面介绍了JavaScript
☆ 古龙在《英雄无泪》中,创造了一种天下无敌的武器。☆ 歌女的歌、舞者的舞、剑客的剑、文人的笔、英雄的斗志,都是这样子的,只要是不死,就不能放弃。☆ 《英雄无泪...