Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
When writing code, use the most abstract means available that get the job done. Think in terms of what operations put the least “capabilities strain” on the interfaces they operate on. This habit makes your code more generic, and therefore more reusable and more resilient to changes in its surroundings.
On the contrary, code that gratuitously commits to details is rigid and fragile: