InfoQ 迷你书 笔记

《架构师 2018 6月刊》笔记

2018-06-29  本文已影响52人  专职跑龙套

迷你书地址:http://www.infoq.com/cn/minibooks/architect-201806

现在的时代本来就是终身学习的时代,不光是领域知识,连常识都在不断更新,你不去更新自己的知识,那只有落伍。
不过,学习有技巧,可以学的快一些,学的轻松一些。
这个技巧指的是两方面:

焦虑是这个时代的常态,学会与它为伍,这是你第一个也是终身都需要去学习的。

Google 力推的那些前端技术,最近有何进展?

Angular:https://angular.io/
Angular 是前端三大框架之一,它与React、Vue 的“争斗”一直都没有停止过。
在今年I/O 大会开始的前几天,Angular 6 正式发布,添加了ng update 和ng add 这样的新功能,让你的应用程序保持最新的状态,帮助Angular 开发者加快创新的步伐。

PWA:https://developers.google.com/web/progressive-web-apps/
Progressive Web App,相当于谷歌小程序。具体的意思就是在移动端利用提供的标准化框架,在网页应用中实现和原生应用相近的用户体验,渐进式网页应用。
它同样无需下载安装,却可以和本地APP一样,放置在桌面上、显示在安卓APP列表中。
而且应用通知不再以Chrome的名义显示,而是直接以本地APP通知的形式出现,简直和本地APP没有太大区别。

一个示例参见 https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=zh-cn

PWA 天气预报

Service Worker:
Service Worker 是近年来Web 最大的改进之一,它是Chrome 团队力推的一个Web API,它将开发人员从页面的生命周期中解放出来,运行于浏览器后台,可以控制打开作用范围下的所有页面请求,使Web 应用程序能够脱机工作。

Service Worker 开发团队创建了Workbox 库:
https://developers.google.com/web/tools/workbox/ JavaScript Libraries for adding offline support to web apps. 支持离线网页。
Workbox provides a few caching strategies that you can use. For example, your CSS could be served from the cache first and updated in the background or your images could be cached and used until it’s a week old, after which it’ll need updating.

WebAssembly:
WebAssembly 使网站能够运行用C 或C ++ 等语言编写的高性能低级代码,为Web 打开了新世界。

Polymer:https://www.polymer-project.org/3.0/start/
Polymer 是Google 主推的一个 JavaScript 库,它可帮助你创建自定义的可重用 HTML 元素,并使用它们来构建高性能、可维护的 App。

例如,你可以创建一个如下所示的按钮组件,然后通过代码 <icon-toggle></icon-toggle> 来使用:

Polymer 创建的按钮组件

AMP:https://www.ampproject.org/zh_cn/
AMP 是Google 推出的一种为静态内容构建Web 页面,提供可靠和快速渲染,加快页面加载速度的Web 组件库。

Lighthouse:https://developers.google.com/web/tools/lighthouse/?hl=zh-cn
Lighthouse 是一个分析网络质量的工具,为你提供网站性能衡量指标和指导,它可以直接从Chrome DevTools 内部进行访问,从命令行运行或与其他开发产品集成,仅在2018 年,就有50 万开发人员在他们的网站上运行Lighthouse。

如何做好文本关键词提取?从达观数据应用的三种算法说起

达观数据:http://www.datagrand.com/

无监督文本关键词抽取流程图
无监督关键词抽取算法可以分为三大类,
1. 基于统计特征的关键词抽取算法

利用文档中词语的统计信息抽取文档的关键词。通常将文本经过预处理得到候选词语的集合,然后采用特征值量化的方式从候选集合中得到关键词。

基于统计特征的关键词的重点在于特征量化指标的计算,不同的量化指标得到的结果也不尽相同。同时,不同的量化指标也有其各自的优缺点,在实际应用中,通常是采用不同的量化指标相结合的方式得到Top K 个词作为关键词。

2. 基于词图模型的关键词抽取算法

