你好,我是陈亦峰,欢迎你和我一起学英语。

今天我们继续阅读InfoQ’s 2019, and Software Predictions for 2020这篇文章。

上一节我们通过用眼睛检索关键词的方式,快速浏览了这篇文章并整理出一个总体框架。这就好像我们踏足一片果园,采取只认苹果不管其他的办法,用最高的效率掌握了这片果园的地形图。接下来,你就可以根据自己的阅读目的,来选择某一块特定的区域去深入研究。

既然是预测类的文章,我们就截取这篇文章中预测 2020 年软件市场发展趋势的几个段落来深入阅读。在浏览全文时我们基本只是搜寻技术名词,今天深入阅读这几段内容时,我们只关注动词,看看搞懂了这些句子动词的含义,是否就能把整段的意思分析出八九分。

第一段

我们首先来看第一段,我先给你朗读一下,然后我把几乎所有的动词短语(加粗部分)都逐一用朗文词典查出来,看看能不能帮我们解决全部理解问题。

Making predictions in software is notoriously hard to do, but we expect to see enterprise development teams consolidate their cloud-platform choices as Kubernetes adoption continues. Mostly this will be focused on the“big five”cloud providers - Amazon, Google, IBM (plus Red Hat), Microsoft, and VMware (plus Pivotal). We think that, outside China, Alibaba will struggle to gain traction, as will Oracle, Salesforce, and SAP.

第一句话是一个并列句,并列连词 but 前面是一个简单句,but 后面是一个带有状语从句的复杂句,但其实一点也不复杂。我标出了五个和动作有关的词汇,包括动词、动词短语和带有动作含义的名词,我们分别来看一下,看看是不是这些词的意思理解准确了,整句话的含义就迎刃而解了。

pre‧dic‧tion /prɪˈdɪkʃən/ ●●○ AWL noun [countable, uncountable]

a statement about what you think is going to happen, or the act of making this statement

make a prediction

第一个词我查了 prediction,朗文词典里关于这个词的提示是两个黑点,属于中频词汇(一个黑点是低频词,三个黑点是高频词)。

此外,AWL 的含义是 Academic Word List,即学术词汇,也有人称之为雅思词汇表,包含学术英语中使用频率最高的 570 个词,也是学术类雅思考试即 A 类雅思考试中常见的词汇。词典里明确给出了 make a prediction 这个固定搭配。

前半句的主语就是这个固定搭配短语的现在分词形式,表示“预测软件行业(发展趋势)”,谓语动词是系动词 is,后面的副词 notoriously 即使不认识也没有关系,跳过就好,只要认得 hard 这个词的意思,这句话就明白了,表示“预测是很困难的”。

ex‧pect /ɪkˈspekt/ ●●● S1 W1 verb [transitive]

to think that something will happen because it seems likely or has been planned

expect to do something

expect somebody/something to do something

expect (that)

后半句话我查了四个词,第一个是 expect,三星高频词汇,同时也是口语 1000 词和书面 1000 词,需要我们熟练掌握所有用法。通过英文解释我们可以看到 expect 在这里也是“预测、预料、预期”的意思,结合前半句话,就可以看出这句话的逻辑关系,“软件行业预测很难,但是我们仍然预期……”,有点免责声明的意思,就是“预测错了也不要来怪我”的意思。

后面几段几乎都会出现 we think/we expect/we believe/we look forward to/we are hopeful 等句式,都是作者引导自己观点的“我认为、我预计、我相信、我期待…”等说法,不涉及实质内容,可以跳过不看。

con‧sol‧i‧date /kənˈsɒlədeɪt $ -ˈsɑː-/ ●○○ verb [intransitive, transitive]

1 to strengthen the position of power or success that you have, so that it becomes more effective or continues for longer

2 to combine things in order to make them more effective or easier to deal with

接下来是第一个涉及实质内容的动词 consolidate,一星低频词,这是一个警示,说明你可能不了解这个词。词典给出了两个意思,根据上下文,我们选择第二个意思,“合并……使更有效或更便捷”。

如果我们忽略前面“我们认为、我们预计、我们相信、我们期待”这些话,重新来看这句话就是 enterprise development teams consolidate their cloud-platform choices as Kubernetes adoption continues,主语“企业开发团队”和宾语“云平台”我们都是熟悉的,句子的主干就是“开发团队整合云平台”,在什么状态下发生的这个动作呢?

