此链接用于介绍开发 ArchGuard 时,一些可以参考的书籍。
1.x
架构可视化
《程序员必读之软件架构》
通常,人们对软件架构师持两种错误的看法。有人认为软件架构师是一种高高在上的职位;有人认为软件架构师完全不懂开发,只是会画条条框框的指挥家。本书将打破这些传统的认知,模糊软件开发和架构在流程中的界限,进而为软件架构正名。本书是一本强调实践、注重实效、轻量级、面向开发者的软件架构指南。
重点:第四部分:可视化软件。介绍了 C4 模型,及其背后的一些思想。(PS:简要介绍见《用于软件架构的 C4 模型》)。 对应有一个 C4 Model 的 DSL: https://c4model.com/ 。
编译器(前端)
ArchGuard 1.x 主要是编译器前端,即对于代码的静态分析。其相关的书有:
- 《Antlr 4 权威指南》
- 《编程语言实现模式》Antlr 作者写的另外一本书。
规范化
- 《RESTful Web Services Cookbook》(书比较老,如果有的话,可以作为一种参考)。
- 《高性能 MySQL》(针对于代码中的 API,做出一些规范选择)
插件化
- 《Java 9 模块化开发:核心原则与实践》 模块化的参考方案之一,OSGi 可以是另外一种。
2.0
架构模式
《软件架构:架构模式、特征及实践指南》(此书新,推荐)
本书全面概述了软件架构的方方面面,涉及架构特征、架构模式、组件识别、图表化和展示架构、演进架构,以及许多其他主题。本书分为三部分。
重点:
- 第 1 部分,第 6 章,设计度量指标体系。
- 第 2 部分,架构风格。构建通识
《面向模式的软件架构 第1卷: 模式系统》
本书分8 章,第1 章系统介绍模式的概念,讨论描述模式的原则;第2 ~ 4 章讲解模式编目,分别阐述了架构模式、设计模式和成例;第5 章揭示如何将模式组织成模式系统及其重要性;第6 章探讨将模式融入软件架构的方法;第7 章概述模式的历史、相关著作及模式界;第8 章展望模式未来的发展方向。本书最后还给出了表示法、术语表、参考文献和索引,方便读者阅读及进阶。
- 第 1,2 章,构建通识。(和《软件架构:架构模式、特征及实践指南》相似)
- 第 6 章,思考如何构建模式的模型。
《面向模式的软件架构 卷4:分布式计算的模式语言》
本书是经典的POSA系列的第4卷,介绍了一种模式设计语言,将分布式系统开发中的114个模式联系起来。书中首先介绍了一些分布式系统和模式语言的概念,然后通过一个仓库管理流程控制系统的例子,介绍如何使用模式语言设计分布式系统,最后介绍模式语言本身。
适用于分布式系统的分析和度量。
《实用软件体系结构》
分析单体的架构,如:
- 概念视图:描述了整个系统需求向整个体系结构的转化。
- 模块视图:描述了如何将系统划分成模块并将模块组织成层。
- 执行视图:描述了系统的动态元素以及它们之间的交互。
- 代码视图:描述了源代码的组织结构。
指标度量
《演进式架构》
本书由IT行业领导企业ThoughtWorks的CTO和架构专家联合执笔,详尽介绍了演进式架构的必要性以及如何在具体的软件开发流程中实现演进式架构,涵盖了适应度函数、增量变更、架构耦合、演进式数据、构架可演进的架构、实践演进式架构等内容。
重点:第 2 章,适应度函数。
目的: 构建自定义的适应度函数。
数据分析
《数据自助服务实践指南》
推荐理由:在 ArchGuard 中,主要用来设计和实现架构的自助服务门户。
介绍
本书弥合了数据科学家与数据工程师之间的鸿沟——数据科学家被工程现实所束缚,而数据工程师对自助服务的工作方式一无所知。 通过学习本书,你将能够:
- 构建自助服务门户以支持数据发现、数据质量、数据沿袭和数据治理。
- 使用开源技术为每个自助服务功能选择合适的方法。
- 为数据的发现、准备、构建、实施定制自助服务。
- 实现数据开放与洞察提效的功能。
- 扩展自助服务门户,从而为组织内的大量用户提供支持。
3.0
领域特定语言
《领域特定语言》
本书是DSL领域的丰碑之作,由世界级软件开发大师和软件开发“教父”Martin Fowler历时多年写作而成,ThoughtWorks中国翻译。全面详尽地讲解了各种DSL及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。
重点:第 5、6 章,介绍外部 DSL 和内部 DSL 的差异。
目的:在外部 DSL 和内部 DSL 之前做一些选择。
模式的分析
《元素模式》(非必需,但是推荐)
本书介绍了一类全新的设计模式,称为元素模式(Elemental Design Pattern),其为软件工程设计模式的研究和应用打下了基础。元素模式深深植根于软件程序设计理论的研究,但其目的却在于实践性和实用性。从程序设计的新手,到资深的开发工程师,都是元素模式的目标受众。它能够带领学生加入软件工业的大军,也能够为研究者打开新的思路。
重点: 1~4 章,介绍了如何通过拆解元素的方式,对设计模式进行重组。
目的: 架构模式的拆解模型。
《面向模式的软件架构 卷5:模式与模式语言》
《面向模式的软件架构 卷5:模式与模式语言》共分3部分,首先介绍了单个模式,详细阐述了过去累积的关于如何描述和应用模式的诸多见解,接着探究了模式之间的关系,从组织的角度说明了各个模式的领域,最后介绍了如何将模式和模式语言相结合。
开源社区
《用户共创》
用户共创:社区赋能产品实战手册》提供了创建和运营社区的经验、方法和工具,解答了以下问题,帮助高级管理人员、创始人、客户倡导者和社区领导者获得竞争优势:我们建立社区的关键价值主张是什么?我们需要哪种社区,以及如何建立并将其集成到组织中?我们如何激励和鼓励社区成员的参与?我们如何与社区成员建立真实、富有成效的关系?我们需要避免哪些战略和战术上的陷阱与障碍?如何确保我们与社区成员一起不断成长?