基于词图模型的关键词抽取首先要构建文档的语言网络图,然后对语言进行网络图分析,在这个图上寻找具有重要作用的词或者短语,这些短语就是文档的关键词。
语言网络图中节点基本上都是词,根据词的链接方式不同,语言网络的主要形式分为四种:

在语言网络图的构建过程中,都是以预处理过后的词作为节点词与词之间的关系作为边
在语言网络图中,边与边之间的权重一般用词之间的关联度来表示
在使用语言网络图获得关键词的时候,需要评估各个节点的重要性,然后根据重要性将节点进行排序,选取 Top K 个节点所代表的词作为关键词。
节点的重要性计算方法有以下几种方法:

3. 基于主题模型的关键词抽取算法

算法步骤如下:

算法的关键在于主题模型的构建。主题模型是一种文档生成模型,对于一篇文章,我们的构思思路是先确定几个主题,然后根据主题想好描述主题的词汇,将词汇按照语法规则组成句子,段落,最后生成一篇文章。
主题模型也是基于这个思想,它认为文档是一些主题的混合分布,主题又是词语的概率分布。

优秀架构师必须掌握的架构思维

架构的本质是管理复杂性,抽象、分层、分治和演化思维是我们工程师/ 架构师应对和管理复杂性的四种最基本武器。

1. 抽象思维
2. 分层思维

有些层次是纵向的,它贯穿所有其它层次,称为共享层。分层也可以认为是抽象的一种方式,将系统抽象分解成若干层次化的模块。


分层
3. 分治思维
4. 演化思维

架构既是设计出来的,同时也是演化出来的,对于互联网系统,基本上可以说是三分设计,七分演化,而且是在设计中演化,在演化中设计,一个不断迭代的过程。

区块链没有未来,是时候抛弃它了

区块链就是这样的一种技术:“让我们一起来创建一长串小文件,每个文件里包含了上一个文件的散列值、一些新数据和算法的答案,如果有人愿意在他们的电脑上验证并保存这些文件,就奖励他们一些钱”。
而关于区块链的隐喻是这样描述的:所有人都把自己的记录保存在一个不属于任何人的防篡改仓库里。

区块链系统并不能保证人们输入的数据一定是可信的,它只能保证当中的数据不会被篡改。一个果农在芒果上喷了农药,但他仍然可以在区块链系统里记录说他的芒果是完全有机的。一个腐败的政府可以创建一个区块链系统用于统计选票,并给它的亲信偷偷输入额外的数百万张选票。一个获得数字执照的投资基金会仍然有可能错配资金。

使用去中心化的防篡改仓库来跟踪芒果的产地、新鲜度、是否用过农药,看起来像那么回事。但实际上,食品安全法、非盈利机构或政府的检验员、独立的新闻媒体、获得一定授权的举报者、有信誉的食品商店、本地农场市场在这方面做得更好。真正关心食品安全的人不会使用区块链,因为他们认为信任强过无信任。区块链技术已经暴露出它的弊端,将数据保存成一长串小文件与果农是否如实报告芒果是否使用了农药之间并没有必然的联系。类似的,点对点的交互缺乏监管、规范约束、中间人或信任实体,是一种非常糟糕的授权方式。
去信任的项目之所以会失败,是因为它们无法给用户带来真正的好处。信任真的太重要了!在一个无法律、无信任的世界里,自利是仅剩的原则,安全只存在于妄想之中,这样的世界绝对不是天堂,而是藏污纳垢之地。

一个可供中小团队参考的微服务架构技术栈

近年,Spring Cloud 俨然已经成为微服务开发的主流技术栈,在国内开发者社区非常火爆。
我认为Spring Cloud 技术栈中的有些组件离生产级开发尚有一定距离。
另外Spring Cloud 体系还缺失一些关键的微服务基础组件,比如Metrics 监控,健康检查和告警等。

微服务架构技术栈

主要包含11 大核心组件,分别是:
核心支撑组件:

监控反馈组件:

实现生产级的Migrate 操作

上一篇 下一篇

猜你喜欢

热点阅读