我们再来看 as 后面的状语从句,一共就三个字,主语是我们最熟悉的 Kubernetes 或 k8s,后面两个词我们来查一下。

a‧dopt /əˈdɒpt $ əˈdɑːpt/ ●●○ S3 W2 verb

if you adopt a new method, process etc, you start to use it

a‧dop‧tion /əˈdɒpʃən $ əˈdɑːp-/ noun

1 [countable, uncountable] the act or process of adopting a child

2 [uncountable] the act of starting to use a particular plan, method, way of speaking etc

con‧tin‧ue /kənˈtɪnjuː/ ●●● S1 W1 verb

[intransitive, transitive] to not stop happening, existing, or doing something

我们先查 adoption 和它的动词形式 adopt,中频词汇,口语 3000 书面 2000,很常用的动词,意思也很多,例如“收养小孩”。

我们根据上下文选择第二个意思,“开始使用某一特定的计划、方法、说话方式等”,在句子里就表示“随着越来越多的人开始使用 Kubernetes”。第二个词 continue 是高频词汇,口笔头都是 1000 核心词,所以大部分人都应该认识,表示“使用 Kubernetes 的趋势将继续下去”。

你看,只要了解了这五个带有动作性质的词汇,这句话的意思就非常清楚了。当然,我为了说明动作或动词在阅读理解技术类文档中的重要性,走了一个“极端”,因为上面这五个词并非人人需要查,你可以根据自己的具体情况,决定需要查其中的几个。

接下来,我们看这一段的后面一句话。

Mostly this will be focussed on the“big five”cloud providers - Amazon, Google, IBM (plus Red Hat), Microsoft, and VMware (plus Pivotal). We think that, outside China, Alibaba will struggle to gain traction, as will Oracle, Salesforce, and SAP.

fo‧cus /ˈfəʊkəs $ ˈfoʊ-/ ●●○ S3 W2 AWL verb (focused or focussed, focusing or focussing)

[intransitive, transitive] to give special attention to one particular person or thing, or to make people do this SYN concentrate

focus on

第一句话我们只需要查 focus 这个词。我们之前在讲第一篇文章的时候其实学过这个词了,不知道你还记得不?两星中频核心词汇,需要我们重点掌握,同时,词典还给出了同义词 concentrate,以及固定搭配 focus on。

这句话的主语是 this,应该指代上一句话说讲的“开发团队整合云平台”这件事情,整合将“特别关注”那些云平台呢?宾语是 big five cloud providers,后面的五个大厂我们就很熟悉啦。

strug‧gle /ˈstrʌɡəl/ ●●○ W3 verb [intransitive]

to try extremely hard to achieve something, even though it is very difficult

struggle to do something

trac‧tion /ˈtrækʃən/ noun [uncountable]

if a new idea or thing gains traction, it becomes accepted by or popular with more and more people

第二句话我们来查两个动词,第一个 struggle 是中频核心词汇,表示“很努力地去做很难的事情”,第二个动词词组你会觉得相对陌生一点,gain traction,像 gain 这种高频核心动词搭配名词的短语,一般查那个名词命中率会高一点。果然,我们一查朗文词典,traction 词条下面专门有 gain traction 这个固定搭配,根据英文的解释,是“更多人接受或变得更受欢迎”的意思。

这样,第二句话的意思也就非常清楚了,是说“阿里巴巴在中国以外的地区非常努力地希望成为更多客户所能接受的云服务供应商”,“Oracle、Salesforce 和 SAP 也是一样”。

好了,全都讲完了,我来把整段话给你翻译一下。

在软件领域做预测是出了名的困难,但我们预计,随着企业开发团队继续广泛使用 Kubernetes,他们将会进一步整合云平台的选择。大多数情况下,整合将集中在“五大”云服务提供商:亚马逊、谷歌、IBM(加上红帽)、微软和 VMware(加上 Pivotal)。我们认为,在中国以外的地区,阿里巴巴将努力争取获得更多客户的认可,甲骨文、Salesforce 和 SAP 也是如此。

第二段

我们接着看下一段,我还是先来读一下。同样,我也给你标注除了重点的英文单词。

In the platform/operations space we’re expecting that service meshes will become more integrated with the underlying orchestration frameworks (e.g. Kubernetes). We’re also hopeful that the developer workflow for interacting with service meshes becomes more integrated with current workflows, technologies, and pipelines.

