awesome to work in. You try to share it with someone. You can only describe it as simple, well- factored, intuitive, easy to use, awesome, etc. You don’t know why this code is great, it just is.
If your language is poor, you cannot make good buildings until you enrich your language. If your language is rigid, your buildings must be rigid. If your language is florid, your buildings will be florid. Your language generates the buildings which you make, and the buildings live or not, according to the life your language has.” Christopher Alexander, The Timeless Way Of Building
It is function which drives pattern usefulness, utility, and value. There are times we identify patterns ahead of time, but that should only come after understand context and function
do it; once you are persuaded that this is a good way to build floors, you go on doing it that way, until you have some reason to rethink it.” Christopher Alexander, The Timeless Way Of Building
method/class names, well named tests, behavior oriented tests, Side Effect Free functions, Value Objects Mid-level: MVC/MVP/Presenter-First, Responsibility layers, convention of directory structure, Service Patterns, Dumb Client, Data Context & Interaction, etc) High-level: Continuous Integration, Automated Tests, Git Workflow, Pivotal Tracker Workflow, Iterations Super high-level: Product development patterns like Feedback loops Stand-up, Iteration, Milestone/Release, Project Mgmt patterns like Weekly Budget, etc.