架构师、设计师、程序员大家的差异到底在哪?

架构师、设计师、程序员
大家的差异到底在哪?
         今天在作架构咨询服务包的时候,内心真是有不少感慨,看着这些须要细化的内容,看着每步步的流程,让我想起了一个不太愿意也不得不想的问题。架构师、设计师、程序员大家到底有什么不一样?
         不少朋友都知道,咱们刚刚大学毕业时候都去XX公司应聘程序员工做。这个时候咱们作什么呢?开发代码呗。对,但你们有考虑的一件事情吗?就是咱们开发的代码质量如何?美观吗?整齐吗?易于修改吗?好维护吗?还有一个面向对象开发来讲重要的一点,咱们写出来的代码OO(面向对象)吗?
         对于上面的一大堆问题,咱们扪心自问一下,咱们的代码如何?反正我刚入职的那会可谓——垃圾代码呀,难看死了,很差修改,很差维护,不对称不美观不平衡,并且不面向对象,说实在的就是用对象语言在写过程代码,就想大学里面写C语言同样。其实这个比较好意识到,由于当你写的代码变成产品的时候,问题就暴露出来了。我相信每一个程序员都经历过熬夜修改错误,郁闷,头大的难熬夏夜吧(别说没有,我不信)。其实如今不少公司,尤为是小公司,开发人员就是这样的,程序员通常都是有毅力、有耐心,一说开发,熬呀熬呀,也很累。可是需求变动了,再熬呀熬呀,代码修改,再修改。那么咱们就应该反思一下缘由为何(反正我是反思了,不知道你们如何作的)?这个时候,从新学习面向对象,看模式设计,再根据当时间安排对之前开发过的代码进行代码重构。别小看重构,这但是一项很高深的技术哦,也有相关的书籍,我强烈建议你们看看,我以为学习重构技术和学习模式设计一样重要。我当时下在重构上面的功夫可不比研究模式设计少。好了,经过上面的阶段,我相信你们的代码应该和毕业时候比有了一个质的飞跃了吧。程序员作开发最好的状况是,有UML图,有相关接口设计的条件,进行代码实现的开发。固然UML图和相关接口设计本就应该是设计师的事情,公司都喜欢一个当十个用,因此这点无语嘛。到这里咱们总结出程序员的工做了,开发,看得懂相关设计图,技术过硬。
         如今咱们要向上爬一个层次了,去作设计师,怎么作呢?前面咱们说了在开发的时候最好的前置条件是有UML图,有相关接口设计,这些从哪里来呢?对,这些是设计师写的。在整个RUP阶段,分析和设计在第三个阶段(详细步骤朋友们能够去看看Rational统一过程),设计包含两种,架构设计和系统设计。这段咱们先说系统设计,在系统设计阶段,设计师们应该拿到,架构设计文档,业务需求,相关的领域模型等。这里设计师们就不能向程序员同样光想开发了,这里第一位的是需求(这里不光是软件功能上的需求,还有环境需求,硬件需求,技术需求等内容),怎么样在架构中进行系统设计可以知足需求,有了编程的经验,设计师们可以提早预测开发的痛点,技术的难点和一些建议的解决方案。咱们手里还有前辈们总结好的精华——设计模式,结合一系列需求进行设计。
        设计师可就比开发须要考虑的方面也不少,视角、关注点都会有变化。再向上就是另外一个高度了,架构师。这个就难了,通常架构师都是软件架构的大拿,或者是某一行业领域的专家,从事某行业领域不少年的大哥级人物了(我说的时候真正的好的架构师,干两年编程就跑出来讲我是架构的那种不算在内)。架构师能够说是站在总体企业,甚至是行业内,看待软件的,他们的着眼点更高了,在业务建模和总体软件架构上进行设计。朋友们能够学习一下EA,里面包含的四个部分的架构,哪同样都是要下功夫的。
         咱们看到了,从程序员到设计师,再到架构师,他们虽然都是在开发软件,可是从内容、视角、观察的高度是不同的。但愿朋友们根据本身定位的目标,进行学习和锻炼,从而实现你们的目标哦。
相关文章
相关标签/搜索