2021年11月份

AI 摘要: 本篇文章主要介绍了21年全球架构师峰会的内容以及go官网迁移到go.dev的变化。其中,架构未来的重点在于分布式架构的设计与开发以及对软件非功能属性的标准化;而go官网迁移是为了提供更好的文档和资源支持。

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类似操作都会存在一定限制