老师今天在第一节课是要让我们了解如果要做一名软件架构师,我们应该做什么和怎么做。在课堂上,老师通过《架构漫谈》这本书了解什么是软件架构师。软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。

首先,我们先了解什么是架构,所谓架构,实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要。根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

作为软件够诚实或者架构师,我们大部分时间是要去解决别人的问题。“别人”是谁,是只得好好思考的,这才是问题的主体。明白了主体,这个主体就自然会带来很多边界约束,后续问题就能够出来了。由此可见,找出问题的主体,是做架构的首要问题。我们要解决的问题,一定是人的问题。架构师要解决的,基本都是别人的问题,不是自己的问题。任何找上架构师的问题,绝对都不是真正的问题,因为如果是真正的问题,提问题过来的人肯定能够自己解决了。对于架构师来说,发现问题永远都比解决问题来的更加重要。

在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。切分的原则:情况1是切分的原因,情况2是切分不合理而导致的新的问题,最终还是要回到情况1。

我们大概了解了什么事架构之后,就应该学会如何运用架构思维,更好的设计和实现软件。软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

架构师是要去平衡别人的利益,甚至会调整别人的利益的。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。架构师只能够通过建立某些流程来行使架构师的权利,比如强制架构review,反而会造成很多内部不必要的冲突,最终都会导致这些流程流于形式,得不偿失。架构师必须能够超越对时间的恐惧–也就是说必须具备了一定程度的自信,哪怕是装的,去真正的发现问题的主体,识别真正的问题,并把这个行为变成为自己面对问题的第一反应。

在了解了软件架构师的工作职能之后,我们还应该明白作为一名软件架构师的工作流程。首先,作为软件架构师要给予商务支持,提供系统解决方案和架构咨询。然后在需求阶段,软件架构师需要和需求分析师一起,参与需求的沟通,协助完成技术/业务咨询和需求模型。在做了需求分析之后,就进入了架构阶段,软件架构师需要进行系统分析和设计,进行系统抽象,设计系统模型,进行技术原型,开发架构原型等,然后在进行了设计之后,他还需要指导设计人员完成详细设计。之后在开发阶段,软件架构师需要指导开发人员按设计实现,解决技术难题。

架构无处不在,我们在软件体系架构这门课程中,不断学习,不断积累,让自己不断进步,学会如何架构自己的未来。

转载于:https://www.cnblogs.com/xxdcxy/p/8522980.html

浅谈软件架构师的工作相关推荐

  1. 浅谈人工智能的工作原理

    众所周知人工智能现在快速发展,并且为众人所熟知,不仅如此,人工智能也在各行各业中广泛使用.那么人工智能的工作原理是什么呢? 浅谈人工智能的工作原理 人类智能由三个部分构成(还有些其他生物学和科学现象也 ...

  2. 浅谈 git 底层工作原理

    浅谈 git 底层工作原理 系统复习到这里也快差不多了,大概就剩下两三个 sections,这里学习一下 git 的 hashing 和对象. 当然,跳过问题也不大. config 文件 这里还是会用 ...

  3. 伺服驱动器生产文件_浅谈伺服驱动器的工作原理

    原标题:浅谈伺服驱动器的工作原理 目前,主流的伺服驱动器均采用数字信号处理器(DSP)作为控制核心,可以实现比较复杂的控制算法,实现数字化.网络化和智能化.功率器件普遍采用以智能功率模块(IPM)为核 ...

  4. 【转】让电脑更高效的魔法 – 浅谈高效率PC工作环境的简化、净化与建立方法...

    昨天看到一篇不错的文章,值得学习借鉴,要督促自己每天都写博客,学习知识! 转自:http://www.iplaysoft.com/build-effective-working-environment ...

  5. 心情随笔,浅谈软件开发工作两年感悟与想法(中)

    前言:(现状)         前一篇文章记录了前女友结婚的心路历程,虽然早已经明白,我选择了离开老家城市,那么就注定与她无缘了.但还是很可惜,不过依旧祝她幸福.(要是不幸福,还可以回来找我,哈哈)这 ...

  6. 11旋转编码器原理图_plc编程入门:浅谈编码器的工作原理!

    编码器(encoder)是将信号(如比特流)或数据进行编制.转换为可用以通讯.传输和存储的信号形式的设备.编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺. 编码器主要是由码盘(圆光栅 ...

  7. 1流式细胞术荧光比值计算_浅谈流式细胞仪的工作原理和应用

    流式细胞术(Flow Cytometry, FCM)是七十年代发展起来的一项高科学技术,80年代开始从基础研究发展到临床医学研究及疾病的诊断和治疗监测,我国在80年代初引进了第一台流式细胞仪. 它集光 ...

  8. 浅谈航管二次雷达工作原理

    航管二次雷达工作原理与应用 1.航管二次雷达简介: 航管应答一般称为空中交通管制雷达系统(Air Traffic Control Radar Beacon System)或二次航管雷达,是用来提供地面 ...

  9. 高效学习传感器|浅谈CCD的工作原理以及常用波

    介绍了CCD的MOS光敏单元的结构.CCD电荷存储的原理.CCD电荷转移的原理.CCD信号电荷的输出等知识.介绍了声波和电磁波的基础知识,可以了解声波和电磁波的异同,了解声波和电磁波的波段划分,了解不 ...

最新文章

  1. Ubuntu18.04中pyhton默认版本从2.7换为3.x
  2. Mybatis配置文件注释
  3. 【渝粤题库】广东开放大学 文化活动策划与组织 形成性考核
  4. JS获取屏幕浏览器网页高度和宽度属性
  5. 查看linux服务器信息
  6. 扫盲贴|如何评价一款App的稳定性和质量?
  7. 对于原始轨迹的噪声过滤方法和曲率计算方法
  8. 平板android优化网络,Android版Firefox更新 针对平板设备优化
  9. (19)ISE14.7软件生成bit失败永久解决方法(FPGA不积跬步101)
  10. ubuntu 个人常用的命令
  11. 前端性能监控你会监控哪些数据? 如何做?
  12. 地理探测器软件下载与使用
  13. Word2010为图片批量插入题注
  14. 计算机相关文献综述范文,计算机文献综述范文.doc
  15. 明德扬MODELSIM/仿真问题
  16. 手把手教你怎样用U盘装系统
  17. 2010年度CSDN十大博客文章
  18. FineBI 新增字段后 更新缓慢问题
  19. VGA数模转换电阻匹配网络分析
  20. 抗战电影中出场率很高的边三轮为什么能在软件界能混的风生水起

热门文章

  1. android-async-http取消请求
  2. 开始Azure之旅,参加深度培训 (转)
  3. [译].NET 4 中玩耍内存映射文件
  4. ILSpy反编译工具的使用
  5. 【SSH】——Hibernate实现简单的自动建表
  6. [LeetCode] Longest Substring with At Most Two Distinct Characters 最多有两个不同字符的最长子串...
  7. ANSI Common Lisp 中文翻譯版 — ANSI Common Lisp 中文版
  8. 结构型模式:Decorator 装饰模式
  9. bootstrapSwitch bootstrap 的开关组件扩展
  10. 使用Apache Ignite构建C++版本的分布式应用