Skip to content

josedacosta/awesome-spec-driven-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Spec-Driven Development Awesome

A curated list of awesome resources for Spec-Driven Development (SDD) - the practice of writing specifications first to guide development, testing, and documentation.

Spec-Driven Development is a methodology where comprehensive specifications are created before implementation begins. This approach ensures better alignment between requirements and delivery, improves code quality, and facilitates better testing and documentation.

Contents

What is Spec-Driven Development?

Spec-Driven Development (SDD) is a development methodology where detailed specifications are written before any implementation begins. These specifications serve as:

  • Single Source of Truth: All stakeholders refer to the same specification
  • Contract Definition: Clear interfaces between components and services
  • Test Foundation: Specifications drive automated testing strategies
  • Documentation Base: Living documentation that stays synchronized with code
  • Design Tool: Forces thinking about design decisions upfront

API Design

OpenAPI/Swagger

  • OpenAPI Specification - The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to RESTful APIs
  • Swagger Editor - Online editor for writing OpenAPI specifications
  • Swagger Codegen - Generate API clients, server stubs and documentation from OpenAPI specs
  • Postman - API development environment with OpenAPI support

GraphQL

Other API Specifications

  • AsyncAPI - Specification for event-driven APIs
  • JSON Schema - Vocabulary for validating JSON documents
  • Protocol Buffers - Language-neutral, platform-neutral extensible mechanism for serializing structured data

Tools

Design-First Tools

Code Generation

Validation & Testing

  • Dredd - HTTP API testing framework based on API Blueprint and OpenAPI
  • Prism - Mock server and validator for OpenAPI specifications
  • OpenAPI Diff - Compare OpenAPI specifications

Languages & Frameworks

JavaScript/TypeScript

  • tRPC - End-to-end typesafe APIs made easy
  • Zod - TypeScript-first schema validation with static type inference
  • TypeScript - Typed superset of JavaScript
  • io-ts - Runtime type system for IO decoding/encoding

Python

  • Pydantic - Data validation and settings management using Python type annotations
  • FastAPI - Modern, fast web framework with automatic API documentation
  • Marshmallow - Object serialization/deserialization library

Java

Go

Testing

Contract Testing

Property-Based Testing

  • QuickCheck - Property-based testing library for Haskell
  • Hypothesis - Property-based testing for Python
  • fast-check - Property-based testing framework for JavaScript/TypeScript

Documentation

Interactive Documentation

Documentation as Code

  • GitBook - Documentation platform with API integration
  • Notion - All-in-one workspace with API documentation features
  • Confluence - Team workspace with API documentation capabilities

Articles & Tutorials

Books

Videos & Talks

Communities

Examples

Sample Projects

Real-World APIs

  • GitHub API - Well-documented REST API with OpenAPI specification
  • Stripe API - Excellent example of API design and documentation
  • Twilio API - Clear API documentation and SDKs

Contributing

Contributions are welcome! Please read the contribution guidelines first.

License

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

About

A curated list of awesome resources for Spec-Driven Development

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages