Design By Contract - sgml/signature GitHub Wiki
Technical Documentation, Featuritis and Document Sprawl
Dimension | WHATWG HTML Living Standard | RFC Process | Post-Document Culture |
---|---|---|---|
Scalability Model | Continuous integration of spec updates; no versioned snapshots | Versioned proposals with feedback cycles | Narrative-driven, modular, often Git-backed |
Documentation Style | Living spec in HTML format, updated via GitHub | Structured markdown or text proposals | Structured memos, markdown, or metadata-rich formats |
Governance Model | Maintained by browser vendors (Apple, Google, Mozilla, Microsoft) | Community-driven, often with formal review boards | Organizational or cultural, often decentralized |
Versioning | No fixed versions; always current | Explicit versioning (e.g., RFC 8785) | Git-based or memo-based version control (Amazon 6-Pager) |
Failure Modes | Risk of vendor dominance or lack of transparency | Risk of stagnation or siloed knowledge | Risk of fragmentation or lack of formal structure |
Canonical Example | HTML Living Standard | RFC 8785: JSON Canonicalization Scheme | Amazon Six-Pager Template |
Quotables
“The concept of a living standard is that it is never complete and is always being updated and improved. New features can be added but functionality will not be removed.”
— WHATWG HTML Living Standard
“RFCs are living documents that drive alignment across teams, create clarity, and provide a roadmap for implementation… Scalability: Creates a repeatable process that scales as the organization grows.”
— PointFive Engineering Blog
“Instead of using PowerPoint, Amazon executives sit around a table and read six-page memos in silence. This strategy allows a company’s executives to discuss the idea and review the details after reading the memo.”
— Forbes on Amazon’s Six-Page Memo Format
creating a separate class for each database table the problem simply goes away
- "Tony Marston on OOP"
Each task consists of a Controller which calls a Model which in turn calls a DAO to update the database. So for each use case you need to identify exactly what database operations are needed to achieve the desired result.
- "Tony Marston on OOP"
References
http://wiki.c2.com/?DesignByContractVsProgrammerTests
http://sett.ociweb.com/sett/settSep2011.html
https://news.ycombinator.com/item?id=7353767
https://www.eiffel.org/doc/eiffel/Examples
http://se.inf.ethz.ch/people/ciupa/papers/esecfse07.pdf
http://se.ethz.ch/~meyer/publications/lncs/model_library.pdf
https://news.ycombinator.com/item?id=15384351
http://www.math.md/files/csjm/v25-n1/v25-n1-(pp44-74).pdf
https://www.bbv.ch/images/bbv/pdf/downloads/V2_Clean_Code_V3.pdf
http://prr.hec.gov.pk/jspui/bitstream/123456789/7454/1/wafa.basit.phd.thesis.pdf