2021年11月份

AI 摘要: 本文介绍了21年全球架构师峰会的相关内容,重点讨论了软件架构的发展趋势,以及分布式架构、服务网格、非功能属性的标准化等技术。此外,还简要介绍了Maven和Go官网迁移至go.dev的相关信息。

21年全球架构师峰会

大会PPT地址

从软件历史看架构未来

参考地址: 从软件历史看架构未来

  1. 《凤凰架构》书籍又出现在镜头前,很好的一本讲分布式架构的书籍,要加油速度看完
  2. 分布式知识膨胀很快,35岁退休前不具备设计分布式架构所需的全面知识
  3. 云服务与分布式能力在程序逻辑之外,在开发阶段之后附加(DevSecOps)
    • 程序 = 数据结构+算法
    • 应用程序 = 业务逻辑 + 成本/SLA/可观测性/性能/高可用/可并行/安全/… + 协作沟通/推进
  4. Service Mesh Archiecture
    • 控制面/数据面 -> (实例+SideCar)*N -> Observe/Trace
  5. 分离软件的非功能属性并标准化
    • Service Mesh: 服务调用中安全、路由、治理、观测能力标准化,独立管理
    • Database Mesh: 数据库访问过程中数据发现、分片、读写分离、负载均衡能力标准化
    • MessageQueue Mesh: 消息发布和消费过程中死信模块、ACK、可靠投递、限流、追踪能力标准化,独立管理
    • Cache Mesh:缓存中淘汰策略、失效通知、并发级管理、容量控制、持久化能力标准
  6. 对开发屏蔽复杂度来源(ServerLess),基于SaaS的构建软件
  7. Dapr Building Blocks, 基于HTPP或gRPC构建API流行的最佳实践
  8. 软件架构要适应计算机算力发展
    • 云计算从竞争优势变为基石
    • 开发变得复杂,更加简单
    • 程序员出现两极分化,平庸开发者也能写出可运行、可用于生产的软件,但对精英开发者提出更多更复杂的技术要求

5min了解Maven

参考: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 关键指令
mvn archetype:generate ...

# 构建项目
mvn package

该指令包含下述过程
   - 验证: validate
   - 生成源码: generate-sources
   - 处理源文件: process-sources
   - 生成资源: generate-resources
   - 处理资源: process-resources
   - 编译生成JAR文件: compile

# java9新版本需要使用3.6以上的maven编译插件

# 其他maven工具
Although hardly a comprehensive list, these are the most common default lifecycle phases executed.

- validate: validate the project is correct and all necessary information is available
- compile: compile the source code of the project
- test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
- package: take the compiled code and package it in its distributable format, such as a JAR.
- integration-test: process and deploy the package if necessary into an environment where integration tests can be run
- verify: run any checks to verify the package is valid and meets quality criteria
- install: install the package into the local repository, for use as a dependency in other projects locally
- deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

# There are two other Maven lifecycles of note beyond the default list above. They are
- clean: cleans up artifacts created by prior builds
- site: generates site documentation for this project

go官网全面迁移到go.dev

用途过去现在
Home Pagehttps://golang.orghttps://go.dev
Project相关https://golang.org/projecthttps://go.dev/project
官方的二进制分发下载https://golang.org/dl/https://go.dev/dl
官方文档https://golang.org/doc/https://go.dev/doc
标准库https://golang.org/pkghttps://pkg.go.dev/std
游乐场https://play.golang.org/https://go.dev/play/
官方Go安装https://golang.org/doc/installhttps://go.dev/doc/install
官方Go帮助手册,里面含很多链接值得关注https://golang.org/helphttps://go.dev/help
入门文档,强烈推荐系统学习https://golang.org/doc/tutorial/getting-startedhttps://go.dev/doc/
https://golang.org/doc/code
https://tour.golang.orghttps://go.dev/tour/welcome/
https://blog.golang.orghttps://go.dev/blog
https://golang.org/doc/effective_gohttps://go.dev/doc/effective_go
社区资源-https://go.dev/wiki

注意: Go Playground是一个沙盒环境,沙盒中检测、编译、链接、运行程序,并返回输出,适合简单的示例。基准测试、Sleep类似操作都会存在一定限制