The theoretical description of an algorithm can declare that certain things are simply assumed not to happen. However, a real implementation may still have to include code to handle the case where something happens that was assumed to be impossible, even if that handling boils down to printf("Fatal System Failure") and exit, letting a human operator clean up the mess. This is arguably the difference between computer science and software engineering. [Designing Data-Intensive Applications (2017), Martin Kleppmann]
The building blocks required to achieve success in a business domain and differentiate the company from its competitors: Core domains : The interesting problems. These are the in-house activities the company is performing differently from its competitors and from which it gains its competitive advantage. Generic domains : The solved problems. These are the things all companies are doing in the same way. There is no room or need for innovation here; rather than creating in-house implementations, it’s more cost-effective to adopt \ buy existing solutions. Supporting domains: The problems with obvious solutions. These are the activities the company likely has to implement in-house or outsourced, but that do not provide any competitive advantage. Domain experts are subject matter experts who know all the intricacies of the business that we are going to model and implement in code. In other words, domain experts are knowledge authorities in the software’s business domain. T
Comments
Post a Comment