13 Error handling and dependency inversion
This chapter covers
- How to layer and structure business logic
- How to decouple parts from services
- Many different approaches to dependency inversion
Programming is simple. I recommend it to everyone: writing code, and creating small applications for your own pleasure. Programming is simple. But development — development is extremely hard. So many technological options. So many subtle details. So many controversial requirements. So many things to account for.
Writing code is only a small part of development, and not the most difficult one. If you choose to be a software developer or even a software architect, you’ll have to talk with people, understand their needs, clarify requirements, make decisions, and balance between bad, very bad, and unacceptable solutions. Certainly, you’ll have to learn the domain you’re working in. In their professional lives, developers can change their second occupation many times. Today, you’re a telecom developer, and you have to be fluent in networking, billing, and accounting. Tomorrow, you learn cryptography and start working for a security company. Next time, you’ll move to write search engines, so you’ll buy several new books about natural language processing, algorithms, and data mining. Learning never stops.