回复:成长 ,获取视频下载。 1架构师平时都做些什么事? 主要当然是跟架构相关的事情吧(好像是废话哎),具体一点就是架构设计,讲解推广,然后再做一些代码方面的工作。说起来,讲解推广可能是很多人不太重视的,但其实它的比重还是比较大的,基本能到三成。 而这三者的比例,5:3:2也是很经常的。也就是说,团队到达一定的规模,架构师可能80%的时间都不在编程而在思考上。想(设计)不好,团队就会走很多弯路。很多时候我们太忙,看起来是事情太多,但其实可能是想得太少。 会写代码么?会写,但是可能并不会是核心代码,这个其实看每个团队的成熟程度,比如早期我会写一些核心代码,但是后来因为团队比较厉害了,如果我不分配足够的精力在某个功能实现上,为了不拖累整体的进度,会倾向于写一些边缘的代码,主要是了解团队的代码质量和实现进度。现在可能更多的写一些试验性的代码,去玩一些新的技术。 这里面还有个很特殊也很重要的工作,就是故障处理。对于一个系统来说,实现出来只是第一步,真正做成高可用的系统,还有相当长的路要走。这个过程中,你会遇到各种各样的情况,遭遇系统宕机、服务崩溃等等。基于故障的改进是架构演化很重要的一种形式。我们经常说,故障是推动技术进步的重要动力,就是这个意思。在处理故障的过程中,才会更容易体会思考当前系统的缺陷,后续改进的方向也会更加明确清晰。 前面这些事情基本都是属于输出型的,是个人对团队的贡献。个人层面,我还是需要不断地输入,学习新的知识,保持对行业、领域内新技术的更新。这里也向大家推荐一下,看论文可以认为是架构修炼的一个捷径,因为很多论文写得比较严谨,也会比较系统,了解一个系统实现的细节甚至是思想都很方便。 再有点时间,可能就是写写文章,最近(一年前)写了一个公众号,大家有兴趣可以关注,名字是「一乐来了」,不过可能还是年更 :P 2分享走过的坑,如何做架构? 我第一反应感觉自己没走过多少坑,但是后来想想,其实这也许是在坑里的表现,j2直播,因为一般在坑里的人是不知道自己在里面的。 话说回来,我觉得有一个坑是所有工作的人都很容易遇到的,就是要认识到研发类工作遇到的问题,在很多情况下,不仅仅是技术问题,这就意味着并不是解决了技术部分就能解决掉的。 拿我自己举例。刚开始做系统设计的时候,有一些架构改造的点子经常不被认可,跟同事跟领导说起来,大家虽然没有什么意见,却应者寥寥。当时有一种强烈怀才不遇的感觉,甚至一度对团队都产生了怀疑,非常苦恼。 后来忽然有一天想明白了,只要还在一个团队,还是得做些事情说服别人才有意义,保持清高却期待变化是不现实的。想说服大家还是得换个角度,先去思考别人为什么不接受。顺着这个方向,慢慢解开了这个结。一般这种你觉得自己不被人理解的情况,基本都是你因为对技术的兴奋,过低评估了风险,或者没有考虑人的因素(是否充足,投入产出比),或者没有考虑项目的因素(排期进度方面)。 多说一句投入产出比的事情。其实单纯的技术改进很多情况下都没有太大价值,除了个人能练练手以外。技术真正发挥价值的地方,一定是在对用户产生影响的时候。如果做不到这点,一遇到人力紧张的情况这样的技术改造就会被放弃。当然说起来应该也算好事。 至于如何做架构呢?我推荐一个工具iPad Pro,也给大家演示一下像Paper53、Notability这样的应用。这些都是我在平时给大家讲解时会用到的,比单纯的PPT要好很多。因为从一个架构图开始,给大家建立整体的概念,然后细化分析其中的组件,在这个过程中再不断提醒这个组件在整个系统中的位置,j2直播,对于理解一个系统来讲帮助是非常显著的。 服务从本质上来讲就是数据的处理,而架构设计就是在定义数据流转方式而已。 3对想做架构师的同学的几点建议? 最重要的当然是要像架构师一样思考。今天来看直播的有很多不同阶段的同学,我再说一些稍微具体的建议,当然也结合我看到的很多人容易走进的误区。 对于刚入门的同学,在听到一些新的热的技术时,一定不要只是看热闹,要去看门道。很多人都可以针对架构问题夸夸其谈,但其实对概念并没有了解清楚,表现出来就是好一点也只是知道某个东西是什么,却不知道它的优缺点,也不清楚为什么在一些情况下要用。 (责任编辑:本港台直播) |