A great practice in software development is clear error message communication.
"An error occurred. Please try again later.", simply will not do because it’s simply easier to be explicit.
Our goal here would be to ensure that a consistent interface is communicated to our client applications regardless of request.
Tools and frameworks like Ruby-on-Rails make this really easy with it’s ActiveRecord implementation (Active record is literally a design pattern btw).
You’ll find that in most “fully featured” frameworks with ORMs like Rails, Django, Sails, etc, there is some sort of implementation that enables a clean interface for transmitting error messages, but often we don’t want to carry the bloat of these frameworks along.
Enter: types. Read more ...