Stretching the Glasgow Haskell Compiler Nourishing GHC with Domain-Driven Design

被引:0
|
作者
Young, Jeffrey M. [1 ]
Henry, Sylvain [1 ]
Ericson, John [2 ]
机构
[1] IOG, Dallas, TX 75225 USA
[2] Obsidian Syst, New York, NY USA
关键词
functional systems; modularity; supple design;
D O I
10.1145/3609025.3609476
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Over the last decade Haskell has been productized; transitioning from a research language to an industrial strength language ready for large-scale systems. However, the literature on architecting such systems with a pure functional language is scarce. In this paper we contribute to that discourse, by using a large-scale system: the Glasgow Haskell Compiler (GHC), as a guide to more maintainable, flexible and effective, pure functional architectures. We describe, from experience, how GHC as a system, violates the desirable properties that make pure functional programming attractive: immutability, modularity, and composability. With these violations identified, we provide guidance for other functional system architectures; drawing heavily on Domain-Driven Design. We write from an engineering perspective, with the hope that our experience may provide insight into best practices for other pure functional software architects.
引用
收藏
页码:34 / 39
页数:6
相关论文
共 36 条
  • [31] Domain-specific Language and Tools for Strategic Domain-driven Design, Context Mapping and Bounded Context Modeling
    Kapferer, Stefan
    Zimmermann, Olaf
    PROCEEDINGS OF THE 8TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT (MODELSWARD), 2020, : 299 - 306
  • [32] A Reference Architecture for Blockchain-based Traceability Systems Using Domain-Driven Design and Microservices
    Wang, Yanze
    Li, Shanshan
    Liu, Huikun
    Zhang, He
    Pan, Bo
    2022 29TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, APSEC, 2022, : 269 - 278
  • [33] A Framework For The Domain-Driven Utilization Of Manufacturing Sensor Data In Process Mining: An Action Design Approach
    Brock, Jonathan
    Rempe, Niclas
    von Enzberg, Sebastian
    Kuehn, Arno
    Dumitrescu, Roman
    PROCEEDINGS OF THE CONFERENCE ON PRODUCTION SYSTEMS AND LOGISTICS, CPSL 2023-2, 2023, : 771 - 781
  • [34] Domain-Driven Design in Microservices-Based Systems Development: A Systematic Literature Review and Thematic Analysis
    Sangabriel-Alarcon, J.
    Ocharan-Hernandez, J. O.
    Limon, X.
    Cortes-Verdin, M. K.
    PROGRAMMING AND COMPUTER SOFTWARE, 2024, 50 (08) : 742 - 770
  • [35] CodeSlinger: A Case Study in Domain-Driven Interactive Tool Design for Biomedical Coding Scheme Exploration and Use
    Flowers, Natalie L.
    ADVANCES IN COMPUTATIONAL BIOLOGY, 2010, 680 : 565 - 572
  • [36] Practitioner Views on the Interrelation of Microservice APIs and Domain-Driven Design: A Grey Literature Study Based on Grounded Theory
    Singjai, Apitchaka
    Zdun, Uwe
    Zimmermann, Olaf
    2021 IEEE 18TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE (ICSA), 2021, : 25 - 35