`
Gi_gi
  • 浏览: 8909 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

从程序员到架构师转变【转】

 
阅读更多
微软的DotNet开发绝对是属于那种入门容易提高难的技术。而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的。特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此 RUP{Rational Unified Process,强调软件开发是一个叠代模型Interative Model),RUP定义了四个阶段(Phase):开端(Inception),阐述(Elaboration),建造(Construction),过渡(Transition)}方法论也认同以架构为核心,体现4+1视图在整个软件开发过程中的重要作用。架构人员既要精通技术,又要熟悉业务,而且基本对软件生命周期各阶段的相关技术都需要有相关的积累和知识储备,而这些不经过多年的磨练是很难达到这个高度的。
    
      要成为一个合格的架构师首先必须是一个合格或优秀的编码人员,对于开发来讲编码始终都是最重要的一项技能,在编码过程中只要自己善于去思考和分析问题,就可以多学到很多相关的知识和技术。所以我们在开发过程中一定要注意新知识和新技术的学习,前人经验和成果的学习。编码过程中应该去思考的一些问题有:
    
      1.在编码过程中自己是否做单元测试,是否使用相关工具做单元测试,如果没有的话是什么原因无法把单元测试做起来?
      2.自己编码的泄露率情况,编码泄露的BUG的原因分析
      3.是否有意识的对代码进行重构,重构过程中是否引入了相关设计模式的思想?
      4.是否对C#语言的一些高级特性进行学习,如反射调用,异步处理等。
      5.是否对Remoting和WebService两种分布式技术做过研究和对比分析?
      6.是否经常研究开源项目和开源代码,如Duwamish,PetShop,NUnit,Enterprise Library,Nant等
      7.是否对对象持久化机制和O/R Mapping等相关技术做过相关的研究
      8.平时在编码过程中是否注重公用组件和公用类的复用和抽取
      9.自己在平时工作和学习中是否经常开发些小工具提高工作效率,巩固学习知识
    
      设计和编码其实是密切而不可分的,对于严格将设计和编码分开的瀑布模型一般也仅仅在大型项目中应用。而及时编码和设计分离,也不是将编码人员不需要思考,编码活动始终是一项创造性的劳动,如果否定这个观点那就代表编码过程完全不需要人员介入而可以完全自动化。因此在这里谈设计主要还是指设计人员的系统化思维能力,设计人员应该比开发人员站高一个层次来分析和思考问题。设计人员最重要的一个技能就是现实- >抽象的转换,而这个就需要谈到方法论的问题了,技术人员需要积累面对对象分析和设计或结构化分析知识的积累,需要有较强的数据库分析和设计能力。一个设计能否成为很好的架构师关键就在这种积累的深度和广度上面了。
    
      因此在设计过程中应该考虑的问题有:
      1.你现在分析和设计能力能否胜任大中型的应用系统还是只是独立功能分析和设计?
      2.设计过程中是否有意识的考虑到组件的复用和相关接口设计准则。是否能够很自然的将分析模式,设计模式的相关内容应用到自己的设计过程中。
      3.是否对XP,RUP,面向对象,结构化等方法论都有过较系统化的学习和思考。
      4.是否真正理解系统功能需求和非功能需求对系统设计的不同的指导作用。
      5.对自己设计的功能是否会根据后期的变更来反思自己的设计为何不能很好的适应变更?
      6.是否在设计过程中经常自己开发些原型来对自己的设计思路进行验证?
      7.是否专注技术的同时开始专业业务流程的分析,关注业务建模?
    
      如果我们在设计和开发过程中经常关注这些知识和技能的话,成为一个合格的架构师是早晚的事情。平时能够胜任工作开发用到的知识和技能是微不足道的,如果自己不是有意识的去学习这些知识的话,那技能是很难得到进一步提高的。我参加过两次微软的架构师培训,在北京的微软架构峰会上也有机会专门参加了P&P Workshop的学习,培训老师是微软总部SmartClient Architecture and Design Guide一书的作者Edward A.Jezieski,让我感受最深是老外深刻的技术底蕴,对程序开发的执著。
    
      对于DotNet架构经常用到的知识和技能储备有
      1.RUP方法论,4+1视图。用例驱动业务建模- >分析模型- >设计模型
      2.用例模式- >分析模式- >设计模式
      3.常用的分布式技术
      4.对安全,异常,日志,性能等非功能性需求的关注
      5.对应用系统整体业务的关注

原文:http://www.cnblogs.com/cxd4321/archive/2009/01/09/1372875.html
分享到:
评论

相关推荐

    java程序员到架构师之路

    Java程序员到架构师之路是一个循序渐进的学习过程,涵盖了从基础编程技能到高级系统设计与管理的广泛领域。在这一转变过程中,开发者需要不断提升自己的技术深度和广度,掌握更多的软技能,以及对业务的理解。以下是...

    Android从程序员到架构师之路_讲义_ppt.zip

    通过上述内容的学习和实践,开发者不仅能提升个人技术水平,也能更好地适应团队协作,设计出高性能、易维护的Android应用,最终实现从程序员到架构师的转变。在不断迭代的Android生态系统中,保持学习和探索的精神,...

    IT程序员如何成为架构师共1页.pdf.zip

    从程序员到架构师的转变,是许多IT从业者职业生涯的重要阶段。这个过程涉及多个关键知识点,包括但不限于技术能力提升、业务理解、团队协作与沟通技巧。 首先,技术能力是成为架构师的基础。这不仅意味着精通至少一...

    软件架构设计.zip

    5. **转型策略**:提供从程序员到架构师的职业规划建议,包括学习路径、项目经验积累和软技能提升。 6. **最佳实践**:分享业界的最佳实践,如持续集成、敏捷开发和DevOps在架构设计中的应用。 这两个资源对于任何...

    Java自学书籍推荐 程序员到架构师必看的书

    通过阅读这些书籍,结合实践,你将能够不断提升自己的编程技能,最终实现从Java程序员到架构师的华丽转变。在学习过程中,要注重理解和实践相结合,不断反思和总结,这样才能更好地吸收知识,成为真正的技术专家。

    架构师之路

    总的来说,架构师之路需要程序员逐步从关注任务完成转向关注代码质量,从面向过程的思维方式转变为面向对象的思维方式,并通过学习设计模式和重构来提升设计能力。同时,跟进行业动态,不断积累和实践,才能在技术...

    J2EE架构师手册

    总的来说,《J2EE架构师手册》是一本全面的指南,涵盖了从基础到高级的J2EE技术,适合有一定Java基础并希望深入J2EE领域的开发者。通过阅读这本书,读者不仅可以提升自己的技术水平,还能培养出架构设计的思维,为...

    程序员怎么选择发展方向

    从高级程序员到专家的转变,则是一个更加漫长的过程,可能需要5-8年的时间。在这个阶段,除了继续学习之外,还需要不断地尝试新事物,勇于接受挑战。通过不断地尝试和坚持,才能找到最适合自己的发展道路。 #### ...

    InfoQ架构师杂志2015合集

    最后,架构师的角色在2015年也逐渐转变,他们不仅要负责技术设计,还需要具备业务理解和沟通能力。合集可能探讨了如何成为一个全面的架构师,包括软技能的培养,如何与团队和管理层有效协作,以及如何进行技术领导和...

    Design It! From Programmer to Software Architect(2017.10).A4.pdf

    书中强调了从程序员到软件架构师转变的过程中,需要掌握的大量知识和技能,不仅仅是技术上的提升,更重要的是在设计思维、团队合作和项目管理等方面的全方位发展。《Design It! 从程序员到软件架构师》是一本适合...

    java程序员职业规划范文.docx

    1. 技术路线:从初级程序员逐渐晋升为高级程序员,再到系统架构师和技术管理层,需要不断提高技术水平和领导能力。 2. 业务路线:通过深入了解行业业务,从程序员逐步成长为系统分析员、项目经理,甚至产品研发总监...

    java程序员职业生涯规划.pdf

    3. 转变领域:程序员需要根据自己的情况,决定自己做软件架构师还是高级的顾问销售。 4. 培训和交流:程序员需要进行职业培训和交流,提高自己的技术能力和职业发展。 职业生涯规划的建议 李巨锋建议程序员需要...

    架构师之路[文].pdf

    从程序员到架构师的转变,需要掌握这些面向对象的概念和原则,因为它们有助于构建大型、可维护的系统。作为架构师,不仅要编写代码,还要考虑系统设计、组件间的交互以及如何适应未来变化,因此理解并熟练运用面向...

    java程序员职业生涯规划(最新).docx

    在职业生涯规划方面,java 程序员可以选择多种职业发展方向,例如技术专家、软件架构师、实施顾问或销售。其中,技术专家是 java 程序员最重要的发展方向,因为无论是 Java 还是 .NET,还是数据库领域,都要首先成为...

    程序员职业小白书 —— 如何规划和经营你的职业.zip

    从初级程序员到高级工程师、架构师,每个角色都有其独特的职责和技能要求。了解这些,并有目的地在工作中提升自己的能力,将有助于你在职业生涯中更顺利地进行角色转变。 对于那些有志于创业或成为自由职业者的...

    从技术转型项目经理转型经历

    王晔倞的个人背景和经历,包括他在不同技术领域的工作经验以及从程序员到架构师再到管理者的角色转换,都充分展示了一个技术人员在转型道路上可能遇到的种种困难和挑战。 首先,王晔倞在技术领域的工作经验为他提供...

Global site tag (gtag.js) - Google Analytics