郭东白的架构课学习笔笔记(1)

1.架构师的品质

  • 自信和勇气(正确的废话)
  • 拥有战略意图,所谓战略意图,就是拥有与其资源和能力极不相称的雄心壮志。
  • 使用演绎法寻找架构原理,而不是归纳法。

2.如何提升自己的架构能力

  • 向身边比自己厉害的优秀架构师或者SE学习,用真心和他们去接触,厚着脸皮和他们一块去吃饭,虚心请教他们,同时也要自信的表达自己的想法,平等交流,无需低三下四抑或是唯唯诺诺。
  • 多参加内部Level比较高的技术决策和讨论的会议。
  • 学习公司内部优秀的架构经验和实践,成功的案例和P0级事故案例。
  • 要又空杯心态、承认自己的无知,心态要开放,切勿自大自满。
  • 要自己下功夫学习和钻研,在上下班的路上听、看视频等。
  • 做减法:要合理规划自己的实践,自己想做的事情和诱惑很多,要集中精力干一件事情才有胜算,精力分散会导致什么都做不好。要有迅速学习的能力,投入到一个领域就要有在半年实践成为这个领域专家的能力。
  • 要从技术、商业、用户体验三个维度思考一款产品。
  • 靠记忆和技能的学习成不了一个好架构师,正真架构师的成长靠思考力的提升。

3.职业选择

  • 赛道足够大、公司不会挂、增值最大化。

4.职场建议

  • 不要成为劳工型员工,不要一味的低头干活,也要抬头看路,有自己的职业目标和能力提升。忙!=有价值
  • 要掌握稀缺性技术,并在给岗位上放大稀缺性的价值。
  • 要不断的成长和进化,提升自己的业务理解力和技术能力,成为行业的专家。
  • 要明白自己从事哪个产业,产业拥有哪些业态,公司做的产品在业态中做什么,自己从事的项目又在解决什么事情。

5.产业互联网

  • 目前IT互联网技术逐步从ToC向ToB转变,从消费互联网向产业互联网转变。
  • 产业互联网的技术逻辑:产业标准化、标准数字化、数字智能化。

6.生存法则

在这里插入图片描述

  • 第一,架构师必须保障整个架构活动有且仅有一个正确的目标。这是架构活动的起点,也是甄别架构方案的主要输入,所以架构师有义务影响和干预这个目标,以确保目标本身的正确性。
  • 第二,架构活动需要尊重和顺应人性。架构活动既要服务用户,也要组织研发人员协同工作。这就意味着架构师必须洞察研发人员和目标用户的人性。从人性角度出发来做决策,才能保障最终面向用户的方案具有长期正确性,以及面向研发同学的实施过程具有可行性。
  • 第三,架构师永远需要在有限资源下最大化商业价值。对于任何一个架构活动来说,架构师的可用资源,包括商业成本、研发成本、时间成本、迁移成本等,都是极其有限的,所以架构活动必须在这些限制条件下,最大化商业价值。
  • 第四,架构选型必须要考虑到所依赖的商业和技术模块的生命周期。在架构设计的过程中,架构师会有一个相对确定的商业和技术选择空间。那么在这个选择空间内,理解、顺应且利用好商业和技术周期就至关重要。也就是说,架构师要看准技术趋势,一般情况下,要选择已经有规模优势或者是即将有规模优势的技术,而不是选择那些接近衰老期的技术。
  • 第五,架构师需要在架构活动中不断干预活动的目标和内容,以同时保证整个架构活动可以为企业注入外部适应性。这是架构师个人能在架构活动中创造的核心价值,而且也是架构师职业成长的必须,甚至也是架构师的荣耀所依赖。最终正确的架构选型会因为有很强的外部适应性而长期存在。
  • 第六,架构师需要在一个相对安全的文化环境中探索未知, 只有这样,才有希望找到正确的架构方案。文化环境是架构师最难影响的,因而架构师要有足够的判断力,认清自己所在的文化环境是否有利于探索正确的架构方案,不要在一个错误的环境中浪费自己的宝贵生命。

