API: Difference between revisions

Content deleted Content added
m Reverted 1 edit by 136.232.8.34 (talk) to last revision by Aranya (TW)
Bender the Bot (talk | contribs)
m Design: HTTP → HTTPS for Carnegie Mellon CS, replaced: http://www.cs.cmu.edu/ → https://www.cs.cmu.edu/
Line 124:
 
==Design==
The design of an API has significant impact on its usage.<ref name="Clarke4"/> The principle of [[information hiding]] describes the role of programming interfaces as enabling [[modular programming]] by hiding the implementation details of the modules so that users of modules need not understand the complexities inside the modules.<ref name="Parnas72">{{cite journal|last1=Parnas|first1=D.L.|title=On the Criteria To Be Used in Decomposing Systems into Modules|journal= Communications of the ACM|volume=15|issue=12|pages=1053–1058|date=1972|url=https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf|doi=10.1145/361598.361623}}</ref> Thus, the design of an API attempts to provide only the tools a user would expect.<ref name="Clarke4"/> The design of programming interfaces represents an important part of [[software architecture]], the organization of a complex piece of software.<ref name="GarlanShaw94">{{cite journal|last1=Garlan|first1=David|last2=Shaw|first2=Mary|title=An Introduction to Software Architecture|journal=Advances in Software Engineering and Knowledge Engineering|date=January 1994|volume=1|url=httphttps://www.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf|accessdate=8 August 2016}}</ref>
 
Several authors have created recommendations for how to design APIs, such as [[Joshua Bloch]],<ref>{{cite web