这段话对于外行人来说,理解上存在困难的应该是 service meshes、orchestration frameworks 甚至 operation 这些技术名词。即便知道了“服务网格”、“服务编排框架”等常用的翻译方法,大部分情况下很多人其实并不理解这段话的意思。

对于一个知识结构存在重大缺陷的读者,如何利用互联网等工具去弥补缺陷,这是我们下一讲要讨论的话题。今天,我假定这篇文章的读者是业内人士,对于 IT 行业的知识结构是完整的,但英语阅读存在一些问题,那么你的问题大概率是出在对于动词的理解上。

这段话我查了三个词,这三个词都是 AWL 也就是雅思学术词汇表里 570 个常用词汇,需要彻底吃透。第一个词 integrate 的英文解释告诉我们,这个词强调的是“合并或合作使…更加有效”。

in‧te‧grate /ˈɪntɪɡreɪt/ ●○○ AWL verb [intransitive, transitive]

if two or more things integrate, or if you integrate them, they combine or work together in a way that makes something more effective

integrate (something) into/with something

第二个词在文章中是 underlying,但我们来查一下它最本源的动词 underlie,才能更好地理解 underlying 这个分词。动词 underlie 从字面看就是“躺在底下”的意思,根据英文解释,是指“作为…的原因,构成…的基础”,underlying 分词做形容词的话,就是“底层基础”的意思。

un‧der‧lie /ˌʌndəˈlaɪ $ -ər-/ AWL verb (past tense underlay /-ˈleɪ/, past participle underlain /-ˈleɪn/, present participle underlying, third person singular underlies) [transitive] formal

to be the cause of something, or be the basic thing from which something develops

第三个词 interact 是中频词汇,英文解释强调的是“人和人互相交流、共同合作”的意思。

in‧ter‧act /ˌɪntərˈækt/ ●●○ AWL verb [intransitive]

if people interact with each other, they talk to each other, work together etc

interact with

在上述理解的基础上,我们来看这段话的意思:

在平台、运维领域,我们预期服务网格与底层编排框架(例如 Kubernetes)可以实现更好的集成。同时我们也认为,用于和服务网格交互的开发人员工作流有望和当前的工作流、技术和流水线实现更好的融合。

这是比较准确的翻译,但是对于外行来说,依然不会十分理解这段话的意思。这是由于 IT 行业背景知识缺失所造成的,单单靠对外语的理解是无法弥补的。

第三段

我们再来看一段话,我还是来读一下:

Ultimately developers should be able to control deploy, release, and debugging via the same continuous/progressive delivery pipeline. For example, using a“GitOps”style pipeline to deploy a service by configuring k8s YAML (or some higher-level abstraction), controlling the release of the new functionality using techniques like canarying or shadowing via the configuration of some traffic management k8s custom resource definition (CRD) YAML, and enabling additional logging or debug tooling via some additional CRD config.

这段话的动词不少,但其中大部分应该都是你非常熟悉的,我就不去一个个查了。对于这一段,我主要想讲三点。

第一,虽然有些词在技术文档中经常出现,你见得多了自然认识并且知道中文说法,但有时候仍然建议你去查一下英英词典,了解一下这个词的英文解释。这对我们更好地理解一个词乃至文章的意思也是很有好处的。

例如 configure 这个词,大概所有工程师都认识是“配置”的意思,但我们不妨来查一下:

con‧fig‧ure /kənˈfɪɡə $ -ɡjər/ verb [transitive] technical

to arrange something, especially computer equipment, so that it works with other equipment

英文的解释指出 configure 的意思是“安排电脑设备,以便它能和其他设备一同工作”,了解这样一个用简单英语解释 configure 这个动词的定义,有助于加深我们对这个动词的理解,也有助于提高我们语言的灵活性。

此外,有时候我们可以想一想或者查一查中文“配置”的意思。“配”就是把缺少的补齐,“置”就是设立、布置,也是对我们理解这个词的意思蛮有帮助的。所以,有一些我们以为熟得不能再熟的词汇,也有可以深入学习的地方。

第二,有的词的意思不仅要知其然,还要知其所以然,要举一反三多问几个问题。

例如 canarying 这个词,是 canary 这个名词活生生给变成动词后加上了 -ing 的形式,变成了一个现在分词,那 canary 本身是什么意思呢?你肯定说,我知道呀,应该是“金丝雀版本”的意思。对,没错,这里就是把这个意思变成了动词,发布金丝雀版本,或者说进行金丝雀部署。那么,什么是金丝雀发布呢?你说我也知道呀,就是新版本先给一部分用户用,稳定之后再全面部署,平台测试功能稳定性用的。非常正确。但是这和“金丝雀”有什么关系呢?

