Most ORMs out there include model validations as part of the features they provide. I think that’s kind of cool and very useful, but sometimes it’s better to abstract that responsibility away from the model, especially in cases where validations are tightly tied to other factors or flows.
This is a question that I sometimes get: Why don’t you use Bundler?
When writing code, our classes often go through a series of transformations. What starts out as a simple class will grow as behavior is added. And if you didn’t take the necessary precautions, your code will become difficult to understand and maintain. Too often, the state of an object is kept by creating multiple boolean attributes and deciding how to behave based on the values. This can become cumbersome and difficult to maintain when the complexity of your class starts to increase.
In agile software development pairing is a technique that engineers use to maximize efficiency and quality. It helps engineers deepen their practice and relationships. It adds a level of fun to their work and gives them more confidence that they are proceeding down the right path.
Errors in software
I began working on an iOS app called Healthy Baby at the end of 2014. At the time Swift 1.0 was already released and Apple was iterating on it rapidly, adding features and also changing the syntax of the language with each release of the SDK. It looked like the perfect time to start a new Swift project.
We believe in the not-too-distant future your home will know if it should save power by turning off the lights and lowering the heat because you are away on a business trip. We believe that your cars engine will start to warm up for you as soon as your thumb touches the handle on your front door. We believe you and your family will be protected from danger with smarter smoke detectors powering a more responsive fire department and providing a wealth of air quality data to more informed parents. But most importantly: we believe our ideas about what might happen pale in comparison to the explosion of creativity and genius that the product design and development community will unleash.