Skip to Content
软件架构师速成指南
book

软件架构师速成指南

by Gregor Hohpe
May 2025
Beginner to intermediate
368 pages
3h 30m
Chinese
O'Reilly Media, Inc.
Content preview from 软件架构师速成指南

第 11 章 代码不用怕!

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

没有工具支持的情况下使用设计拙劣的语言编程毫无乐趣可言

Who dares run this code?
谁敢运行这个代码?

尤达( )是《星球大战》电影中绝地学徒卢克-天行者(Luke Skywalker)的智慧导师,他深知恐惧会导致愤怒;愤怒会导致仇恨;仇恨会导致痛苦。同样,企业 IT 部门对代码的恐惧和对配置的热爱也会使其陷入难以自拔的痛苦之中。当心黑暗面,它有很多面孔,包括供应商兜售 "只需要配置 "的产品,而不是乏味、容易出错的编码。可悲的是,大多数复杂的配置实际上只是编程,尽管使用的是设计拙劣、相当受限的语言,没有像样的工具或有用的文档。

对代码的恐惧

企业 IT( )通常受运营考虑的驱动,倾向于认为代码是包含所有错误、导致性能问题的东西,而且是由昂贵的外部顾问(第 38 章)编写的,很难追究他们的责任,因为当问题浮出水面时,他们早已转移到另一个项目中去了。有些 IT 领导者甚至自豪地宣称,他们是 "正规企业",而不是软件开发公司,所以他们不应该去管编码的事情。

备注

我所见过的惧怕代码的最怪诞的例子是,企业 IT 部门将应用服务器作为共享服务提供。一旦你在服务器上部署了代码,你将不再获得运行支持。这就好比你启动引擎后,汽车的保修就失效了--毕竟,制造商根本不知道你会对它做什么!

企业 IT 部门对代码的永久恐惧正中了企业供应商的下怀,他们将配置作为编码的安全替代方案。正如我们将看到的,这是一个相当短视的主张。

好心办不了好事

IT 部门对编码的反感源于一个很好的原则。大多数企业的 IT 都正确地遵循 "购买重于构建"的策略:购买现成的商用(COTS)解决方案不仅能节省 IT 部门的时间和金钱,还能让别人来操心定期更新和安全补丁的问题。一旦购买,就可以根据企业的具体需求对解决方案进行定制和配置。

同样,通用库和开源工具也是重用现有工作的好方法。开放源码工具 通常还伴随着一个广泛的社区,可以提供支持并使技术的采用更加容易。例如,你想让谁编写自己的 XML 序列器?有一个库就可以。

但有一个问题......实际上,有两个问题:首先,如果你希望对购买的软件进行配置,那么你就依赖于供应商已经预见到了你的定制需求,也就是说,供应商给了你选择权(第9章)。做好这一点,就意味着厂商已经完善了大而全的前期设计,正确预见了所有可能的需求,而我们其他人还在努力变得更加Agile(第 31 章)。其次,配置意味着在软件供应商提供的抽象环境中工作。现在,抽象通常是件好事,因为它能让你摆脱琐碎的细节,但有些抽象也有缺点。

抽象程度:简单与灵活

提高 的抽象层次是让开发人员生活更轻松的主要技术之一。得益于抽象技术,很少有程序员还在编写汇编代码、从硬盘读取单个数据块或将单个数据包放到 Network+ 上。高级语言、文件和套接字流已经很好地封装了这些细节。这些编程抽象非常方便,极大地提高了工作效率:如果没有它们,你可以试试!

如果抽象是如此有用,那么你就有理由怀疑,进一步增加抽象层是否能进一步提高生产率。 例如,你可以使用库或服务来实现所有业务功能。最终,你可以完全摒弃编码,只通过配置就能开发解决方案。如果这听起来有点好得不像真的,那是因为事实如此。

在提高抽象层级时,你会面临一个根本性的难题:如何在不失去太多灵活性的情况下建立一个真正简单的模型?例如,如果开发人员需要快速直接访问任何文件位置,那么文件流抽象实际上就会碍手碍脚,因为它需要按顺序读取文件。因此,最好的抽象是那些既能解决和封装问题的困难部分,又能给用户留出足够灵活性的抽象。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

游戏化头脑风暴

游戏化头脑风暴

Dave Gray, Sunni Brown, James Macanufo
超越Vibe编程

超越Vibe编程

Addy Osmani

Publisher Resources

ISBN: 9798341658028