架构师训练营week1-学习记录

发布于: 2020 年 06 月 10 日
架构师训练营week1-学习记录
  • 李老师看书的时候喜欢看书的前言,这本书到底想要传递什么信息,作者到底是如何去理解他写的这本书的,它是如何打算把这个东西去把自己理解出了一些东西然后他清晰的表达出来传递给读者的

  • 软件架构这件事情,它要解决的问题是什么,面对的困难是什么,使用的方法是什么然后把它去尽量尽我所能把它清晰的表达出来

  • 本周主要是讨论架构的方法。作为一个架构师,核心的输出和产出是什么

  • 只有被任命成了架构师才能去做架构。那如何成为架构师,有两个途径,一是跳槽,职位本身就是架构师,二是从内部晋升被任命为架构师

  • 李老师举了一些招聘网站上的架构师招聘条件。针对不同的点提出了相关的问题

  • 产品调研/整体的架构设计

  • 整体的架构如何做,整体的架构设计产出来如何输出,架构设计文档应该如何写

  • 技术攻坚/主导核心组件、服务的编码和上线

  • 项目的核心组件是什么,核心组件的定义是什么

  • 什么叫核心服务,核心服务与其他服务的关系是什么

  • 定位系统瓶颈,提高系统性能/稳定性以及业务扩展性

  • 如何定位系统瓶颈

  • 什么叫性能不好,如何能清晰地定义出来

  • 定义出来如何去解决它,解决的思路是什么

  • 解决完成之后如何证明已经解决这个问题

  • 如何进行性能测试,如何量化地去描述这些指标

  • 主导跨部门协作,复杂功能的调研、设计、实施

  • 对方的诉求是什么

  • 利益相关方的诉求是什么

  • 你跟他的边界和职责是什么

  • 是否关于利益和诉求能否达成一致

  • 从设计到实现始终对其业内一流产品水准

  • 什么叫业内的一流水准

  • 经验是不能通过学习获得的

  • 关于简历优化

  • 重新思考一下过去做的项目,过去做的项目也许没考虑这么多也没有考虑好的设计,能不能思考一下针对这个项目重新思考和重新的改进。可以把这些思考和改进稍微简历的进行修改,稍微显得更有经验一些(当然这样可能经不 住面试官的几个问题就露馅了,但重要的是重新思考这个过程)

  • 为了跳槽修改简历,找出重点需要的知识并把它搞得更透彻一些

  • 我们不关心框架如何应用,关心框架应该遵循哪些原则,运用到哪些技术。思考一个框架设计的关注点在哪里

  • 关于面试

  • 有时候被问到不会的问题,是没关系的,面试官是根据问题来测试你的知识边界

  • 李老师面试一般分3部分

  • 自我介绍,拿着简历讲一个你认为最有技术含量的或者你最觉得能够展现技术实力的项目详细地表述一下

  • 这个考察不是技术本身,考察的是有没有把问题描述清楚。很多同学上来就开始讲怎么做的,而不是讲面对的问题是什么,这样就扣分了

  • 如果是真了解过的话,一定会先强调做的这个技术面对的需求背景是什么。这个技术方案围绕着这些点有对应的策略

  • 不能光嘴上说,最好能把时序图、流程图、架构图、组件图、依赖关系画一下。画的过程中比较有条理

  • 然后才是一些具体的解决问题的关键点,看这个关键点对问题的理解是否透彻,解决方案是否适中

  • 可能会被问到为什么不用另一种方案,面试官可能会提出一种建议,要能够对面试官提出的建议进行否定(这点非常重要,我自己的亲身经历是自己在部门内部答辩时,评委会给你挖坑,你不能唯唯诺诺,对评委给出的可能的解决方案都肯定,而是尝试去否定他给出的建议,为什么不能用这个建议,这样可以证明是思考过的),如果都能否定掉的话,就加分了

  • 具体的技能问题,就是本次训练营学习的内容,找出知识边界在哪里

  • 手写代码

  • PPT里的各种问题,带着问题来学习整个课程

  • Java虚拟机的垃圾回收原理是什么?

  • 完整的垃圾回收原理

  • Java的垃圾对象是如何标记的

  • 如何知道一个对象是可回收的

  • 回收的时候内存是如何管理的

  • 回收的时候,垃圾回收线程跟应用线程是如何共存的

  • 课程安排

  • 编写架构设计文档(week1)

  • 开发编程框架(week2)

  • 设计模式设计原则

  • 重构软件代码(week3)

  • 设计模式

  • 设计系统架构(week4)

  • 淘宝是怎么设计出来的

  • 进行技术选型,解决技术应用中的问题(week5-6)

  • 优化系统性能(week7-9)

  • 数据库、消息队列、java虚拟机

  • 操作系统、哈希表、B+树

  • 模块分解与微服务架构重构(week10)

  • 保障系统安全与高可用(week11)

  • 大数据应用(week12-13)

  • Hadoop、Spark大数据的系统架构原理

  • 机器学习算法相关的东西

  • 技术创新(week14)

  • 区块链、物联网

  • 沟通管理(week15)

  • 职业规划、自我训练

  • 什么是软件架构

  • 来自维基百科:软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

  • 重点是整体结构与组件的抽象描述

  • 这个是类图

  • 核心是架构;每个系统有一个架构,架构是关于架构元素和元素间关系的一个描述;如何描述的话就输出架构文档;架构文档由架构视图去组成;架构视图反应了相关方的一些关注点;系统有一些相关方,每个相关方都有自己的一些关注点

  • 关系可以分为两类:静态关系和动态关系

  • 组合和继承是静态关系中的一种

  • 动态关系是他们如何交互的(类和类如何交互、子系统如何交互、服务器之间如何交互)

  • 这个图最重要的元素是相关方,因为做架构是给别人做的,不是给系统做的。老板让你做架构图,一定要问架构图给谁看的

  • 架构师输出的是架构文档,架构文档是给相关方看的(给客户、给老板、给工程师、给产品的运营),要满足相关方的诉求

  • 技术之外的东西决定如何去看待你的技术

第二节课的内容稍后补充...

用户头像

lijia_toby

关注

还未添加个人签名 2018.06.12 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营week1-学习记录