你如果接着去查 canary 这个词,就会发现英语里面有一个成语叫 canary in a coal mine,叫做“煤矿里的金丝雀”。这种小黄鸟唱歌婉转悦耳,但对煤矿的瓦斯也就是一氧化碳极为敏感,吸入一点就死了。但人类要后知后觉很多,往往煤气中毒后发觉的时候就为时已晚。所以早年工人下矿井都会携带金丝雀,以便及时发现人类很难察觉的瓦斯泄露。后来,“煤矿里的金丝雀”就用来指代早期的预警信号。所以,部署金丝雀版本的目的就是通过软件测试版本的早期反馈,尽快发现问题。

你看,这样多问几个问题,你才能知道 shadowing 到底是什么意思,YAML 代表的是那几个词(不是 You are my love)。

第三,看懂了每一句话之后,要联系上下文看看整段的意思以及结构,不要只见树木,不见森林。

这一段显然是在上一段的基础上讲的,上一段在说服务网格与底层框架(Kubernetes)会更好集成,开发人员的工作流和流水线更好融合,所以这段是进一步具体阐述最终开发人员能通过相同的交付流水线管道,来控制部署、发布和调试这三项流程。

然后作者又举了三个例子来说明开发人员可以通过哪些方式或技术来控制这三项流程(如下列三点)。这样,结构就非常清晰了,我们读这一段的长句时,也就方便多了。

1.using a“GitOps”style pipeline to deploy a service by configuring k8s YAML (or some higher-level abstraction),

2.controlling the release of the new functionality using techniques like canarying or shadowing via the configuration of some traffic management k8s custom resource definition (CRD) YAML,

3.and enabling additional logging or debug tooling via some additional CRD config.

小结

好了,今天就讲到这里,余下几段内容留给你当作课后作业,你按照我说的方法去分析理解。

同一篇文章,对于不同知识背景或专业领域的读者来说,阅读的痛点是不一样的。例如技术类文档,对于大部分英文不太好、但技术很牛的读者来说,大部分的名词性质的技术词汇一般都不在话下,但对很多的动词理解不够深入透彻;当然对于英文再好的技术小白而言,让他们最头疼的恐怕就是诸如 k8s 这样的名词了,他们即使可以准确地翻译出全文,但仍然不了解全篇在说什么意思,因为这一片森林是他们从未涉足过的。

课后作业

  1. 阅读余下几段预测趋势的文字,按照我介绍的方法,去查你觉得需要查阅的动词以及其他存疑的固定搭配,看看是否对你的理解有所帮助。

In regards to architecture, next year will hopefully be the year of“managing complexity”. Architectural patterns such microservices and functions(as-a-service) have enabled developers to better separate concerns, implement variable rates of change via independent isolated deployments, and ultimately work more effectively at scale. However, our ability to comprehend the complex distributed systems we are now building – along with the availability of related tooling – has not kept pace with these developments. We’re looking forward to seeing what the open source community and vendors are working on in the understandability, observability, and debuggability space.

We expect to see more developers experimenting with“low code”platforms. This is partly fueled by a renewed push from Microsoft for its PowerApps, Flow, Power BI, and Power Platform products.

In the .NET ecosystem, we believe that Blazor will keep gaining momentum among web developers. .NET 5 should also bring significant changes to the ecosystem with the promised interoperability with Java, Objective-C, and Swift. Although it is early to say, Microsoft’s recent efforts on IoT and AI (with ML.NET) should also help to raise the interest in .NET development. Related we expect to see the interest in Web Assembly continue and hope that the tooling hear will start to mature.

Despite the negative news around VR this year, we still think that something in the AR/VR space, or some other form of alternative computer/human interaction, is likely to come on the market in the next few years and gain significant traction, though it does seem that the form factor for this hasn’t really arrived.

2. 通过下列两个链接,了解雅思学术词汇表 AWL,对 570 个常用学术词汇有一个大概的认识(其中第二个链接对每一个词都提供了英文解释和例句,还有小测验)。建议你制定一个学习计划,去吃透这 570 个词汇(其中很多你应该已经认识了)。

  1. The Academic Word List (AWL)
  2. Academic word list

如果在学习中有什么问题,你可以在留言区提问,同时欢迎你把学习心得分享出来,我们一起每天进步一点。