07系统架构师成长之路
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 主题阅读:
认识无压工作GTD
一种将繁重 超负荷的工 作生活方式 变成无压力 高效的时间 管理系统
Getting Things Done
学习的心态软区域
一个人想步行穿过大陆,但道 路布满了荆棘,这时候他有 两种选择:铺一条路,征服 大自然,或者,准备一双草 鞋。
学习的心态软区域
成功的唯一方法便是,承认现实,超越现实,鼓起勇气并善用它.
�
没有解决问题的机会,也就没有机会成长。
Malcolm Gladwell 心理学家
内容
经历的不同阶段 个人的一些工作方式和心得 内容较多,不能全部细讲,会推荐一些书籍
尽量不涉及具体技术 更多的关注软技能的一些心得
每个人方法都不一样,选择适合自己的 内容没有病毒,就算没帮助也不会误人子弟
决系统开发、运行中出现的各种问题。
• 系统架构师的目的: 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把
握。
• 系统架构师能力要求: 一、系统架构相关的知识和经验。 二、很强的自学能力、分析能力、解决问题的能力。 三、写作、沟通表达、培训。
44
软件架构师在干什么?
• 思考、思考、再思考 – 深入理解、准确把握建设的业务需求 – 分析所有可见的问题、障碍、风险 – 充分参考已有的成功方案,降低风险
• 合理把握技术细节 – 把握各个层次应有的内容 – 合理忽略不应有的技术细节
46
软件架构师的思维方式
• 风险管理意识 – 采用成功经验、避免不应有的风险
• 多方位的开放思维 – 多维度、多方向、包容性、避免排他性 – 分析、质疑、抽象、归纳 – 没有绝对好的架构设计,只有相对优秀的方案
47
七、系统架构师成长之路
不断学习
不学习
学和习
� 所谓学习是由“学”和“习”构成。想到学比较容易,然而,运用 起来并非容易-连很多高手都承认并不像想象的那样真正理解
� 架构。掌握任何一项技能且达到 “无人出其左右”的地步,需要 至少10000个小时。习之所以难,因为必须经过大量的实践才能 做到真正理解。人不做事不会遇到问题,如果做事的时候竟 然没有遇到问题 -那不是在做事,那是在做梦。不遇到问题就
守-破-离
创造发展剑招的过程,有守、破、离三阶段。 最初学剑时固须顺从老师所教,把它熟练体会, 变成自己的东西,以后突破老师的教导原则, 招式心法,而如有新的心得,则离开师傅, 创成新招。
宫本武藏 《五轮书》
• 0-1年 (守) – 会用工作中所用的技术 – 掌握工作中所用的技术 – 精通工作中所用的技术
软件架构趋势:软件开发基础平台。
软件业务需求入门
why what how
组织或客户的高层次目标 给用户带来的业务价值 实现的软件功能
七、系统架构师成长之路
1、不断学习 2、经历不同阶段
3、对学习的认识
4、软技能 5、理解架构定义 6、理解“架构师” 7、架构发展趋势
知识=基本功
– 设立目标,并制定切实可行的学习计划 – 找到学习的方向 – 从书本获得系统化的知识,懂得如何看书 – 试用优秀的商业、开源软件和工具 – 订阅blog – 写blog,养成总结思考的习惯 – 积极分享,乐于交流 – 能够阅读英文资料和书籍
1、不断学习 2、经历不同阶段 3、对学习的认识 4、软技能 5、理解架构定义 6、理解“架构师”
7、架构发展趋势
把软件框架提升到开发平台
软件框架,解决了非技术问题的重用性问题;但是不要让所 有软件功能都开发出来,应该在软件架构中选择一些成品, 让不同的功能选择最合适的开发模式。
软件开发平台的目的就是跟进一步提升软件架构的重用能力, 将多个软件产品整合应用到软件架构中,比如说:流程引擎、 消息引擎、报表引擎、企业服务总线等等。
思考
知识+实践+思考=智慧
– 多反思改进,进行个人回顾 – 随时记录脑子思考的内容 – 用图、总结表达思考的结果 – 换位思考,站在别人的角度思考问题 – 思考本质内容,锻炼抽象思维能力
心态
知识+实践+思考+心态=学习
– 主动的、快乐的、有价值的、终身学习 – 乐于接受新东西并勇于尝试、乐于分享 – 学习工作化、工作学习化 – 问题提出只是第一步,解决问题更为重要 – 贵在坚持,生命不息学习不止 – 追求卓越,严格要求自己,不满足现状 – 空杯心态
软件平台 已定义 弱关联
可测量
可变性 量化管理
同步
最优化
可配置 最优化级 基于领域
16
Байду номын сангаас
架构师应具备的概要技能
• 架构 – 技术领域知识 – 业务领域知识
• 流程 – 关注人和方法
• 组织 – 沟通能力
• 商业 – 协助产品规划
企业架构建模-ArchiMate语言
企业架构建模-ArchiMate语言
软件系统架构实践
中国信息化培训中心
课程目录
一、系统架构概述 二、系统架构之三分过程 三、系统架构之四入策略 四、系统架构之六大战术 五、系统架构之案例探究 六、系统架构之评估体系
七、系统架构师成长之路
七、系统架构师成长之路
1、不断学习
2、经历不同阶段 3、对学习的认识 4、软技能 5、理解架构定义 6、理解“架构师” 7、架构发展趋势
软件构架的定义
• Bass, Celments, and Kazman Software Architecture in Practice, Addison-Wesley 2003 – “一个程序或计算系统的软件构架是指该系统的一个 或多个结构,它由软件组件,这些组件的外部可见特 性以及这些元素之间的关系组成。” – 外部可见特性指其他元素对该元素所做的各种假设 – 构架定义了软件元素 – 系统可能而且确实由多个结构组成
软件架构目的
随着人们对软件工程的深刻理解,将架构进行充分的强调 是很自然的,正如人们越来越强调系统的需求分析,从而 有了领域工程师和领域专家的概念一样。其实强调软件架 构的最主要的目的有3个: – 重用:人们希望系统能够重用以前的代码和设计,从而 提高开发效率; – 扩展:人们希望在系统能够保持结构的稳定的前提下很 容易地扩充功能和性能,希望能够“以静制动“ – 简洁:常言道,简洁就是美,好的架构一定易于理解, 易于学习,易于维护,人们希望能够通过一个简洁的架 构来把握系统;
• 方法 – 选择研究重点 先从架构角度 分离关注点,分人或者迭代进行研究重点 – 重点研究选择 对决定后的选择 进行重点研究,从案例、产品、模型、应用等多个角 度去考虑这些重点 – 验证实践选择 考虑如实现和应用这些重点
我是这样偷着做架构的
Bad artists copy; Good artist steal -毕加索
七、系统架构师成长之路
1、不断学习 2、经历不同阶段 3、对学习的认识 4、软技能 5、理解架构定义
6、理解“架构师”
7、架构发展趋势
软件架构师的定位
• 系统架构师的职责: • 一、理解系统的业务需求,制定系统的整体框架(包括:技术框架和
业务框架) • 二、对系统框架相关技术和业务进行培训,指导开发人员开发。并解
七、系统架构师成长之路
1、不断学习 2、经历不同阶段 3、对学习的认识
4、软技能
5、理解架构定义 6、理解“架构师” 7、架构发展趋势
技术研究之道
• 学习 – 为什么要学习(why) 学历代表过去,经验代表现在,学习能力代表未来 – 学什么(what) 学以致用 – 怎么学(How) 高胖高(先深度再广度,再深度,依次螺旋)。只要认定what是好的 ,可以通过主动、被动、强迫三种方式去学习。
知识
–给自己找一个师傅
– 不一味学习技术语言,要关注思想 – 把自己放在没有退路,强制自己学习 – 不浮躁,广度和深度上平衡发展 – 对复杂系统的分析、抽象和建模是开发人员
的核心技能
实践
知识+实践=技能
– 一次只做一件事情 – 将学习成果应用在实际工作中 – 停止空谈,开始行动 – 战胜拖拉,现在就做 – 要善于发现问题本质 ,并敢于解决问题 – 能够自己写一个框架,或者参与开源工具开发 – 及时求助 – 关注团队问题,及时沟通
七、系统架构师成长之路
1、不断学习
2、经历不同阶段
3、对学习的认识 4、软技能 5、理解架构定义 6、理解“架构师” 7、架构发展趋势
◇软件架构师-- 名人堂
◇软件架构师——成长路线
架构师能力模型
� 2005年澳大利亚墨尔本著名教授Keith Frampton发表论文
�专业技术技能 �商业经验 �沟通技能 �平衡决策能力 �多任务处理能力 �规划能力 �驱动能力
1、不断学习 2、经历不同阶段 3、对学习的认识 4、软技能
5、理解架构定义
6、理解“架构师” 7、架构发展趋势
架构
架构一词是舶来品,是architecture的中文翻译,其英文的本意是来 源于建筑行业的建筑艺术、建筑(风格)和结构,引入到软件领域 里面来以后,并没有一个统一的定义。有的人将架构定义为:功能 +设计+构造手段,我们可以通俗的理解为:总体设计和总体结构 。(组件+交互)
从复用层次看技术发展路线
函数/类:1-4年(仅供参考, 如果有人指导,这个时间会 缩短很多) 把重复的代码用一个单独的 单元或者类来归集,形成了 函数/类的方式重用 模块/引擎:5-6年 对工作流引擎、报表引擎等 通用模块进行研究,研究分 析经典开源产品 框架/平台:7-...年 选择一个框架、或平台,开 始研究、思考,一定要结合 发展目标
• 1-n年(破) • 工作多年(离)
– 在很多情况下将自己定位在一个更高的层次上去看问题,要把自己的视野 拓宽,做事时要回归应有的定位。
时间管理
软件=商业+架构+流程+组织 BAPO
软件产品线工程成熟度(BAPO)
商 业
单项目
架 独立开发 构
过
初始级
程
组 织
项目
有意识
基础设施 可管理级
重用
可管理
• 找到抄袭源 • 主题抄袭,
求同存异 • 组合抄袭 • 由抄到偷 • 不断修改
信息系统开发平台OpenExpressApp
如何读好书:读书的四个层次
• 基础阅读: 认图、认字、认句、认文
• 检视阅读: – 粗浅的阅读 – 有系统的略读或粗读
• 分析阅读: – 倾听一本书:找出一本书在谈什么 – 诠释一本书:与作者达成共识 – 评论一本书:形成自己的观点
• 交流、讨论、博弈、质疑 – 对构思中的方案不断提出质疑,避免漏洞 – 广泛听取各层面的意见,开拓思路 – 反复质疑、逐步完善已有的设计构思
• 在动手实现之前验证设计方案的正确性
45
软件架构师的思维方式
• 基于框架的思维 – 架构设计的层次(Enterprise, Application, etc) – IT 的生命周期(What, Why, Where, How, When, etc) – 成功经验以及方法论的指导
培养“软区域”的三个步骤: 1. 学会平静的对待生活中的不完美之处,适应自己的情绪,了解如
何让它们自然宣泄出去 2. 学习如何把不完美的地方转换成我们的优势,激发我们的创造力 3. 自我激励,不管外部条件是否有激励性,找到一种激发最佳状态
的情绪,学习如何在我们的意识中制造一些波动来激励我们前进
七、系统架构师成长之路
认识无压工作GTD
一种将繁重 超负荷的工 作生活方式 变成无压力 高效的时间 管理系统
Getting Things Done
学习的心态软区域
一个人想步行穿过大陆,但道 路布满了荆棘,这时候他有 两种选择:铺一条路,征服 大自然,或者,准备一双草 鞋。
学习的心态软区域
成功的唯一方法便是,承认现实,超越现实,鼓起勇气并善用它.
�
没有解决问题的机会,也就没有机会成长。
Malcolm Gladwell 心理学家
内容
经历的不同阶段 个人的一些工作方式和心得 内容较多,不能全部细讲,会推荐一些书籍
尽量不涉及具体技术 更多的关注软技能的一些心得
每个人方法都不一样,选择适合自己的 内容没有病毒,就算没帮助也不会误人子弟
决系统开发、运行中出现的各种问题。
• 系统架构师的目的: 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把
握。
• 系统架构师能力要求: 一、系统架构相关的知识和经验。 二、很强的自学能力、分析能力、解决问题的能力。 三、写作、沟通表达、培训。
44
软件架构师在干什么?
• 思考、思考、再思考 – 深入理解、准确把握建设的业务需求 – 分析所有可见的问题、障碍、风险 – 充分参考已有的成功方案,降低风险
• 合理把握技术细节 – 把握各个层次应有的内容 – 合理忽略不应有的技术细节
46
软件架构师的思维方式
• 风险管理意识 – 采用成功经验、避免不应有的风险
• 多方位的开放思维 – 多维度、多方向、包容性、避免排他性 – 分析、质疑、抽象、归纳 – 没有绝对好的架构设计,只有相对优秀的方案
47
七、系统架构师成长之路
不断学习
不学习
学和习
� 所谓学习是由“学”和“习”构成。想到学比较容易,然而,运用 起来并非容易-连很多高手都承认并不像想象的那样真正理解
� 架构。掌握任何一项技能且达到 “无人出其左右”的地步,需要 至少10000个小时。习之所以难,因为必须经过大量的实践才能 做到真正理解。人不做事不会遇到问题,如果做事的时候竟 然没有遇到问题 -那不是在做事,那是在做梦。不遇到问题就
守-破-离
创造发展剑招的过程,有守、破、离三阶段。 最初学剑时固须顺从老师所教,把它熟练体会, 变成自己的东西,以后突破老师的教导原则, 招式心法,而如有新的心得,则离开师傅, 创成新招。
宫本武藏 《五轮书》
• 0-1年 (守) – 会用工作中所用的技术 – 掌握工作中所用的技术 – 精通工作中所用的技术
软件架构趋势:软件开发基础平台。
软件业务需求入门
why what how
组织或客户的高层次目标 给用户带来的业务价值 实现的软件功能
七、系统架构师成长之路
1、不断学习 2、经历不同阶段
3、对学习的认识
4、软技能 5、理解架构定义 6、理解“架构师” 7、架构发展趋势
知识=基本功
– 设立目标,并制定切实可行的学习计划 – 找到学习的方向 – 从书本获得系统化的知识,懂得如何看书 – 试用优秀的商业、开源软件和工具 – 订阅blog – 写blog,养成总结思考的习惯 – 积极分享,乐于交流 – 能够阅读英文资料和书籍
1、不断学习 2、经历不同阶段 3、对学习的认识 4、软技能 5、理解架构定义 6、理解“架构师”
7、架构发展趋势
把软件框架提升到开发平台
软件框架,解决了非技术问题的重用性问题;但是不要让所 有软件功能都开发出来,应该在软件架构中选择一些成品, 让不同的功能选择最合适的开发模式。
软件开发平台的目的就是跟进一步提升软件架构的重用能力, 将多个软件产品整合应用到软件架构中,比如说:流程引擎、 消息引擎、报表引擎、企业服务总线等等。
思考
知识+实践+思考=智慧
– 多反思改进,进行个人回顾 – 随时记录脑子思考的内容 – 用图、总结表达思考的结果 – 换位思考,站在别人的角度思考问题 – 思考本质内容,锻炼抽象思维能力
心态
知识+实践+思考+心态=学习
– 主动的、快乐的、有价值的、终身学习 – 乐于接受新东西并勇于尝试、乐于分享 – 学习工作化、工作学习化 – 问题提出只是第一步,解决问题更为重要 – 贵在坚持,生命不息学习不止 – 追求卓越,严格要求自己,不满足现状 – 空杯心态
软件平台 已定义 弱关联
可测量
可变性 量化管理
同步
最优化
可配置 最优化级 基于领域
16
Байду номын сангаас
架构师应具备的概要技能
• 架构 – 技术领域知识 – 业务领域知识
• 流程 – 关注人和方法
• 组织 – 沟通能力
• 商业 – 协助产品规划
企业架构建模-ArchiMate语言
企业架构建模-ArchiMate语言
软件系统架构实践
中国信息化培训中心
课程目录
一、系统架构概述 二、系统架构之三分过程 三、系统架构之四入策略 四、系统架构之六大战术 五、系统架构之案例探究 六、系统架构之评估体系
七、系统架构师成长之路
七、系统架构师成长之路
1、不断学习
2、经历不同阶段 3、对学习的认识 4、软技能 5、理解架构定义 6、理解“架构师” 7、架构发展趋势
软件构架的定义
• Bass, Celments, and Kazman Software Architecture in Practice, Addison-Wesley 2003 – “一个程序或计算系统的软件构架是指该系统的一个 或多个结构,它由软件组件,这些组件的外部可见特 性以及这些元素之间的关系组成。” – 外部可见特性指其他元素对该元素所做的各种假设 – 构架定义了软件元素 – 系统可能而且确实由多个结构组成
软件架构目的
随着人们对软件工程的深刻理解,将架构进行充分的强调 是很自然的,正如人们越来越强调系统的需求分析,从而 有了领域工程师和领域专家的概念一样。其实强调软件架 构的最主要的目的有3个: – 重用:人们希望系统能够重用以前的代码和设计,从而 提高开发效率; – 扩展:人们希望在系统能够保持结构的稳定的前提下很 容易地扩充功能和性能,希望能够“以静制动“ – 简洁:常言道,简洁就是美,好的架构一定易于理解, 易于学习,易于维护,人们希望能够通过一个简洁的架 构来把握系统;
• 方法 – 选择研究重点 先从架构角度 分离关注点,分人或者迭代进行研究重点 – 重点研究选择 对决定后的选择 进行重点研究,从案例、产品、模型、应用等多个角 度去考虑这些重点 – 验证实践选择 考虑如实现和应用这些重点
我是这样偷着做架构的
Bad artists copy; Good artist steal -毕加索
七、系统架构师成长之路
1、不断学习 2、经历不同阶段 3、对学习的认识 4、软技能 5、理解架构定义
6、理解“架构师”
7、架构发展趋势
软件架构师的定位
• 系统架构师的职责: • 一、理解系统的业务需求,制定系统的整体框架(包括:技术框架和
业务框架) • 二、对系统框架相关技术和业务进行培训,指导开发人员开发。并解
七、系统架构师成长之路
1、不断学习 2、经历不同阶段 3、对学习的认识
4、软技能
5、理解架构定义 6、理解“架构师” 7、架构发展趋势
技术研究之道
• 学习 – 为什么要学习(why) 学历代表过去,经验代表现在,学习能力代表未来 – 学什么(what) 学以致用 – 怎么学(How) 高胖高(先深度再广度,再深度,依次螺旋)。只要认定what是好的 ,可以通过主动、被动、强迫三种方式去学习。
知识
–给自己找一个师傅
– 不一味学习技术语言,要关注思想 – 把自己放在没有退路,强制自己学习 – 不浮躁,广度和深度上平衡发展 – 对复杂系统的分析、抽象和建模是开发人员
的核心技能
实践
知识+实践=技能
– 一次只做一件事情 – 将学习成果应用在实际工作中 – 停止空谈,开始行动 – 战胜拖拉,现在就做 – 要善于发现问题本质 ,并敢于解决问题 – 能够自己写一个框架,或者参与开源工具开发 – 及时求助 – 关注团队问题,及时沟通
七、系统架构师成长之路
1、不断学习
2、经历不同阶段
3、对学习的认识 4、软技能 5、理解架构定义 6、理解“架构师” 7、架构发展趋势
◇软件架构师-- 名人堂
◇软件架构师——成长路线
架构师能力模型
� 2005年澳大利亚墨尔本著名教授Keith Frampton发表论文
�专业技术技能 �商业经验 �沟通技能 �平衡决策能力 �多任务处理能力 �规划能力 �驱动能力
1、不断学习 2、经历不同阶段 3、对学习的认识 4、软技能
5、理解架构定义
6、理解“架构师” 7、架构发展趋势
架构
架构一词是舶来品,是architecture的中文翻译,其英文的本意是来 源于建筑行业的建筑艺术、建筑(风格)和结构,引入到软件领域 里面来以后,并没有一个统一的定义。有的人将架构定义为:功能 +设计+构造手段,我们可以通俗的理解为:总体设计和总体结构 。(组件+交互)
从复用层次看技术发展路线
函数/类:1-4年(仅供参考, 如果有人指导,这个时间会 缩短很多) 把重复的代码用一个单独的 单元或者类来归集,形成了 函数/类的方式重用 模块/引擎:5-6年 对工作流引擎、报表引擎等 通用模块进行研究,研究分 析经典开源产品 框架/平台:7-...年 选择一个框架、或平台,开 始研究、思考,一定要结合 发展目标
• 1-n年(破) • 工作多年(离)
– 在很多情况下将自己定位在一个更高的层次上去看问题,要把自己的视野 拓宽,做事时要回归应有的定位。
时间管理
软件=商业+架构+流程+组织 BAPO
软件产品线工程成熟度(BAPO)
商 业
单项目
架 独立开发 构
过
初始级
程
组 织
项目
有意识
基础设施 可管理级
重用
可管理
• 找到抄袭源 • 主题抄袭,
求同存异 • 组合抄袭 • 由抄到偷 • 不断修改
信息系统开发平台OpenExpressApp
如何读好书:读书的四个层次
• 基础阅读: 认图、认字、认句、认文
• 检视阅读: – 粗浅的阅读 – 有系统的略读或粗读
• 分析阅读: – 倾听一本书:找出一本书在谈什么 – 诠释一本书:与作者达成共识 – 评论一本书:形成自己的观点
• 交流、讨论、博弈、质疑 – 对构思中的方案不断提出质疑,避免漏洞 – 广泛听取各层面的意见,开拓思路 – 反复质疑、逐步完善已有的设计构思
• 在动手实现之前验证设计方案的正确性
45
软件架构师的思维方式
• 基于框架的思维 – 架构设计的层次(Enterprise, Application, etc) – IT 的生命周期(What, Why, Where, How, When, etc) – 成功经验以及方法论的指导
培养“软区域”的三个步骤: 1. 学会平静的对待生活中的不完美之处,适应自己的情绪,了解如
何让它们自然宣泄出去 2. 学习如何把不完美的地方转换成我们的优势,激发我们的创造力 3. 自我激励,不管外部条件是否有激励性,找到一种激发最佳状态
的情绪,学习如何在我们的意识中制造一些波动来激励我们前进
七、系统架构师成长之路