10 Terms You Should Know
Appropos of nothing, I’d like to make a very brief post of a list of terms, with links to where you can read more about them. These terms describe concepts that, when understood, I believe can help make you sharper in the way you approach things as a programmer. I don’t mean that learning them will immediately boost your productivity or solve any specific problem that you have, but I do feel that they may give you new ideas for designs or methods for reasoning about your code. So give them a read or at least a glance to brush up or learn something new.
(This list is by no means an attempt to be comprehensive, and please feel free to suggest others in the comments)
- Leaky Abstractions
- RESTful Architecture
- Lambda Expressions
- Aspect Oriented Programming (AOP)
- Duck Typing
- Command Query Responsibility Segregation (CQRS)
- Early and Late Binding
- Cache Coherence
Hopefully there’s at least one relatively new concept in here that you can let percolate in your brain for a while. And who knows, perhaps it will help you consider an alternate solution to some problem you face in the future.
[…] 10 Terms you should know, Erik Dietrich […]
Great list, I’d also add Anemic Domain Model (http://martinfowler.com/bliki/AnemicDomainModel.html).
Definitely a good one to know. I think there’s a good cross section of devs that think forms over data is all that exists.
Heads up: Early and late binding links to the same place as immutability.
Thanks — fixed it. Copy and paste fail (how embarrassing).