Today I discovered 100kgarages.com. Seems like a cool idea. Not sure they’re operating in my area!
This one turned up in my feed today: There’s More to Design Than Data and Rationality. I feel like the author is discovering postmodernism. It made me realise that when people discover things they have the feeling like they’re the first (but they’re probably not).
Some thinking points for service design: Principles & Best practices of REST API Design.
Today I watched: How To Design A Good API and Why it Matters. Good talk. Favourite quote:
Inheritance violates encapsulation
Oh, and I followed on with: A Brief, Opinionated History of the API wherein (t=28:14) Bloch says it’s an API if you can answer yes to both of these:
- Does it provide a set of operations defined by their inputs and outputs?
- Does it admit reimplementation without compromising its users?
Today via Hacker News: 136 facts every web dev should know before they burn out and turn to landscape painting or nude modelling.
Server-routed sites aren’t perfect, but there’s a lot less that can go wrong.
Today via HN: Book Review: A Philosophy of Software Design.
An interesting article on data modelling and API design: Preemptive Pluralization is (Probably) Not Evil.
Over on the StackOverflow blog: Best practices for REST API design. Some of it is good but I disagree with a bunch of things. I made some notes:
* Use singular https://www.example.com/comment/list Not: https://www.example.com/comments * Use multidimensional selectors, not path/hierarchical selectors: https://www.example.com/comment/list?artist=nirvana&album=nevermind Not: https://www.example.com/album/nirvana/nevermind/comments * Use noun/verb format: https://www.example.com/comment/list https://www.example.com/comment/register https://www.example.com/comment/edit/54688 https://www.example.com/comment/view/54688 https://www.example.com/comment/reply/54688 * The [ noun, verb ] pairs map to Facilities for implementation: [ comment, list ] => CommentLister [ comment, edit ] => CommentEditor [ comment, view ] => CommentViewer Facilities have submit/render functionality and round-trip view state. * HTTP success 30x's not 2xx's. * Include a 'submission ID' on <form> elements for idempotent operations * GET and POST only, don't CRUD URLs, rather invoke business processes
Today I discovered Library Writing Realizations which has a bunch of things to think about when designing APIs.