架构学习内容
发布日期:2021-06-29 14:51:00 浏览次数:3 分类:技术文章

本文共 3501 字,大约阅读时间需要 11 分钟。

架构师,是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。架构师不是一个人,他需要建立高效的体系,带领团队去攻城略地,在规定的时间内完成项目。

1 确认需求

架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求。项目经理刘先生在受访时说:「架构师会与很多人沟通,例如开发人员,例如我们项目经理,有时甚至是用户本身。架构设计的目的很明确,目的是什么呢?挖掘用户需求。」

2 系统分解

在架构师认可需求规格说明书后,架构师已明确用户需求是是什么,这时候便看架构师的分解能力了。通过100offer入职的全栈技术架构师周先生从「纵向分解」和「横向分解」和我们说明了系统分解是什么——「一般分为纵向分解和横向分解,纵向分解是将整个系统分层,从而将整体系统分解成下一级的子系统与组件。横向分解是在系统分解成不同的逻辑层或服务后,对逻辑层进行分块,确定层与层之间的关系。」

3 技术选型

在系统分解后,架构师会最终形成软件整体架构,接下来,架构师的职责是技术选型。「前端到底用瘦客户端还是富客户端呢?数据库是用MySQL还是MSSQL又或是Oracle呢?」架构师张先生在接受采访时说,「在了解用户需求后,分解完系统后,技术选型是非常重要的环节,提出各个方向,我再进行评估。不过,很多人都以为架构师是有决定权的,其实不是,架构师没有拍版的权力,决定由项目经理来做。 」架构师在技术选型阶段会提供参考信息给项目经理,项目经理再从预算、进度、人力、资源等各方面情况来权衡,最终确认。

4 制定技术规格说明

如前文调查显示,架构师在项目开发过程中是「灵魂人物」,并且要具备协调组织能力和懂得人员分工。

在制定技术规格说明阶段,架构师要协调起所有的开发人员,架构师通常会用技术规格说明书与开发人员保持沟通,让开发人员能从各个视角去观测、理解他们负责的模块或者子系统,确保开发人员能够按照架构意图实现各项功能。

架构师该具备什么能力

在这里插入图片描述

在这里插入图片描述

37%的受访人认为架构师的设计能力最重要,技术实力重要度排在第二占了24%,沟通能力则排在第三,占比14%,管理能力在大多数架构师眼中并不是最重要的,仅占了7%。此次,我们详细分析排在前三的能力。

1 设计能力

擅长整合分析架构是过程,并非结果。架构是架构师洞察内在结构、原则、规律与逻辑的过程,架构师要做到清晰理解系统,以及简洁描述,这是分析整合的能力。一个架构师必须具备极强的分析能力,要做到根据产品宗旨和目标,分析清楚产品定位以及产品业务,再整合利用现有的技术领域,找出最佳方案,实现产品概念。

2 技术实力

实现产品规划架构师首先要将代码写的清晰易懂,要能够实现功能,做到没有Bug,这要求架构师必须具备至少熟练掌握一门语言。这是最重要的,每一名出色的架构师,必定是一位优秀程序员。架构师并不是纯粹的管理岗位,对那些爱写各式文档、画流程图、脱离代码、只说不做、高高在上的架构师,程序员们通常会称他们为——PPT 架构师。不懂编程的架构师的职业生涯必定是短暂的,无论如何都不可本末倒置,要想实现自己的职业规划,不能荒废自己本身的技能,技术是架构师赖以生存的最基本能力。所以,不推荐不热爱编程的人去做架构师,对于团队工作和个人发展来说,都会带来糟糕的后果。

3 沟通能力

能够横向沟通架构师必须参与项目开发全过程,包括确认需求、系统分解、架构设计、技术选型、制定技术规格说明、系统实现、集成测试和部署各阶段,在这一系列过程中,架构师会与各部门沟通交流。一个产品会有多部门合作,架构师在其中的沟通极为重要,直接影响产品进度与质量。架构师不仅要与开发人员沟通,也要和项目经理、分析人员甚至用户沟通,来实现产品的各种可能性。所以,对于架构师来讲,不仅有技术方面的要求,还有能够横向沟通的要求

好的架构师除了自身技术能力外,眼光更加重要。对于创业公司而言,架构师需要能准确看到公司业务核心需要解决的问题,比如我们公司业务价值在于资讯和行情的速度,那么最开始做架构的时候就花了非常大的精力去提升系统的实时性,比如投入人员去自动化整个信息发布流程,比如使用WebSocket代替有延迟的轮询方案,同时又对低端设备准备好降级的替代方案等。而对于一般架构中比较重要的用户系统,其实我们是等到公司开始涉及金融交易业务时才去将这一块完善的。个人愚见是,没有什么架构能解决所有问题,大公司的架构也未必能适合创业公司用,如果我们一开始就花精力去做用户,去规划分表分库,系统本身固然会得到更好的扩展性,但是公司的发展速度却会受阻。我总结创业公司做架构优先考虑的应该是用较低的成本满足当前需求,并且保证一定的前瞻性就够了。

在这里插入图片描述

心理学家德雷福斯经过了大量的调查研究,将人分成了五个等级,构建了“德雷福斯等级模型”。

五个等级分别为:新手、进阶新手、胜任者、精熟者以及专家。

1、新手:

新手一般是初入职场1~3年的员工。他们的特点是严格遵照规定,不会有太多自己的想法,因此不会出大的错误也不会有太大的成绩。

2、进阶新手:

