Farnam Street blog has a good article, Nine mental models to solve difficult problems.
I’m a big fan of the book, Functional and Reactive Domain Modeling, and these are some of my notes (“CliffsNotes”) from the book, most of them coming from the first chapter.
If you’re interested in learning about “pay for written content” models, Medium has an article titled, The Medium Model
How we are building a system for high-quality publishing at scale.
“What are the models? Well, the first rule is that you’ve ot to have multiple models — because if you just have one or two that you’re using, the nature of human psychology is such that you’ll torture reality so that it fits your models.”
“You must know the big ideas in the big disciplines, and use them routinely — all of them, not just a few. Most people are trained in one model — economics, for example — and try to solve all problems in one way. You know the old saying: to the man with a hammer, the world looks like a nail. This is a dumb way of handling problems.”
~ from the book, Charlie Munger, The Complete Investor
“Show me your flowcharts (source code), and conceal your tables (domain model), and I shall continue to be mystified; show me your tables (domain model) and I won’t usually need your flowcharts (source code): they’ll be obvious.”
~ Fred Brooks, “The Mythical Man Month”
“It’s very hard to grow, because it’s difficult to let go of the models of ourselves in which we’ve invested so heavily.”
~ Ram Dass
This is a page from my book, “A Survival Guide for New Consultants”
“A man of knowledge lives by acting,
not by thinking about acting.”
Every once in a while when something hits you, you really remember it; it stands out in your mind as an “Aha” moment. One of those moments for me was when I saw a particular “Model/View/Controller” (MVC) diagram, and the light bulb went on. This diagram made the MVC pattern very simple, and I’ve never forgotten it.
This image comes from an article titled Design is Mainly About Empathy, where the main part of the article is that design is about understanding the user’s mental model about the thing you’re trying to design.
This is an excerpt from the Scala Cookbook (partially modified for the internet). This is Recipe 19.7, “How to add new behavior to closed classes (models) in Scala (type classes).”Back to top
You have a closed model, and want to add new behavior to certain types within that model, while potentially excluding that behavior from being added to other types.Back to top
Implement your solution as a type class.Back to top