关于软件体系结构的理论和实践的最佳书籍?[关闭]


32

我公司中有几个开发人员希望从编程过渡到体系结构。关于软件体系结构的理论和实践,有哪些最好的书?如果可以,请附上封面照片。

随意包括一般书籍,以及与特定技术有关的书籍。


3
这不是直接的答案,所以只是一个评论。学习成为建筑师的最佳方法(也是唯一方法)是来自另一位建筑师,最好是总建筑师。从其他工程学科的角度来看,软件体系结构和工程总体上仍处于工业化前的状态。我们仍然在做学徒->旅人->大师级晋升。
JP Alioto 2010年

Answers:


15

替代文字

(链接到书)

这是一本非常不错的书,尽管它通常不涉及软件体系结构,而是涉及业务应用程序的体系结构。


当出版时,这是一本好书,但我认为其中的大多数模式在行业中都很少使用。这本书不错,但我肯定不是前五名之一
Uberto 2010年

尽管它被称为“企业应用程序体系结构”,但它与GoF设计模式书大致处于同一级别,该书是类级设计而不是应用程序级体系结构。
Thomas Owens

gh,我不喜欢这本书。它不会帮助您成为一名建筑师。
JP Alioto

这本书还不错,但实际上涉及企业应用程序。如果您要进行其他任何类型的开发(例如,台式机,移动设备,嵌入式),它不是很有用。
nikie 2011年

16

替代文字

但是,我鼓励这些开发人员不要进入体系结构,而完全不用编程。如果这样做的话,他们将不会受到程序员的任何尊重,也就没有足够的能力来做出架构决策。


11

经常被引用/引用的有关软件体系结构的书,以及当我在我的大学修读软件体系结构课程时使用的书是Len Bass,Paul Clements和Rick Kazman撰写的《 Software Architecture in Practice》(第二版)

至少有一位教授该课程的教授将尼克·罗赞斯基(Nick Rozanski)和伊恩·伍兹Eoin Woods)的教科书切换为软件系统体系结构,但是我不能保证这本书的质量或内容。根据塞尔吉奥·阿科斯塔Sergio Acosta)(在评论中),罗赞斯基的书是基于巴斯的著作而更新的,他认为这本书更容易阅读。我很少对软件工程程序中使用的书籍感到失望。


2
我都用过(Bass和Rozanski)。巴斯(Bass)长期以来一直是建筑圣经,但罗赞斯基(Rozanski)则是较新的并且是最新的。它更容易阅读,并且在很大程度上取决于Bass。我强烈建议从Rozanski's开始。
塞尔吉奥·阿科斯塔

1
+1开始学习建筑时,Bass的书很不错。它有点枯燥,但是它使您对应该考虑的事物有一个想法。
RationalGeek

10

2
现在已过时的书。四人帮的大多数模式都被滥用,以至于现在几乎成为反模式。像单例和抽象工厂。
Uberto 2010年

1
@Uberto这就是每个人都应该读这本书的原因。它解释了为什么以及如何使用每个模式以及何时应该考虑其他内容。如果更多的人阅读了整个模式条目,我认为很多问题都会消失。
托马斯·欧文斯

我发现那本书很难读懂。我怀疑大多数人只是假装他们已阅读并复制粘贴示例。因此,我不会建议它作为将来的架构师的第一本书。当然,对于当前软件体系结构的历史观点而言,这很重要。
Uberto 2010年

还有人认为Groupthink在软件行业是一种巨大的疾病吗?如果盲目地跟随专家(不是书所期望的,而是实际上发生的事情)是该专业的发展方向,那么我认为软件专业注定要失败。我不怪这本书。我指责阅读本书的人,并开始认为,古怪的模式付诸东流,可以弥补他们对其他干净代码基础实践的漠不关心。
沃伦·P


7

替代文字

这将是我的第二选择。关于实践和好的代码的好书。有时有点书呆子。


我同意它是古怪的,但是它所倡导的做法比2000行功能要好得多。
riwalk

是的,内容肯定是非常好的。
Uberto 2010年

这本书太低级了,不能被认为是软件架构。
史蒂文·杰里斯

6

替代文字

这是我目前的第一选择。关于如何立即构建(增长)应用程序的最佳书籍。






3

我不会引用已经被别人引用过的内容,因此我将其添加为:

彼得·范·罗伊(Van Roy)和赛夫·哈迪(Seif Haridi)撰写的《计算机编程的概念技术和模型》

计算机程序设计的概念技术和模型

明显的问题是,它使用了现已失效的(已淘汰的)莫扎特编程系统和令人惊叹的Oz编程语言。然后产生了其他有趣的实验,例如Alice ML编程语言

然而,这是一本了不起的书,既可以学习计算机编程,也可以深入了解CS概念,并且无需使用流行语就可以很好地了解体系结构概念。

有时有些冗长,但写得很好。

最终,也许更多的是CS理论书而不是企业体系结构书,但是我发现其教义对于应用于行业软件非常有价值。




2

一本有趣的书是《开源应用程序的体系结构》

建筑师在培训过程中查看了数千栋建筑物,并研究了大师撰写的这些建筑物的评论。相比之下,大多数软件开发人员仅会很好地了解一些大型程序(通常是他们自己编写的程序),而从未研究过历史上的伟大程序。结果,他们重复了彼此的错误,而不是依靠彼此的成功。

本书的目标是改变这一点。在其中,二十五个开源应用程序的作者解释了其软件的结构以及原因。每个程序的主要组成部分是什么?他们如何互动?他们的建设者在开发过程中学到了什么?在回答这些问题时,本书的撰稿人对他们的想法提供了独特的见解。


2

微软对此有一些非常好的东西。首先,这里有一本很棒的免费书籍:

http://msdn.microsoft.com/en-us/library/ff650706.aspx

另外,他们的许多设计白皮书也位于此处:

http://msdn.microsoft.com/en-us/practices/bb190351

您可能想阅读设计模式:

http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

然后是经典-神话般的人月,代码完整,实用的程序员等。使用一些Google搜寻可以帮助您找到好书。


2

试试这本小书

开发人员软件体系结构-本书实用且实用的软件体系结构指南

本书是一本论文集,它们共同构成了实用且实用的软件体系结构指南。

  1. 什么是软件架构?

  2. 软件架构师的作用是什么?

  3. 您如何定义软件架构?

  4. 您如何共享软件架构?

  5. 您如何交付软件架构?


codingthearchitecture.com博客上也有一些关于软件体系结构学科的优秀文章。
RationalGeek


1

从某种意义上说,您要问的问题是非常不明确的。软件体系结构是不同的东西,软件架构师是一堆非常不同的东西。

一些注意事项:

上面提到的“ Clean Code”是我读过的关于编程的最好的书之一。但这当然不是一本关于建筑的书。是的,对开发人员来说是必读的内容,但imo并没有提供更多有关较大内容如何组合的见解。

福勒的《 PoEAA》是一本好书,但正如其他人所说的那样,它现在已经有些陈旧了,并且所呈现的许多模式在几年前就已经过时了。

埃里克·埃文斯(Eric Evans)撰写的DDD书是一本非常扎实,非常鼓舞人心的书,它讲述了软件构建和客户协作-对于架构师来说是宝贵的技能,但对开发人员也有好处。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.