- JavaScript Domain:Driven Design
- Philipp Fehre
- 335字
- 2021-07-16 20:48:40
The core idea of domain-driven design
There are many software development methodologies around, all with pros and cons but all also have a core idea, which is to be applied and understood to get the methodology right. For a domain-driven design, the core lies in the realization that since we are not the experts in the domain the software is placed in, we need to gather input from other people who are experts. This realization means that we need to optimize our development process to gather and incorporate this input.
So, what does this mean for JavaScript? When thinking about a browser application to expose a certain functionality to a consumer, we need to think about many things, for example:
- How does the user expect the application to behave in the browser?
- How does the business workflow work?
- What does the user know about the workflow?
These three questions already involve three different types of experts: a person skilled in user experience can help with the first query, a business domain expert can address the second query, and a third person can research the target audience and provide input on the last query. Bringing all of this together is the goal we are trying to achieve.
While the different types of people matter, the core idea is that the process of getting them involved is always the same. We provide a common way to talk about the process and establish a quick feedback loop for them to review. In JavaScript, this can be easier than in most other languages due to the nature of it being run in a browser, readily available to be modified and prototyped with; an advantage Java Enterprise Applications can only dream of. We can work closely with the user experience designer adjusting the expected interface and at the same time change the workflow dynamically to suit our business needs, first on the frontend in the browser and later moving the knowledge out of the prototype to the backend, if necessary.
- Designing Machine Learning Systems with Python
- Android Jetpack開發(fā):原理解析與應(yīng)用實(shí)戰(zhàn)
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)教程
- JMeter 性能測(cè)試實(shí)戰(zhàn)(第2版)
- Java開發(fā)入行真功夫
- oreilly精品圖書:軟件開發(fā)者路線圖叢書(共8冊(cè))
- 程序員修煉之道:通向務(wù)實(shí)的最高境界(第2版)
- Go并發(fā)編程實(shí)戰(zhàn)
- Hands-On Functional Programming with TypeScript
- 51單片機(jī)C語(yǔ)言開發(fā)教程
- 后臺(tái)開發(fā):核心技術(shù)與應(yīng)用實(shí)踐
- DevOps 精要:業(yè)務(wù)視角
- 每個(gè)人的Python:數(shù)學(xué)、算法和游戲編程訓(xùn)練營(yíng)
- Mastering Clojure
- Pandas入門與實(shí)戰(zhàn)應(yīng)用:基于Python的數(shù)據(jù)分析與處理