资源描述:
《Paradoxes of API Design .pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、1
2、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.
3、InsertInformationProtectionPolicyClassificationfromSlide8ParadoxesofAPIDesignJaroslavTulachNetBeansPlatformArchitect2
4、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.
5、InsertInformationProtectionPolicyClassificat
6、ionfromSlide8MottoJustlikethereisadifferencebetweendescribingahouseandaUniverse,thereisadifferencebetweenwritingacodeandproducinganAPI!3
7、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.
8、ParadoxIsparadoxunnatural?●Crossingtheknowledgehorizon●Fearofunknownvs.Iknowit“all”mode●
9、Expectationvs.reality●Theless“fear”themoreparadoxes●Softwareknowledge●School●In-housedevelopmenthttp://wiki.apidesign.org/wiki/Paradox●Framework4
10、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.WhoAreYourUsers?Rationalists?Empiricists!?Clueless!5
11、Copyright©2011,Oracleand/or
12、it’saffiliates.Allrightsreserved.SelectiveCluelessnessOnecannotunderstandeverything!●Understandingislimited●Takestime●Brainisfinite●Notnecessarytounderstandeverything●Linux,JavaVM,Tomcat,servlet,DBonstack-learnjusttheAPIfacade●Minimizeunderstanding!●Makeitincreasable!http://wiki.apides
13、ign.org/wiki/Cluelessness6
14、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.WhatisanAPI?Justlikewritingabook●Onewriter●Designincommittee?●Manyreaders●Unknowntothewriter-envisionedbyuse-cases●Best-seller●Speakclearly●Buildonreader'sknowledgehttp://wiki.apidesign.org/wiki/APIT
15、ypes●Keepconsistency7
16、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.MaintaininganAPIDevelopandsustain!●Writeonceandpublish●Creativityisgood–striveforelegance●Switchtosustainingmode●Preserve(unknown)investmentsmadebyAPIusers●Polish,Promote●IncrementalAPIDesign●Getreadyfore
17、volutionhttp://wiki.apidesign.org/wiki/Evolution8
18、Copyright©2011,Oracleand/orit’saffiliates.Allrightsreserved.QualityofanAPI?3sidestoeveryAPI●Writer'spointofview●Sacrifice!Eleganceistheleastpriority●Users'pointofview●UsinganAPIshouldleadto“nice”code●Upgradetonewversionshouldnotbreaka