什么样的人可以称为架构师?
我曾问过很多自称热爱代码的程序员的发展规划,大多都回答说期望成为一名架构师。而在招聘一方,有的团队会过滤掉多次提起架构一词而一点不提具体内容的简历。可见,虽然在大多数程序员眼里,架构师是神圣的,但又不得不承认事实是:“架构”和“架构师”是最常被滥用的。那些写能 PPT 而不能写代码的人,只做和事佬而不考虑软件快、稳、便捷的人,都称不上做“架构”更别提“架构师”。
那么什么样的人可以称为“架构师”?
据称架构一词源于建筑行业,架构师这个职位,不管是前端还是后端,职责是相同的。而用规划一次房屋的装修来描述架构师这个职位的职责是非常合适的。
建立一套 Web API 就像在定装修风格。要选择注重重 CRUD 的 RESTFul 式,还是请求自定义性更强的 GraphQL 式,又或者是简单的 JSON-RPC 式,这就像装修风格是选要简洁的日式、粗犷的美式还是奢华的欧式。定方向和选型这件事无处不在,架构师必须根据实际需求,做各种决策,为后面各部分整体结合打好基础。
灯光、墙面、家具等各个部分都需要根据风格精心设计、执行和不断修正,才可能达到原定目标,架构也一样。拿光线控制来说,施工人员可能会忽略你注重的一些细节:暖色的书房氛围;明亮且能切到影院模式的客厅;装在合适位置才不会刺眼的背景灯。在每个环节的执行上,架构师既要设计,又要保证对每个角色充分理解,必要时不排除动手编写重要环节的功能,而在经验或考虑不足的点上一旦出现问题就必须迅速调整。空有一个好的设计而没有好的执行,是非常让人惋惜的。
值得一提的是,选用最好的卫浴用品、最贵的过滤器并不是获得最佳洗浴室体验的关键点。同样,软件架构并不是说把每个部分做到最好再拼凑起来就能达到佳效果。最好洗浴室体验的关键点在于折中和妥协。例如,在水压不是特别高的情况下,把过滤器安装在总闸虽然能让用水达到最健康的状态,但会导致淋浴的水压不够,进而使体验大打折扣。把过滤器安装在厨房出水口可能是最佳的平衡,既保证水压又保证了用水的健康。分成多个部分是解耦,而协作的平衡是内聚。低耦合、高内聚是架构师处理软件各部分协作的终极目标。
装修有很多细节,例如,若不喜欢晾衣服且生活在有“黄梅天”的上海,可选洗烘一体机;房子面积不大,可选扩展型家具;对通风质量要求比较高,可安装新风系统。软件架构也需要考虑很多细节,例如客户需求、实际环境、技术可用黑科技之类、安全、重用、扩展等。而这些细节方面的考虑,并不是一个刚入门的新人能做到的。
总的来说,称得上架构师的人,必须是具备丰富系统设计经验且能保证设计执行的设计师和决策者;必须参与设计、开发执行和测试但又不局限于一个角色。也许架构师并不一定全是这样,这仅代表个人看法和期望。
转载自“饿了么大前端总监:什么样的人可以称为架构师?”,跟笔者心目中对架构师定义的观点完全是很相似的,现实和理想之所以存在差距其实并不难理解,反过来想想世界上有数千万的企业,为什么会有百强就不难理解了。
相关文章
- Java知识体系 大盘底:掌握这些,菜鸟小白,可以顺利进入大厂,搞定年薪50W+
- 大厂并非是遥不可及的梦!学习3个月,努努力也可以年薪40W+
- 使用you-get下载网页小视频(实际上你可以下载任意你想要的web网页中的内容)
- 电机驱动板测试:是否可以输出150kHz高频信号?
- 一个2*N的表格,砖块是1*2的尺寸,可以横着放或竖着放,请问2*N列表格有多少种放法
- 有了这些机器人陪逛街,男朋友可以丢到一边了
- 尝鲜刚发布的 SpringFox 3.0.0,以前造的轮子可以不用了...
- JS函数可以再添加属性(包括方法)
- 程序员的《权利法案》(转)---桌子,椅子,显示器。(作为程序员,你要去争取应有的权利!而且记住:你可以让公司做出改变,要不然你就换一家公司。)
- Ubuntu 18.04在已经安装Docker CE后如何安装NVIDIA-Docker,以使docker容器内可以使用宿主机显卡
- 5G脚步越走越近,2020年就可以用上了
- 私有云浏览器Brave亮相 号称可以拦截一切
- java的System.getProperty()值的方法可以得到
- Mysql 8.0 密码管理问题,root登录修改默认密码,root无需密码或任何密码都可以登录原因及解决方法
- 阿里开源中间件canal实现mysql数据库同步,零侵入不写代码实现,也可以通过整合到项目程序实现更加灵活的控制,简单几步实现高性能准实时多数据库多数据表的数据同步,可在windows和Linux部署