Page 37 - 《软件学报》2021年第9期
P. 37
贾子甲 等:领域驱动设计模式的收益与挑战:系统综述 2661
6 总结与展望
本文面向领域驱动设计模式这一主题进行了系统文献综述,通过对 2003 年~2019 年 7 月的研究文献进行
识别、检索、筛选和分析,最终综合 26 篇高质量基础研究来回答所本文所提出的研究问题.本文提供了学术界
对于 DDDP 应用的研究现状概览,同时比较全面地综述了基础研究中应用 DDDP 带来的收益、挑战以及应对
挑战的缓解方法.
一方面,本文的研究表明:由于重视领域知识,实践者往往能够借助 DDDP 设计出良好的软件,并享受到其
所带来的收益,如架构质量改善和代码意图清晰.另一方面,本文的数据综合结果表明:46.4%的基础研究认为在
DDDP 的实践中存在很多困难,并将其总结为 17 个挑战.本研究中还发现了 17 种缓解方法,用于应对上述提到
的部分挑战.虽然这些缓解方法还不足以完美地支撑 DDDP 的应用实践,但是它们代表了实践者所付出的努力.
正是这些该领域的理论和研究的不完善之处,为研究者和实践者们提供了更加广阔的探索空间.
目前,应用领域驱动设计模式在实践中的价值得到了比较广泛的认可,但对于如何更好地享受其所带来的
收益,以及更加合理地应对其带来的挑战,则需要研究者进一步探索.与此同时,在软件工程中,没有任何一种技
术能够称为“银弹”,因此,应用各种 DDDP 所带来的局限或者挑战,仍需要未来进一步探索和反思.
References:
[1] Evans E, Wrote; Zhao L, Sheng HY, Liu X et al., Trans. Domain-driven Design: Tackling Complexity in the Heart of Software.
Beijing: Posts & Telecom Press, 2003 (in Chinese).
[2] Newman S, Wrote; Cui LQ, Zhang J, Trans. Domain-driven Design Quickly. Beijing: Posts & Telecom Press, 2016. (in Chinese).
[3] Nilsson J. Applying Domain-driven Design and Patterns: With Examples in C# and. NET. Pearson Education, 2006. 28−44.
[4] Vernon V. Implementing Domain-driven Design.1st ed. Addison-Wesley, 2013. 28−82.
[5] Millett S, Tune N. Patterns, Principles, and Practices of Domain-driven Design. John Wiley & Sons, 2015. 17−22.
[6] Bruhiere X. Use domain-driven design to architect your cloud apps. IBM, 2018. https://developer.ibm.com/tutorials/cl-domain-
driven-design-event-sourcing
[7] Alibaba T. Creating coding excellence with domain-driven design. Medium, 2018. https://medium.com/swlh/creating-coding-
excellence-with-domain-driven-design-88f73d2232c3
[8] Newman S. Building Microservices: Designing Fine-grained Systems. O’Reilly Media, Inc., 2015. 1−8.
[9] Rademacher F, Sorgalla J, Sachweh S. Challenges of domain-driven microservice design: A model-driven perspective. IEEE
Software, 2018,35(3):36−43.
[10] Zhang H, Li S, Jia Z, Zhong C, Zhang C. Microservice architecture in reality: An industrial inquiry. In: Proc. of the 2019 IEEE Int’l
Conf. on Software Architecture (ICSA). IEEE, 2019. 51−60.
[11] Singh M, Sharma A, Saxena R. Formal transformation of uml diagram: Use case, class, sequence diagram with z notation for
representing the static and dynamic perspectives of system. In: Proc. of the Int’l Conf. on ICT for Sustainable Development.
Singapore: Springer-Verlag, 2016. 25−38.
[12] Bogner J, Fritzsch J, Wagner S, Zimmermann A. Microservices in industry: Insights into technologies, characteristics, and software
quality. In: Proc. of the 2019 IEEE Int’l Conf. on Software Architecture Companion (ICSA-C). Hamburg: IEEE, 2019. 187−195.
[13] Jorgensen M, Shepperd M. Asystematic review of software development cost estimation studies. IEEE Trans. on Software
Engineering, 2007,33(1):33−53.
[14] Budgen D, Burn AJ, Brereton OP, Kitchenham BA, Pretorius R. Empirical evidence about the UML: A systematic literature review.
Software: Practice and Experience, 2011,41(4):363−392.
[15] Shahin M, Babar MA, Zhu L. Continuous integration, delivery and deployment: A systematic review on approaches, tools,
challenges and practices. IEEE Access, 2017,5:3909−3943.
[16] Fowler M. Patterns of Enterprise Application Architecture. Boston: Addison-Wesley Longman Publishing Co., Inc., 2002. 22−31.
[17] Larman C. Agile and Iterative Development: A Manager’s Guide. Addison-Wesley Professional, 2004. 128−140.
[18] Kitchenham BA, Budgen D, Brereton P. Evidence-Based Software Engineering and Systematic Reviews. CRC Press, 2015. 3−9.