如果说程序开发是码农的话,那么架构师就是程序里的总设计师了。对于开发人员来说,架构师称得上是职业生涯的目标之一了。 想要成为一名架构师,需要知道什么? 01/基础设计理念 作为架构师,要有一个比较宏观的设计理念,这里的设计是结构层的设计,你需要有一个整体的概念,从宏观角度去分析问题,分解问题。 在设计之前,架构师要有一个清晰的边界认知。比如说:我们要造一辆车,而不是飞机、轮船或者别的东西; 在做方案设计的时候,架构师还需要考虑产品/系统的可扩展性,灵活性,兼容性,稳定性,易用性等方面; 02/技术知识体系:要有全面的技术知识体系 作为架构师,技术要非常过硬,同时还需要有比较完善的技术知识体系,你需要对各方面都有一个了解; 但是技术的更新迭代是非常快的,所以每次一旦有新技术出来的时候,作为架构师需要非常自觉地去了解。 对于架构师工作中需要用到的技术,则需要做到深度学习和应用。而对于工作中不太用得到的新技术,也要做到了解这种程度; 最好还需要精耕某几块技术,比如数据库,工作流,前端交互;这些是架构师需要深度掌握的技术; 03/架构师的成长路径 首先,可以根据开发组长分配的任务,完成一个功能点的开发。因为这些小的功能点,是经过架构师分解的功能点,可以从这里了解一个小功能点的颗粒度大小和边界; 再有,想往上走的话,可以考虑负责一个小的模块;这个时候就要求有一定的开发经验和设计的想法; 之后,尝试更大模块的开发与设计;因为大的模块往往是由一些小模块拼接完成的,这时候就和架构师的工作非常类似了; 然后,核心模块的设计;只有把控过核心模块设计和研发,才能成为真正的架构师; 最后,整个系统的设计和把控;经过前面几个步骤,我相信大部分开发都能顺其自然的成为一名架构师; 同时在这个过程中,本身还涉及到和不同人之间的交流,所以沟通交流能力对于架构师来说是非常重要的; 04/不同的场景,要有不同的解决方案 同样是实现某一个功能,但是架构师给出的解决方案会是完全不同,这就要取决于我们的应用场景了,比如说架构师来设计一个工具,有时候用excle表去做配置就可以了,有时候写一个文档说明就可以了,而有时候可能会要开发一个系统实现。 架构师需要根据应用场景,给出最合适的方案。 05/如何评估项目可行性 评估某个项目的可行性,也是架构师的工作之一。如何评估项目可行性?我们可以从下面几个方面来考量: 团队成员的技术能力 项目的人员配置 项目支持的开发时间 客户对项目的预期 在项目开始之后还需要做好安全性,高可用性,代码质量,可读性等方面的审查; 06/懂得做取舍 没有方案是十全十美的,所以作为架构师来说,需要懂得做取舍;做到当下适合就好,不要过度设计; 同时考虑使用哪种技术的时候,也是适用就好,不要一味追求新技术。因为我们还需要从成本,实施难度,团队成员的技术水平等各个方面做出综合考量; 在学习这一块,建议从基础(语言基础)、宏观(设计理念)、微观(性能优化)这三方面学,就以java举例: 基础:java编程思想 宏观:java设计模式 微观:java性能优化 这三方面的书,都能理解的话,那java这个语言就可以吃的很透彻了。 架构师也是从一名普通的程序员做起,你是选择0.99的365次方还是1.01的365次方,取决于你自己。 小编:评论区留言你想了解的岗位或想看到的内容,小编会择优为你奉上秘籍。 |
|