论坛首页 招聘求职论坛

系统架构工程师到底要不要会写代码

浏览 51594 次
精华帖 (10) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2009-06-04  

我觉得关键是楼主找人的意图。我个人觉得软件架构师更看重其对于整个软件开发的思路,以及如何设计一套软件架构,使得这个软件架构能够灵活的适应业务和系统发展,而不会出现太多的耦合类,导致后期的扩展和开发无法进行。至于写代码我觉得更重要的是看他对于一个系统如何设计的思路,如果他能有严谨的思路和解决方案去提出架构。细节的代码编写可以忽略。但是对于代码能够敏捷的发现问题,即读代码的能力和对于代码质量的东西是要能够把握的。

我个人觉得目前国内的软件开发大部分基本都是MIS系统。包括企业的ERP系统。在我们拿到一个项目的时候,这个时候最需要的是一个系统架构师(系统分析员),他能够把握客户的业务数据流,提出一套完整可行的IT信息架构。这个架构可以使客户的业务数据流高效的信息化管理和流转。实质上面这个架构就是整个系统的数据模型架构,如果一套灵活可用,且有一定前瞻性的和扩展性的数据模型是整个项目成功的关键。因此系统架构师需要是沟通能力强,能够准确把握客户需求并转化为高效数据模型的人。他从整体上面觉得整个IT信息系统的发展和功能实现。

之后才出现软件架构,我觉得一个好的软件架构师应该能够熟悉系统架构模型,并以此进行软件的功能和架构体系划分。使之底层的代码具有良好的独立性,并让对象之间的耦合性最低。这样客户端开发人员进行开发的时候能够使用好的底层代码,快速的开发。

因此,我觉得楼主完全是在找高级程序员。我觉得找架构师应该更看重其对于一个问题的思路和解决方法是否清晰和有前瞻性。如果他能够对于某个系统提出一个很好的架构划分,每个实现方面可以有软件开发人员完成。但是他必须能够把握开发的质量。至于实际的写代码可能不是很重要,但是读代码和找问题的能力需要强

从我们涉及到的大型软件系统开发来看,很多的问题实质在于系统架构师部分的数据模型。这个才是关键的关键,现在很多项目基本都是到了后期无法支撑,因为模型不适应业务的发展,之后产生大量的垃圾库表。对于数据的优化和软件开发都无能为力。所以架构师我认为是思维而不是具体的东西,因为具体的代码分工体系不一样的。但是度与代码的阅读和类之间功能体系划分是需要的

0 请登录后投票
   发表时间:2009-06-04  
个人觉得,一个公司的构架师
要么就是自己公司培养了好多年,从基层做起,对公司业务,开发方式都很熟悉的人
要么就是能够强龙压住地头蛇的人,资历实力都能让人信服的,不过这样的貌似比较难找,还是找猎头吧,呵呵
0 请登录后投票
   发表时间:2009-06-04  
一个架构师,最重要的是语言层面的理解和交流能力,对项目中出现各种问题的前瞻性
技术方面就不用说了,从coder干起一步一步积累起来的人,了解一下他的项目经验即可
0 请登录后投票
   发表时间:2009-06-13  
架构师连代码都不会写,还叫架构师吗,那么他的架构能力怎么样?
0 请登录后投票
   发表时间:2009-06-13  
3years 写道
topgun 写道

前提是明确架构师的定义

其实我认为好多人对架构师和架构都是很模糊的

 

 正好前一阵根据别人的经验总结了一下:

架构是什么?一般有4中定义

  1. 组件+交互+约束(以系统为核心)  这种要是做得不好,就可能出现那种忽悠型的PPT 架构师
  2. 有层次的决策(以架构师为核心)  这种要是做好了,也是是不错的,指的就是那些只会“说不”的牛人
  3. 一类系统中恒定的经验   这种在行业性很强的领域很有用
  4. 代码与模式  个人认为这种是最靠谱的,也是敏捷开发推荐的架构表达

回到主题,我的观点是架构师不是会不会的问题,而是一定要写代码,用代码的表示架构

但是代码和代码是有区别的,架构师的代码,应该是系统的骨架、接口、和模式定义,甚至是伪代码(最好还是能通过编译),所以架构设计,就是一个骨架系统的设计

 

但是如果你在面试中,不是考察架构师对系统设计级的代码,或是是一些解决问题的设计模式的代码。而是一些基础的对框架、对API 的使用,甚至一些奇技淫巧的所谓算法,估计大部分架构师的确不擅长,甚至没空理你了

 

 

“奇技淫巧的所谓算法”,这个最反对,碰到过,电话面试还要说算法,有空哦?

 

 

 

 

 

 

架构师凭什么就可以忽略算法???

 

架构师就是对软件领域的几乎各个方面都需要深入了解,算法不过关还好意思自称架构师?

 

不要侮辱这个字眼了。。。

0 请登录后投票
   发表时间:2009-06-14  
最近在看代码大全。
书中喜欢拿开发跟建筑类比。
lz的问题就变成:贝律铭要不要会砌砖?会不会很高效的砌砖?

书中还讲到开发的几个阶段:需求->架构->设计->实现(代码)。
面对需求,架构师要的是很高级别的决策:硬件,os,db,b/s or c/s,programming language,seam or spring,
详细设计,模块设计,应该不是架构师的事情。
0 请登录后投票
   发表时间:2009-06-14  
hatedance 写道
最近在看代码大全。
书中喜欢拿开发跟建筑类比。
lz的问题就变成:贝律铭要不要会砌砖?会不会很高效的砌砖?

根本不一样的,建筑师可以直接培养,而不需要从砌砖这种底层开始做起。

如果一定要类比,程序员相当于建筑领域的最底层的设计人员,砌砖是机器做的事情,程序员设计机器如何砌砖。

就是因为有很多人想当然地认为,软件工程可以完全类比成建筑工程或者其他制造业工程,想套用很多其他成熟工程领域的概念和方法应用到软件上,这都是有问题的。
3 请登录后投票
   发表时间:2009-09-18  
我不知道有多少人能够说去架构的范畴,我是比较迷糊,架构架构,架,我理解为架子,说到房子的架子大家都明白。那软件的架子呢。构,我认为是构建的意思,你架完了怎么的也要建出来。架呢,可能可以各个行业,各个领域通用,但是说到构,还是需要一些专业知识。我觉得架构师还是需要一定的编码经验的。要吃饭去了,回来接着说。
0 请登录后投票
   发表时间:2009-09-18  
吃完饭后酒足饭饱,啥都忘了。不过构建是门学问,也有很多障碍,有很多本质的危险性。国内的架构师,我觉得很多是赶鸭子上架,不一定在构建上有很多经验。这时候他还是继续练点编码比较好。另外架构师编码我觉得可以起到带领团队的作用,架构师的代码要能够给人们一种高山仰止的感觉,这能够很好的带动团队的发展。
0 请登录后投票
   发表时间:2009-09-18  
以前公司构架师做了13年还之能做sprint的构架师,module级别跟system级别的构架师一般都是国外15年以上经验的人担任,觉得跟能不能写代码没关系,毕竟只是细节实现上的事情,这个不应该是构架师关心的,构架师更关心的是整个项目的灵活性,可扩展性,可维护性,如何降低开发成本,维护成本,潜在风险的分析,技术分析。对整个技术框架的把控,只要只能通过什么技术能解决问题就OK了,如果连用什么技术来解决问题都不知道也没资格谈构架...
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics