软件架构师的路线图
阿里-泽纳利(Ali Zeynalli)-6 分钟阅读
照片:Danist Soh on Unsplash
软件架构师是软件开发团队中的高级别的角色。要成为这样的人需要时间和经验。你需要积累的技能和知识是跨职能的。除了在技术领域的挑战外,这个职位还要求架构师具有良好的 会技能。在开始研究成为软件架构师的总计划之前,让我们先看一下软件架构师的典型类型。
我们可以进一步扩展这个列表,因为每个公司可能对特定职位有不同的名称。上述软件架构职位的角色和职责可能因公司而异,但本质是相同的。请看下面的图表,以更好地了解不同的架构师角色在技术/业务技能和知识方面的关系。
业务与技术关系图
总体规划。
有一件事到现在为止应该是很清楚的:软件架构师是超级高级开发人员(通常……),除了那些真正来自商业背景的人。我试图列出不同的主题领域,在这些领域中,软件架构师应该是舒适的。
1.数据结构和算法–编程的基本原理对软件架构师来说应该是没有问题的。诸如数组、队列、堆栈、关联列表、不同类型的树、图等数据结构不仅对软件架构师来说是熟悉的,而且他/她还应该能够正确地认识到在哪里使用哪种数据结构。成熟的软件架构师应该知道不同的算法技术,如搜索、排序、递归、动态编程等。在日常生活中,没有一个架构师会从头开始写 “合并排序 “算法,或发现一个新的数据结构。但了解基础知识可以帮助他们在拉动请求审查中做出正确的技术决定。
算法简介
奖励:《算法入门》是掌握数据结构和算法的完美全能书。
2.技术栈 – 无论是后端还是前端,软件架构师必须非常了解当前使用的技术栈。学习特定编程语言的语法是最简单的想法。但积累经验是需要时间的。软件产品基础的不同库和框架也是需要了解的宝贵资产。
3.干净的编码 – 让一个软件系统工作并不是软件架构师的最终目标。每当软件架构师进行代码审查时,他/她想到的第一个问题是。1.我可以使这段代码更有性能吗?我可以让这段代码占用更少的内存吗?清晰的代码标准是否被正确应用?我可以利用不同的OOP技术吗?
Clean Code
奖励:Clean Code肯定会帮助你提高你的重构技能。
4.OOP – 面向对象的编程为使软件系统更加灵活、有效和可读提供了巨大的可能性。有经验的软件设计师经常使用这些技术。(如果技术栈适合…)
设计模式
5.软件设计模式 – 说到OOP,我们不应该忘记不同的设计模式的重要性,这些模式是由GoF首先收集和介绍的。了解这些设计模式肯定会帮助你使你的软件系统更好地使用面向对象的设计。
奖励:看看这本书,了解更多信息。
Clean Architecture
奖励:以下原则可以从R.C.Martins的名著中获得。Clean Architecture
6.S.O.L.I.D.原则 – 这些组件原则是软件组件设计中需要考虑的基本技术。有经验的软件架构师如果掌握了这些原则,会很快识别出代码中的违规行为。
7.内聚/耦合原则–像REP、CRP、ADP等原则是软件架构师的重要原则,特别是在构建、捆绑插件的时候。因此,这些技术可以应对更多的高层设计。
软件架构的实践
8.系统设计–有很多软件架构模式,比如。主-从,客户-服务器,微服务,模型-视图-控制器,单向架构,取决于后端或前端项目。当然,我们不可能知道所有的模式。但根据一个项目,软件架构师应该是底层设计的高手。最基本的出发点是领域驱动设计。
9.文档 – 这是软件架构师日常工作中的一个关键点。绘制不同的UML图,ARC42文档是这个职位不可避免的一部分。有很多工具,如。
10.证书–对于软件架构师来说,全球知名的认证方案并不多,但还是有国际软件架构资格委员会(iSAQB?)提供的软件架构专业认证(CPSA?)认证方案。CPSA?的认证是全球公认的。
因此,成为一名软件架构师需要时间和努力,正如你从上面的列表中看到的那样。但这是很容易做到的:)。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!