一个架构师谈什么是架构以及怎么成为一个架构师
来源:互联网 发布:2016年4月1日非农数据 编辑:程序博客网 时间:2024/05/23 01:36
写在前面的话: 大学前两年,老师说要学好数据结构、算法、和一些相关的基础知识,我并不懂为什么,有了框架,为什么还要学习这些东西。更让我无法忍受的是作为程序员为什么要学那么多数学。由于这些问题,我大学前两年特别迷茫,感觉我们学的好多课程好像都是没用的。于是我就去向我的一位老师请教,问他为什么要学花那么多的功夫学数据结构与算法。只记得他当时说了很多,但是我那时候并没有真正的听懂,只是觉得他说的有道理。于是也开始看看基础方面的书,慢慢的这种思维就成了习惯,于是对于一些底层的原理性东西似乎更感兴趣了,对于程序员这个职业似乎也渐渐的开始感兴趣了(一开始做程序员我是拒绝的)。后来不经意间发现了这篇文章,它算是给了我一个将来发展的思路,所以就把它转载下来,希望可以让更多的人不再那么迷茫(特别是大学生,为什么要学数学的问题)。
原文地址:http://blog.csdn.net/lifetragedy/article/details/43925857?utm_source=tuicool
新年新事,来点轻松的话题。我们调剂一下后再继续讲CAS SSO单点登录吧因为后面的内容全部和代码有关,大家会觉得枯燥。所以今天我们先来点”番外篇“,讲讲什么是架构师,什么是架构这个永恒的话题吧。此篇源出自我在公司内部写的一个PPT,它是用于在公司内部向广大技术人员做普及用的一个资料,而CSDN这边的编辑不支持图文混排的效果,因此一些章节我就直接截取自我的PPT里的内容了,这样可能对大家在阅读上会显得更加生动和活泼一些吧。
架构的定义
- 一个程序和计算系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构建,构建的外部可见属性以及它们之间的相互关系。
- 体系结构并非可运行软件。确切的说,它是一种表达,使软件工程师能够:
- 分析设计在满足规定需求方面的有效性。
- 在设计变更相对容易的阶段,考虑体系结构可能的选择方案。
- 降低与软件构造相关联的风险。
软件架构的生命周期
软件架构的重要性
为什么说一个软件架构是很重要的呢?直接编程直接开发,多EASY?请看下面几点:
- 软件架构能够满足系统的品质
- 架构设计使受益人达成一致的目标
- 架构设计能够支持计划编制过程
- 架构设计对系统开发的指导性
- 架构设计能够有效地管理复杂性
- 架构设计为复用奠定了基础
- 架构设计能够降低维护费用
- 架构设计能够支持冲突分析
什么是好的软件架构
什么又是糟糕的架构
要知道最时髦的并不一定是最好的
成功的软件又是怎么样的呢
- 一个是模块化的设计,整体线条流畅,战损时模块可以任意替换。
- 一个却是拼拼凑凑,线路外露,甲板上布满了各种电子设备和天线,一旦战损,极难维护
架构之美
架构就像是迷踪拳
架构就像是独孤九剑
架构就像是一件艺术珍品
架构的意境
架构时需要考虑的几个基本因素
JAVA通用领域的相关技术
- 顶部,是我们需要掌握的一些技术领域的知识,它可以使我们应对通用领域如电商、企业OA、银行保险金融等领域的一些解决方案和设计
- 中部,为了达到顶部这些技术我们需要了解的一些中间件、数据库、开发框架这些知识,它是一根支柱
- 底部,底部呢?它是我们的基础,为铺设我们通向中间或者更上层的一个基石,这也是为什么大家有时发觉我的博客和其它博客有不一样的地方,不仅仅有编程还有”中间“的这一层即数据库、性能、安全、框架搭建这些东西混合在里面的原因,因为我不希望大家通过阅读完了我的博客还只是停留在一个码农、码工、螺丝钉的这种水平上。
架构师的职能
功能性需求
页面查询,这个查询是关联哪些哪些数据库表,因为我的业务是有这样这样的需求,在界面A里点了一个按钮,然后弹出窗口B,在窗口B里要显示什么样的数据,最后界面A里点完后,当我打开界面B时哪块数据已经随之发生了更改。
非功能性需求
什么是IT?什么是程序员?什么是Tech Leader?什么是架构师?
TCP/IP协议,加密解密,计算机原理(增补反码),JPG码,MPEG2-3协议,逻辑电子电路,计算机编译器原理(堆、栈、队列),这些东西你平时工作时一直用到吗?这些是你一直关注的底层吗?
最近一直面试一些侯选人,做架构师的,在此过程中我对此深有感受,找一个程序员开发不难,招一个架构师,难。。。唉,我觉得大家有必要要考虑一下,如果我走技术路线,我缺什么,我怎么补,还要关注些什么?
- 第一宗罪:重业务不重技术
- 第二宗罪:编程开发人员沦为业务开发人员、沦为码农
- 第三宗罪:IT市场沦为自由市场、小菜场一样的叫买
- 第四重罪:技术无用论的诞生
- 第五宗罪:闭门造车,与实际脱节,完全抛弃业务
- 第六宗罪:消极怠工
- 第七宗罪:不思进取
架构师的分类
- 业务架构师即BA
- 系统架构师SA
架构师会做什么
架构师并不是万能的
架构师需要掌握的软技巧
架构师不是皇冠上的明珠
如何成为架构师
架构师也会退化到比一般的程序员都不如
如果停止了学习的步伐,那么。。。。。。
谈架构师的自我修养
学习之道
需要掌握的基本功中的基本功
Bad artist copy good artist steal
放正你的心态
不断的需要自我激励
- 学会平静的对待生活中的不完美之处,适应自己的情绪,了解如何让它们自然宣泄出去
- 学习如何把不完美的地方转换成我们的优势,激发我们的创造力
- 自我激励,不管外部条件是否有激励性,找到一种激发最佳状态的情绪,学习如何在我们的意识中制造一些波动来激励我们前进
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 一个架构师谈什么是架构以及怎么成为一个架构师
- 怎么成为一个架构师
- 什么是架构师和如何成为一个架构师
- 什么是架构师和如何成为一个架构师
- 什么是架构师? 如何成为一个架构师?
- 怎么成为一个软件架构师
- 怎么成为一个软件架构师
- 怎么成为一个软件架构师
- 怎么成为一个软件架构师
- 怎么成为一个软件架构师
- 九度OJ-题目1509:树中两个结点的最低公共祖先
- 关于C++多重继承的时候虚函数覆盖的问题
- 我为什么从 Python 转向 Go?
- OPENCV笔记(一)图像显示
- 程序员的量化交易(34)--QuantConnect_Lean如何定义Indicator指标2
- 一个架构师谈什么是架构以及怎么成为一个架构师
- iOS开发学习笔记(一)——Hello,World!
- js性能优化
- The source attachment does not contain the source for the file xxx class
- SNL文法
- JavaScript 开发的45个经典技巧
- Mac 终端提示You have not agreed to the Xcode license agreements
- AJAX面试题
- UIViewController 生命周期