工作几年后,新手开始学会细分任务,慢慢地对工作有了自己的想法。这个时候,已经能达到进阶新手的阶段。

3、胜任者:

第三个阶段是胜任者。胜任者顾名思义,在工作岗位上能够保质保量地完成任务,而且能够制定计划和按情况处理任务。

4、精熟者:

与胜任者相比,精熟者开始能发现工作中出现的问题,并对问题有着自己的思考。此时,精熟者开始建立了自己工作的大局观和整体观,处理问题的时候也更加灵活。

5、专家:

最后一个阶段就是专家,专家的过人之处在于其“无招胜有招”。因为专家工作已经不需要具体的方法和规则,他们的工作就是从现在已有的工作方式中去探寻更个性化、有创造力的解决问题的方法。

我们研发人员发展的技术路径(仅供参考):

在这里插入图片描述

参考网站:

《》

《》
《》
《》
《》

必看的书:

《鬼谷子的局1-8》 —ing

《Linux 内核设计的艺术》 — ing

《软件架构设计:程序员向架构师转型必备(第二版)》

《代码大全2》《计算机程序设计艺术》

《深入理解计算机系统》
《软件架构师设计》

《架构真经》

《人月神话》
《大话设计模式》
《重构-改善既有的代码的设计》
《设计模式》
《重构与模式》
《金字塔原理》、《结构化思维》、《系统思维》
《算法导论(麻省理工学院出版社)》 《离线数学及其应用》
《编程之美》
《黑客与画家》
《编程珠玑》

《极限编程研究》

《卓越密码:如何成为专家》
《时间管理:小强升职记》
《搞定:无压力工作的艺术》

《人人都是产品经理》

《程序员的自我修养》《程序员修炼之道》《高效能程序员的修炼》
《精神分析引论》弗洛伊德

《Java从入门到精通》

《深入理解java虚拟机》《java性能优化权威指南》《java并发编程实战》

建模语言:UML

1. 《大型网站技术架构:核心原理与案例分析》

这是比较早,比较系统介绍大型网站技术架构的书,通俗易懂又充满智慧,即便你之前完全没接触过网站开发,通读前几章,也能快速获取到常见的网站技术架构及其应用场景。非常赞。

  1. 《亿级流量网站架构核心技术》

相比《大型网站技术架构》的高屋建瓴,开涛的这本《亿级流量网站架构核心技术》则落实到细节,网站架构中常见的各种技术,比如缓存、队列、线程池、代理……,统统都讲到了,而且配有核心代码。甚至连 Nginx 的配置都有!

如果你想在实现大流量网站时找参考技术和代码,这本书最合适啦。

  1. 《架构即未来》

这是一本“神书”啦,超越具体技术层面,着重剖析架构问题的根源,帮助我们弄清楚应该以何种方式管理、领导、组织和配置团队。

  1. 《分布式服务架构:原理、设计与实战》

这本书全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。

  1. 《聊聊架构》

这算是架构方面的一本神书了,从架构的原初谈起,从业务的拆分谈起,谈到架构的目的,架构师的角色,架构师如何将架构落地……强烈推荐。

不过,对于没有架构实践经验的小伙伴来讲,可能会觉得这本书比较虚,概念多,实战少。但如果你有过一两个项目的架构经验,就会深深认同书中追本溯源探讨的架构理念。

  1. 《软件架构师的12项修炼》

大多数时候所谓的“技术之玻璃天花板”其实只是缺乏软技能而已。这些技能可以学到,缺乏的知识可以通过决定改变的努力来弥补。

转载地址:https://ciellee.blog.csdn.net/article/details/102967164 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:理解 Audio 音频系统六 之 Audio音乐播放器编写 及 MediaPlayer 实例化代码分析
下一篇:2019年11月 生活记录&总结

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 22时52分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

JAVA 线程同步机制 synchronized 2019-04-29
MySQL 安装教程(无脑版) 2019-04-29
IDEA 怎么删除一个Module 2019-04-29
走进数据科学:最好是通过比网课更好的方法 2019-04-29
AI革命第一步:最容易被忽略但必不可少的物联网 2019-04-29
2020年开发运维工具清单:选择开发运维工具堆栈吧 2019-04-29
效率提升法则:高效人士不会去做的4件事 2019-04-29
8.PostgreSQL约束 2019-04-29
【技术分享】使用AES加密技术保障数据安全 2019-04-29
【应用实例】布线多?成本高?不可靠?泽耀方案没烦恼! 2019-04-29
数据可视化工具:Matplotlib绘图 2019-04-29
用Python写个超级小恐龙跑酷游戏,上班摸鱼我能玩一天 2019-04-29
闺蜜看我用Python画了一幅樱花图,吵着要我给他介绍程序员小哥哥 2019-04-29
【Python爬虫实战】知乎热榜数据采集,上班工作摸鱼两不误,知乎热门信息一网打尽 2019-04-29
自从我学会了数据挖掘Matplotlib、Numpy、Pandas、Ta-Lib等一系列库,我把领导开除了 2019-04-29
Python抓取哔哩哔哩up主信息:只要爬虫学的好,牢饭吃的早 2019-04-29
有个码龄5年的程序员跟我说:“他连wifi从来不用密码” 2019-04-29
领导让我整理上个季度的销售额,幸好我会Python数据分析,你猜我几点下班 2019-04-29
【Python爬虫实战】为何如此痴迷Python?还不是因为爱看小姐姐图 2019-04-29
零基础自学Python,你也可以实现经济独立! 2019-04-29