架构师,架构师,如何从梦想变成现实?

这个题目,不是标题党,也不是为了给出答案,而是自问,写出来一些看法,和自己对未来几个月的规划,当然更加希望同僚能多提意见或建议。
很久之前,从大学毕业开始,自己就一直做着“成为一个架构师”的梦,并且也在磕磕碰碰中前进和提升。但到现在已经工作了5年,却也还是不如人意。
从最开始做技术支持,到码工,到高级码工啥的,角色好像变了,但总是觉得有非常非常多的东西要学,要不断地历练。到现在再换了一个环境之后,心里真是更加清楚自己到底有几斤几两。不能全面否定自己的进取,应该说来,自己对架构师的角色越来越清晰吧。
首先说说自己到底想成为哪个方面的架构师。因为一直从事跟web相关的工作,什么前端,后端的开发都做过,所以,自己就想成为一个web开发的软件架构师。当然因为主要用java,也毫无疑问要跟java有关的工程。
从哪些方面出发呢?在这5年的工作中,有两到三年实际上跟开发有点脱钩,我没有好好开发,总是丢三落四的承担一点点开发工作(因为要带团队,有些身不由己)。总是会在静坐时清醒一些,想想自己应该干什么。终于在去年离开老公司,进入新环境,也更加清晰地认识到自己应该再从哪些领域着手提高:
1.针对业务或者是产品,以及工程或产品的生命周期选择开发语言和开发框架。
必须强调的是,任何架构,都不能脱离产品或工程需要而存在。尽管很多成熟框架可以在很多地方使用,那也是要针对特定的情况而言。而需求永远都是我们首先要考虑的,否则就会影响我们的判断。就像孙子定的是36计,而不是仅有一计,道理相同。只要你符合具体需求,哪怕是自己写的框架也是最成功的(DDD强调业务领域的重要性)。
用了几年java,说实话,没有java实现不了的,但是对一些实现,成本是很高的。就目前来看,java之于web开发,还是相当强劲的,因为有很多第三方软件的支持。从这个角度讲,可以给公司节约很多成本,但是java世界的开源环境是一个大而杂的生态状况,正如当今社会的鱼龙现状。于是,个人觉得应该再学习一至两门其他语言,用于针对不同的问题,实施不同的解决方案,而不是手里拿着锤子,看啥都像钉子。
因为接触的项目90%以上是java开发,所以,要对java相关的技术了如指掌,包括:jvm(尤其是6,7两版)、java api、web容器、设计模式、开源框架(如spring,guice等),重构技术等。
了解jvm,是要清楚java的底层实现,避免写出易于出错,或效率过低的代码。Java原产地的人总是很注重对基础信息的把握,但是我们却总是急于求成。
熟练掌握好api,是使用一门语言最开始就要达到的要求。因为java的底层实现是很优秀的,除非有特殊的效率等方面的需求,java中给我们的任何操作都提供了大量唾手可得的类和方法。尤其要熟练掌握的有:集合、io&nio、多线程等几个常用包。
web容器重要性尽人(开发同僚)皆知。至少要了解一到两个容器吧。(还是太少,开源的就得两三个,企业版的如weblogic,websphere直流的也应该会搭建,会部署,了解一些调优知识)
设计模式,应该在学习框架之前,最好是学过之后,再去看框架,因为很多框架中用了大量的经典模式,spring就是其中一个极为牛X的牛叉框架。我忍不住再说一次,这是个牛叉框架,在用spring之前,最好把Johnson的那边expert _disibledevent=>
Tags:  网络架构师 网站架构师 java架构师 软件架构师 架构师

延伸阅读

最新评论

发表评论