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页
通用电气——或许是美国zui具代表性的公司——怎么会如此迅速而突然地没落呢?《华尔街日报》两位记者讲述了通用电气史诗般衰落的故事。自1892年成立以来,通用电气...
《后宫·甄嬛传》之大结局,文笔集中于后宫中一群红粉佳人,架空历史,塑造了宫廷中最艳丽又最寂寞的女人们的爱恨情仇、尔虞我诈
石守谦,艺术史研究者,曾任台湾大学艺术史研究所教授、兼所长,台北故宫博物院副院长、院长。现在是台北中研院历史语言研究所特聘研究员。2012年当选为第29届中央研...
电影正式成为大众化演出形式之后,就引起了哲学家、社会学家和心理学家的兴趣,也引起了一些颇有远见的艺术批评家或新闻记者的关注。不久,电影导演也依据自己的独特视点延...
作品目录全上古一代秦汉国六朝文凡例五未登备赎者不录然史家语例。颇未画一。如魏志张既王基千里东事。不云书启。汉书莽诏。半作
王小波,当代著名小说家、思想家。先后当过知青、民办教师、工人、工科学生,后于美国匹兹堡大学取得文学硕士学位。1988年回国,先后在中国人民大学和北京大学任教。1...
本书作者具有独特的知识谱系,以哈耶克思想为中心,上溯奥地利学派经济学,旁及苏格兰启蒙运动和普通法传统,并致力于发掘中国古典的自由主义思想与制度资源,试图融合中西...
法医秦明26年检验上千具尸体的一线公安法医,经验颇丰,绰号“老秦”。国内畅销悬疑作家,法医知识领域科普达人,千万级粉丝的警界大V。曾获得CCTV法治人物、华语原...
张海帆,本名张帆,山东威海荣成石岛宁津所人士。中国本土著名作家,编剧、影视策划人、影视制作人。曾用笔名:第三个宇宙的沉思,老夜,海中帆。其中老夜这个笔名在天涯论...
阿里·穆罕默德·萨拉比,利比亚著名作家、学者和政治家。其主要著作有《穆罕默德生平》《艾布·伯克尔传》《奥斯曼传》《阿里传》《萨拉丁传》《法蒂玛王朝史》《塞尔柱王...
小郎中学医记-爷孙俩的中医故事-3 本书特色 《小郎中学医记3》以中药教材为背景,以爷孙俩的行医故事为主线,展现每一味中药平凡而又神奇的一面,以及一个传统中医成...
乳品工程师实用技术手册 本书特色 1995年后我国乳品工业获得了高速发展,取得了巨大成就。但至今仍缺少一本全面反映我国乳品工业技术发展水平的应用技术著作,从事乳...
EddieKuceraisborntwomonthsafterthedeathofhisimmigrantfather,whowaskilledintheChe...
妇产科临床解剖学 内容简介 本书是“妇产科临床解剖学”,书中收录了腹壁解剖及妇产科手术切口、女性骨盆及盆腔支持系统、女性外阴与会阴、子宫内膜良性病变及不典型增生...
精彩摘录元钰张了嘴难以启齿,见她好整以暇望着自己,只好撇撇嘴道“还不是这人怪癖太见不对称、不整的物件摆设就浑身难受。你方
陈仲安(1922—1993),历史学家,汉唐历史研究专家,武汉大学历史系教授。武汉大学历史系毕业,师从著名历史学家唐长孺先生。曾负责“二十四史”《北史》点校,任...
两色风景:80后福州人。摩羯座。创作以幻想文学为主,已发表各类文章二千余篇。生性幼稚,所以写儿童文学;热爱动漫,所以写动漫评论;留恋青春,所以写青春小说;宅冷欠...
张文亮,美国加州大学戴维斯分校博士,台湾大学生物环境系统工程学系教授,科普作品集《谁能在马桶上拉小提琴?》获台湾第二十七届金鼎奖。著有:《科学大师的求学、恋爱与...
作品目录金刚经释义目录凡例《金刚般若波罗蜜经》疏义《金刚般若经疏》科释《金刚》“九喻”瑜伽述义心经释义目录凡例《心经》贯
听大师讲规划-中国城市规划学会学术成果 本书特色 《听大师讲规划》以访谈的形式,对40多位老一辈城市规划大家以及当前规划界的中青力量进行了专访。采访从多个角度进...