返回介绍

第 6 章 软件架构重要吗

发布于 2024-08-18 00:06:35 字数 1189 浏览 0 评论 0 收藏 0

那么,软件架构重要吗?敏捷和软件工艺运动帮助提升了我们构建的软件系统的品质,这非常好。它们一起帮助我们在谨慎管理时间和预算限制的同时,写出更好、更能满足业务需求的软件。但是我们能做得更多,因为即使是少量的软件架构,也能帮助预防项目的很多问题。成功的软件项目不仅仅是好的代码,有时候你要暂时跳出代码,总览大局。

缺乏软件架构将引发问题

既然软件架构是关于结构和愿景的,那你可以说它总是存在的。我同意,确实如此。说了这么多,显而易见,不思考软件架构(以及“大局”)会导致团队经常遭遇一些常见问题。问问你自己下面这些问题:

你的软件系统有良好定义的结构吗?

团队里每个人都以一致的方式实现特性吗?

代码库的质量水平一致吗?

对于如何构建软件,团队有共同的愿景吗?

团队里每个人都得到了足够的技术指导吗?

有适当的技术领导力吗?

如果上面某些问题的答案是“不”,那就需要很好的团队和很好的运气才可能成功地交付一个软件项目。如果没人思考软件架构,最终结果往往看起来像一团乱麻(big ball of mud)1。当然,会有一个结构,但不是你想要的!其他副作用还包括软件系统太慢、不安全、脆弱、不稳定、难以部署、难以维护、难以改变、难以扩展,等等。我敢肯定你从没见过或参与过这样的软件项目,对吗?你没有,我也没有。

1: http://www.laputan.org/mud/

既然软件架构是每个软件系统都固有的,那我们为什么不干脆承认这一点,放一些心思在上面?

软件架构的好处

思考软件架构能带来哪些好处?总结如下:

让团队跟随一个清晰的愿景和路线图,无论这个愿景是一人所有还是整个团队共有;

技术领导力和更好的协调;

与人交流的刺激因素,以便回答与重要决策、非功能需求、限制和其他横切关注点相关的问题;

识别和减轻风险的框架;

方法和标准的一致性,随之而来的结构良好的代码库;

正在构建的产品的坚实基础;

对不同的听众,以不同层次的抽象来交流解决方案的结构。

所有软件项目都需要软件架构吗

我不会给出“看情况”这种典型的咨询式回答,相反我会说答案毫无疑问是肯定的,并提醒每个软件项目都应该考虑多种因素,以评估必需多少软件架构的思考。这些包括了项目/产品的大小、项目/产品的复杂性、团队的大小和团队的经验。对于多少是“刚刚好”,将在本书其他部分探讨。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文