Comment Comment by asguy There have been some great responses that cover the gist of it, but to add a couple more mundane specifics:- Build up the thinnest abstraction that lets you express a solution in the problem domain.- Allow the API user to express their intent, and not be focused on mechanics they don't need to understand to get the job done.- Focus on getting the interfaces right before the implementation is perfect.- A clean interface will allow you to make drastic changes to the implementation without the API consumer becoming aware. parent asguy 2 years ago
- Build up the thinnest abstraction that lets you express a solution in the problem domain.
- Allow the API user to express their intent, and not be focused on mechanics they don't need to understand to get the job done.
- Focus on getting the interfaces right before the implementation is perfect.
- A clean interface will allow you to make drastic changes to the implementation without the API consumer becoming aware.