Suche senden
Hochladen
Using Meaningful Names to Improve API Documentation
•
1 gefällt mir
•
661 views
Jan Christian Krause
Folgen
Hold on 20th Sep. 2016 at the "Write the Docs"-conference at Prague
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 11
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Life of HTML5
Life of HTML5
dynamis
Life of html5 (osaka)
Life of html5 (osaka)
dynamis
Integrando un rest api con refit
Integrando un rest api con refit
Charlin Agramonte
Api RESTFull
Api RESTFull
Germán Küber
The API Journey: from REST to GraphQL
The API Journey: from REST to GraphQL
Haci Murat Yaman
Nur Schall und Rauch?
Nur Schall und Rauch?
Jan Christian Krause
Using Thematic Grids to Document Web Service Operations
Using Thematic Grids to Document Web Service Operations
Jan Christian Krause
Master - Und was dann?
Master - Und was dann?
Jan Christian Krause
Empfohlen
Life of HTML5
Life of HTML5
dynamis
Life of html5 (osaka)
Life of html5 (osaka)
dynamis
Integrando un rest api con refit
Integrando un rest api con refit
Charlin Agramonte
Api RESTFull
Api RESTFull
Germán Küber
The API Journey: from REST to GraphQL
The API Journey: from REST to GraphQL
Haci Murat Yaman
Nur Schall und Rauch?
Nur Schall und Rauch?
Jan Christian Krause
Using Thematic Grids to Document Web Service Operations
Using Thematic Grids to Document Web Service Operations
Jan Christian Krause
Master - Und was dann?
Master - Und was dann?
Jan Christian Krause
Mashups
Mashups
Johan Eltes
Microservices: Lessons Learned
Microservices: Lessons Learned
Weaveworks
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
Paco Nathan
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
OSCON Byrum
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
HostedbyConfluent
Teched India Vijay Interop Track
Teched India Vijay Interop Track
vijayrvr
WP Solutions- Adi.pdf
WP Solutions- Adi.pdf
AdiseshaK
Implement Web API with Swagger
Implement Web API with Swagger
Jiang Wu
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Chris Richardson
Big Data on EC2: Mashing Technology in the Cloud
Big Data on EC2: Mashing Technology in the Cloud
George Ang
Migrating Apps To Azure
Migrating Apps To Azure
Harish Ranganathan
Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 Platform
WSO2
Resume
Resume
Deep Gajjar
Documentum Spring Data
Documentum Spring Data
Michael Mohen
Vijay Mix Presentation
Vijay Mix Presentation
vijayrvr
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic Apps
David Burg
The Glory of Rest
The Glory of Rest
Sławomir Chrobak
Arc Ready Cloud Computing
Arc Ready Cloud Computing
Philip Wheat
Xml web services
Xml web services
Raghu nath
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India
iDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-Dokumentation
Jan Christian Krause
Vermeidung von Stille und Rauschen in API-Dokumentatio
Vermeidung von Stille und Rauschen in API-Dokumentatio
Jan Christian Krause
Weitere ähnliche Inhalte
Ähnlich wie Using Meaningful Names to Improve API Documentation
Mashups
Mashups
Johan Eltes
Microservices: Lessons Learned
Microservices: Lessons Learned
Weaveworks
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
Paco Nathan
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
OSCON Byrum
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
HostedbyConfluent
Teched India Vijay Interop Track
Teched India Vijay Interop Track
vijayrvr
WP Solutions- Adi.pdf
WP Solutions- Adi.pdf
AdiseshaK
Implement Web API with Swagger
Implement Web API with Swagger
Jiang Wu
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Chris Richardson
Big Data on EC2: Mashing Technology in the Cloud
Big Data on EC2: Mashing Technology in the Cloud
George Ang
Migrating Apps To Azure
Migrating Apps To Azure
Harish Ranganathan
Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 Platform
WSO2
Resume
Resume
Deep Gajjar
Documentum Spring Data
Documentum Spring Data
Michael Mohen
Vijay Mix Presentation
Vijay Mix Presentation
vijayrvr
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic Apps
David Burg
The Glory of Rest
The Glory of Rest
Sławomir Chrobak
Arc Ready Cloud Computing
Arc Ready Cloud Computing
Philip Wheat
Xml web services
Xml web services
Raghu nath
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India
Ähnlich wie Using Meaningful Names to Improve API Documentation
(20)
Mashups
Mashups
Microservices: Lessons Learned
Microservices: Lessons Learned
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Teched India Vijay Interop Track
Teched India Vijay Interop Track
WP Solutions- Adi.pdf
WP Solutions- Adi.pdf
Implement Web API with Swagger
Implement Web API with Swagger
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Big Data on EC2: Mashing Technology in the Cloud
Big Data on EC2: Mashing Technology in the Cloud
Migrating Apps To Azure
Migrating Apps To Azure
Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 Platform
Resume
Resume
Documentum Spring Data
Documentum Spring Data
Vijay Mix Presentation
Vijay Mix Presentation
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic Apps
The Glory of Rest
The Glory of Rest
Arc Ready Cloud Computing
Arc Ready Cloud Computing
Xml web services
Xml web services
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Mehr von Jan Christian Krause
iDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-Dokumentation
Jan Christian Krause
Vermeidung von Stille und Rauschen in API-Dokumentatio
Vermeidung von Stille und Rauschen in API-Dokumentatio
Jan Christian Krause
Gut dokumentiert ist halb gesichert
Gut dokumentiert ist halb gesichert
Jan Christian Krause
Systematische Konstruktion von API-Verträgen
Systematische Konstruktion von API-Verträgen
Jan Christian Krause
Mut zur Lücke - Werkzeuge zur alltagstauglichen Dokumentation
Mut zur Lücke - Werkzeuge zur alltagstauglichen Dokumentation
Jan Christian Krause
Leichtgewichtige API Dokumentation
Leichtgewichtige API Dokumentation
Jan Christian Krause
Mehr von Jan Christian Krause
(6)
iDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-Dokumentation
Vermeidung von Stille und Rauschen in API-Dokumentatio
Vermeidung von Stille und Rauschen in API-Dokumentatio
Gut dokumentiert ist halb gesichert
Gut dokumentiert ist halb gesichert
Systematische Konstruktion von API-Verträgen
Systematische Konstruktion von API-Verträgen
Mut zur Lücke - Werkzeuge zur alltagstauglichen Dokumentation
Mut zur Lücke - Werkzeuge zur alltagstauglichen Dokumentation
Leichtgewichtige API Dokumentation
Leichtgewichtige API Dokumentation
Kürzlich hochgeladen
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
joe51371421
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
gurkirankumar98700
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
MyIntelliSource, Inc.
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
kellynguyen01
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
panagenda
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
kalichargn70th171
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
harshavardhanraghave
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
Fatema Valibhai
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Software Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
Arshad QA
Clustering techniques data mining book ....
Clustering techniques data mining book ....
ShaimaaMohamedGalal
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Wave PLM
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
Andolasoft Inc
Professional Resume Template for Software Developers
Professional Resume Template for Software Developers
Vinodh Ram
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
ABDERRAOUF MEHENNI
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Jhone kinadey
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Dynamic Netsoft
Kürzlich hochgeladen
(20)
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Software Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
Clustering techniques data mining book ....
Clustering techniques data mining book ....
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
Professional Resume Template for Software Developers
Professional Resume Template for Software Developers
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Using Meaningful Names to Improve API Documentation
1.
Talk at „Write the Docs“ Prague, 20th September 2016 Jan ChrisAan Krause Using Meaningful Names to
Improve API-Documentation
2.
©iteratec Wri$ng useful API-Documenta$on is difficult ... How to migitate obstacles? › Include good examples › Be complete › Support many complex usage scenarios › Be conveniently organized › Include relevant design elements MarAn P. Robillard: What Makes APIs Hard to Learn? Answers from Developers; In: IEEE SoRware, Vol. 26, No. 6; 2009 2016-09-20 | „Write the Docs“ 2
3.
©iteratec ©iteratec ©iteratec Improving Completeness of API-Documenta$on An Example from the Java 8 Mail API public abstract class Transport extends Service { public void send(Message msg) throws MessagingExcepAon { // ... } } /** * * @param msg * @throws MessagingExcepAon * */ Addressee(s)? Message- Format? Via which Server? Excep$onal States? Sends a message. 2016-09-20 | „Write the Docs“ 3
4.
©iteratec Names allow Verifica$on Are these Objects Volkswagen Type 2 T3-Busses? == Matches Paaern? Object A Object B 2016-09-20 | „Write the Docs“ 4
5.
©iteratec Match the API-DocumentaAon against the chosen paaern 3 Applying Documenta$on PaWerns SubmiXng Opera$on Verbs: to send, to submit, to noAfy @DESTINATION Where the MESSAGE is recieved @MESSAGE
What is transferred @FORMAT The structure of the transferred MESSAGE @INSTRUMENT The infrastructure used to transfer the MESSAGE › public void send(Message msg) › public void submit(Message msg) › public void noAfy(Message msg) › [...] Choose the Verb for the operaAon 1 Find the best matching documentaAon paaern 2 2016-09-20 | „Write the Docs“ 5
6.
©iteratec Using Names to Detect Gaps in API-Documenta$on Applying Documenta$on PaWerns (I) /** * Sends a message. * * @des$na$on The message will be sent to all recipient addresses specified in the message (as * returned from the Message method getAllRecipients), using message transports appropriate * to each address. The send method calls the saveChanges method on the message before sending it. * * @instrument Note that send is a staAc method that creates and manages its own connecAon. * Any connecAon associated with any Transport instance used to invoke this method is ignored and * not used. This method should only be invoked using the form Transport.send(msg), and should never * be invoked using an instance variable. * @param msg [MESSAGE] * @throws MessagingExcepAon * [...] 2016-09-20 | „Write the Docs“ 6
7.
©iteratec Using Names to Detect Gaps in API-Documenta$on Applying Documenta$on PaWerns (II) * @des$na$on [ERROR] In typical usage, a SendFailedExcepAon reflects an error detected by the server. * The details of the SendFailedExcepAon will usually contain the error message from the server (such as an * SMTP error message). An address may be detected as invalid for a variety of reasons - the address may * not exist, the address may have invalid syntax, the address may have exceeded its quota, etc. If any of * the recipient addresses is detected to be invalid by the Transport during message submission, a * SendFailedExcepAon is thrown. Clients can get more detail about the failure by examining the excepAon. * Whether or not the message is sAll sent successfully to any valid addresses depends on the Transport * implementaAon. See SendFailedExcepAon for more details. * * @instrument [ERROR] Note also that success does not imply that the message was delivered to the * ulAmate recipient, as failures may occur in later stages of delivery. Once a Transport accepts a message * for delivery to a recipient, failures that occur later should be reported to the user via another * mechanism, such as returning the undeliverable message. **/ 2016-09-20 | „Write the Docs“ 7
8.
©iteratec The Documenta$on PaWerns I found so far ... 2016-09-20 | „Write the Docs“ 8 Types of Opera$ons: Checking Deriving Merging
Parsing DeposiAng Reading DeleAng ConverAng Searching Submitng IniiaAng Replacing Traversing …. Describing Resetng CompuAng ConnecAng CreaAng DuplicaAng Logging
9.
©iteratec I share them
here: github.com/jankrause/wtd-2016
10.
©iteratec Advantages of this Approach: › IdenAfy characterisAcs of an operaAon, which are invisible on its signature (e.g. resources, algorithms or formulas) › Derive excepAonal cases ›
Improve understandability of the API through usage of meaningful verbs
11.
www.iteratec.de Dr. Jan Christian
Krause Mail: jan-christian.krause@iteratec.de Twitter: @idocit Github: github.com/jankrause
Jetzt herunterladen