API Driven Development

Introduction to API Driven Development

  • Presenter: Kenneth Reitz
  • Overview: The talk focuses on API-driven development, highlighting how it benefits developers and enhances productivity.
  • Heroku Introduction: Heroku is introduced as a web platform that abstracts server management, making application deployment easier.

Open Source Contributions

  • Request Library: Kenneth discusses his contribution to the open-source community, specifically the “Requests” library in Python, which simplifies HTTP requests.
  • HTTPBin: He also developed HTTPBin, a web service for testing HTTP clients.

Service-Oriented Architecture (SOA)

  • Traditional Development Issues: Kenneth explains common issues in traditional development where components are tightly coupled, making iterative changes difficult.
  • SOA as a Solution: He advocates for Service-Oriented Architecture (SOA) where different components or services are decoupled, making them easier to manage and scale.

Building for Developers

  • APIs as First-Class Citizens: APIs should be designed with developers in mind, treating them as first-class citizens in the development process.
  • Readme-Driven Development: Kenneth recommends starting development by writing a README file that outlines how the API will be used, allowing developers to think from a user’s perspective.

Pragmatic Development

  • Problem-Driven Development: The best way to solve problems is by experiencing them firsthand. Kenneth shares examples, such as GitHub and 37signals, where products were developed to solve the founders’ own problems.
  • Simplicity Over Functionality: Kenneth emphasizes that a simple, easy-to-use API is more valuable than one packed with complex features.

Closing Thoughts

  • Simplicity in API Design: Simplicity should be prioritized in API design, ensuring that it is accessible and usable for developers.

Q&A Session

  • Service-Oriented Architecture: Kenneth discusses the challenges of transitioning a codebase to a service-oriented architecture and the importance of doing so early if scalability is a concern.