A Better Way to Code: Documentation Driven Development

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. clitest

    Command Line Tester

    This discussion reminds me of literate programming. An old idea for a more civilized age.

    It also reminds me of clitest[1] (very similar name to the author's lib, but it is another thing).

    You can write examples with prose in markdown, then let clitest verify them for you as if they were tests. Best of both worlds.

    [1] https://github.com/aureliojargas/clitest

  2. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  3. sequencer

    I really love this idea in theory, and I believe that for some system, specially mature ones, it may work well. I see good documentation as a super power; it empowers readers and motivate people to understand more about the system without being caught in the weeds of reading the source.

    The source has baggages, and the intent of every single function calls is not always evident. Writing documentation up-front can help direct the source, but this is a tug-of-war environment. Each affect the other in its own ways.

    And for that reason, documentation driven development can be a real drag. You start writing documentation with the best intentions, everything works great for this first release. But 2 months down the road you need to modify something and it has a ripple effect on many of the things you documented. It's a non-negligible cost.

    I've been working on this open-source tool(https://github.com/pier-oliviert/sequencer) and I've spent a lot of time on the documentation. And what I described above happened. I wanted to make a not-too-big change, and it required me to rewrite 30% of the documentation. I still love the documentation aspect of it, but it definitively has a cost.

  4. hitchstory

    Type-safe YAML integration tests. Tests that write your docs. Tests that rewrite themselves.

    I built a Python/YAML framework around the ability to build these tests and then generate documentation from them. E.g.

    https://github.com/hitchdev/hitchstory/blob/master/examples%...

    which generates

    https://github.com/hitchdev/hitchstory/blob/master/examples%...

    When you show this stuff to other people and gather feedback - that's essentially what BDD is, too.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Hitchstory – Type-safe StrictYAML Python integration testing framework

    1 project | news.ycombinator.com | 22 Apr 2024
  • Prompt Engineering Testing Framework

    1 project | news.ycombinator.com | 25 Feb 2024
  • Ask HN: Are there any LLM projects for creating integration tests?

    1 project | news.ycombinator.com | 12 Feb 2024
  • Optimizing Postgres's Autovacuum for High-Churn Tables

    1 project | news.ycombinator.com | 2 Sep 2023
  • Ask HN: BDD and Gherkin tests, do they provide value in the real world?

    1 project | news.ycombinator.com | 8 Jun 2023

Did you know that Python is
the 2nd most popular programming language
based on number of references?