6.1法则1-整个架构活动有且仅有一个正确的目标

  • 所有的架构规划必须有且只有一个正确的目标,而且它必须与公司的战略意图相匹配,这是你架构设计的起点。否则,系统就会变得复杂和无序,缺少结构性。
  • 在一个企业里,技术先进性很少会是一个架构活动的正确目标,所以很多人做架构升级都只是为了做而做
  • 一半以上的架构活动在发起之前都没有明确的目标。这种架构活动执行到最后,多个协同模块之间必然是一个散乱的结构。
    如果在初期就有一个明确的目标,那么做到最后,子模块和初期目标就会是大致对齐的,同时也会最大化对目标的贡献。
    在这里插入图片描述
  • 架构师要从全局视角去思考架构活动的回报,以及它对企业整体复杂性的影响
  • 目标缺失主要有两大原因,技术上:目标缺少全局视角;业务上:目标太多、不明确

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27581.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 20.04 4090 显卡驱动安装 深度学习环境配置

1. 显卡驱动安装 准备工作: 换源安装输入法:重启的步骤先不管(自选)sudo apt update && sudo apt upgrade 禁用nouveau驱动(这个驱动是ubuntu开源小组逆向破解NVIDIA的开源驱动,与英伟达的原有驱…

设计模式之原型模式

写在前面 但我们看某个电影,或者是某个电视剧的时候,总会提到某某人是某某角色的原型,这里某某角色就好像是某某人的复制品一样,这里的原型设计模式也是如此,不过,这里的原型是一个对象,而原型…

云计算——云计算与虚拟化的关系

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前言 一.虚拟化 1.什么是虚拟化 2.虚拟化技术作用 二.云计算与虚拟化的关系 三.虚…

ThunderScope开源示波器

简介 4CH,1GSa/S 开源示波器。前端很简洁,BUF802LMH6518,ADC是HMCAD1511,用Xilinx A7 FPGA进行控制,数据通过PCIE总线传输到上位机处理。目前这个项目已经被挂到了Xilinx官网,强。 设计日志:h…

【Docker】Docker镜像和Docker容器

文章目录 Docker镜像镜像基本概念为什么需要镜像?Union FS(联合文件挂载)docker镜像原理 Docker镜像命令docker rmidocker savedocker loaddocker historydocker image prune docker镜像实战离线迁移镜像镜像存储的压缩与共享 Docker容器容器…

Spring设计模式及部分技术讲解

讲师:邓澎波 Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 有些同学可能会抢答,不熟悉!!! 好了,不开玩笑,面对这个问题我们应该怎么来回答呢?我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍Spring是怎么来的,发展中有哪些核心的节…

mysql 2 -- 数据库基本操作、数据表的操作、mysql查询操作

一、数据库基本操作 1、数据库的登录及退出 连接数据库: mysql -u用户名 -h主机地址(省略代表本机) -p 密码(格式为123...);注: 刚下载安装的时候需要通过管理员进入 退出数据库,以下三种方式都可以: exit quit …

大数据学习02-Hadoop分布式集群部署

操作系统:centos7 软件环境:jdk8、hadoop-2.8.5 一、创建虚拟机 1.下载VMware,建议支持正版 2.安装到Widows目录下任意位置即可,安装目录自定义。打开VMware,界面如下: 3.创建虚拟机 创建虚拟机—>选择自定义 …

android 下载源码 一路踩坑

python 从 2.0 升级到3.0 从官网下载 pyhon3.0 安装器,然后更改配置 # Setting PATH for Python 3.8# The original version is saved in .bash_profile.pysaveexport PATH"/Library/Frameworks/Python.framework/Versions/3.11/bin:$PATH"alias python"/Libr…

SpringCloud(四)Hystrix服务降级、熔断、监控页面

一、服务熔断 官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/1.3.5.RELEASE/single/spring-cloud-netflix.html#_circuit_breaker_hystrix_clients 我们知道,微服务之间是可以进行相互调用的,那么如果出现了…

如何创建 Spring Boot 项目

目录 一、Spring Boot 项目的创建 1. 安装 Spring Boot Helper 插件 2. 创建 Spring Boot 项目 3. 项目目录详解 4. 运行 Spring Boot 项目 二、Spring Boot 的优点 前言 Spring Boot 的意思就是 Spring Boot 脚手架的意思,已经总结完成 Spring 的学习&#x…

js计算数组中每个元素出现的次数

tip:空值合并运算符(??)是一个逻辑运算符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数&#xff0…