作者:江南白衣
引子:
"这个项目的架构是什么?"
对方爽快的回答:"Spring+Struts+Hibernate。"
嗯,这位很可能不是架构师......
一、核心竞争力
架构设计的原理、模式与技术
未经培训的架构师们从试验与挫折中获得架构设计的技能,但其中大量的原理、知识、模式和技巧,都经历了一个重复发现
的过程。
其实,各路神仙在这个领域虽则没有捣鼓出大热的畅销书来,但前篇的架构师书单,也足够为我们作一个系统的知识整理。
悲哀的发现,自己的再发现式积累还是太慢、太片面,大多局限于GOF23、Java EE架构模式、RUP 等方面。
满足架构质量属性所需的软硬件知识
如何满足性能,伸缩性,扩展性、可靠性,容灾,可恢复性,可管理性这些架构质量属性,是架构师的饭碗级知识。
有序的以方法为驱动源的任务执行
匠级的架构师多有一套自己的方法论、过程论,每回设计都是熟练而有序的执行。
架构师在软件开发中的过程,以RUP为基础的剪裁
被描述得最为详细,可执行度最高的。
而核心的架构过程,直觉与模式,有序与混沌的平衡,就只有反复试验,独家秘制。
领域知识与业务分析能力
技术人员一般抗拒学习软件开发以外的东西,但架构师却非如此不可。
BTW.G9写过一篇很有意思的〈商业软件编程很无聊?〉
大型项目的经验
中国有多少架构师,不在于有多少人通过了什么考试培训,而在于中国大型项目的数量。
问:你这个项目的架构是什么?一口回答:Spring+Struts+Hibernate。这位很可能就不是架构师了,因为这仅仅是技术Stack,项目规模不大时Spring+Struts+Hibernate才会成为架构的重点。
除了亲自担任这些项目的架构师,如果明了别人架构设计与决策的思路也是一样能拿经验。所以,尽量多读一下公司项目的设计文档,也愉快的接受其他项目组架构评审会的邀请。
二、基本能力
完整的软件开发生命周期经验
这个不用说了,幸好中国的架构师什么脏活累活都做过,甚至跟着市场人员跑去做演示这些国外架构师不一定有的经验我们都有了,差别只在于基本开发生命周期理论--RUP 、CMMI3、 敏捷原则的细节掌握。
精通一两种主流开发语言、保持当下架构的开发体验
国内的架构师到了三十岁以后很多就往理论上跑,而国外的架构师在往上发展的同时保持下面的编程体验,所以国内多水王,而国外则多大师。水王的设计多与实现有很大断层。而且人过三十学习能力下降,手艺放下了就别想捡起来了:(
但是,保持一个体验就好了,也不必要苦行僧似的要求自己每日编码若干行,很可能因为你的时间安排不来反而拖了大家的进度。
宏观了解当前的技术与产品,追逐最新的技术潮流
架构师的知识结构必须是亘古真理+最新技术的结合,盲目追逐最in技术的不是架构师,但倚老卖老,张口就说你们年轻人就知道追逐新技术的同样也讨人嫌。
架构师对各大公司的完整产品线和著名的开源项目应该都有个宏观上的了解。
但也要抵制成为某项技术专家,如Oracle启动参数优化专家的诱惑,技术细节掌握到业务职责需要的程度就刚好了。除非如Spring Framework进一步了解能有天大好处。
与业务域开发域人员沟通的能力、决策能力和权威和其他的领导能力
IT 架构师处在客户和开发人员之间,必须能够使用各种媒体(代码、模型、文档、PowerPoint以及谈话和讲座),与技术和非技术的干系人进行沟通。
另外,架构师必须注意培养自己的技术决策能力和决策权威。
最后,架构师好歹也是个半大不小的官,其他领导必要的能力就不列了。
参考了IBM DW中国上的两篇文章:
三、镜子做好了,自己先照一下
- 要把书单啃完;
- 要熟悉电信的业务知识;
- 要重点学习满足架构质量属性的软硬件知识;
- 要把公司几百个项目的设计文档挑好的看一遍;
- 要跟随公司最新一波RUP+CMMI3行情;
- 要重修C++;
- 要完整了解一遍IBM、BEA们的产品线。
分享到:
相关推荐
本文将为你推荐一系列适合Java程序员到架构师进阶的自学书籍,旨在帮助你提升专业技能,逐步成长为一名出色的Java架构师。 首先,对于初学者,选择合适的入门书籍至关重要。《Java编程思想》是一本经典的Java教程,...
"web工程师养成"这一主题涵盖了从初学者到资深架构师的成长过程,旨在帮助有志于在Web领域发展的技术人员建立扎实的基础,逐步提升自己的技能和视野。本篇文章将深入探讨Web工程师的成长路径、所需技能以及如何通过...
2. **Think In Java.chm**:这是经典的《深入思考Java》电子版,作者Bruce Eckel深入浅出地讲解了Java语言的核心概念,包括面向对象编程、集合框架、多线程、异常处理等内容,是Java初学者必读的书籍之一。...
* Testing工程师、测试负责人、业务专家、项目经理、测试领域专家、测试架构师、测试开发工程师等职业发展路径 六、职业发展方法 * Sustainable pace:有限目标,循序渐进 * On Job Training:带着思考去工作,...
另外,"Agile Java"中文版虽然被作者定位为入门书籍,但其以单元测试和TDD(测试驱动开发)为核心的教学方式,可以帮助读者在学习Java基础知识的同时,养成敏捷开发和高质量编码的习惯。 【Java编程进阶】: 在掌握...
以下是一份根据学习进度推荐的书籍列表,旨在帮助初学者逐步提升编程能力直至成为专业架构师。 1. **Java编程入门** - **《Java编程思想》**:对于初学者而言,此书能够深入浅出地解释Java的基本概念和面向对象...
综上所述,校企合作开发工学结合核心课程标准是一个系统工程,需要教育与产业界紧密合作,共同设计课程内容、共同制订课程目标、共同实施教学活动,最终实现培养既有理论知识又有实践能力的技术技能型人才。
2. **《Expert One-on-One J2EE Development without EJB》**:由gigix组织翻译,这本书探讨了不依赖EJB的J2EE开发,对于想要成为Java架构师的人来说,是必读的参考书。 3. **《企业应用架构模式》**:Martin ...
而架构师则需设计容错能力强的架构,以应对可能出现的问题。 4. **数据安全与零丢失**:尽管领导和厂商可能会追求数据零丢失,但DBA和架构师需要平衡成本和收益。大多数系统可以通过数据备份和恢复策略来处理数据...
9. 业务沉淀与专家养成:通过中台战略,企业可以沉淀业务知识,培养专家,提高整体运营效率,就像我们在学习过程中不断积累知识点,形成解决问题的能力。 中台战略的本质是将共性的服务和能力抽象出来,为前端的...
3. **提升管理能力**:通过职业素质培训、管理类培训等方式,提升各级管理人员的职业素养、管理意识和管理技能,搭建公司的人才梯队,逐步培养公司急需的各层级管理人才。 4. **建立学习型组织**:利用两年的时间,...
总的来说,《网页设计与制作》课程是一门注重实践操作和技术应用的课程,旨在通过系统学习和实践,培养出具有专业技能和创新能力的网页设计师。学生不仅需要掌握网页设计的基本技术,还要养成良好的学习习惯和职业...
标题与描述概述的知识点主要围绕着程序员应具备的素质和能力展开,强调了作为一个真正的程序员,不仅需要掌握编程技能,更重要的是要有团队精神、协作能力、文档习惯、规范化的编码风格、需求理解能力、模块化思维...
8. 总结与创新:养成总结工作经验的习惯,将成功的解决方案整理成个人源码库,逐渐构建自己的系统架构或框架,以便重复利用和改进。 以上经验不仅适用于软件开发新人,也对有经验的开发者有启发作用,通过不断学习...
游戏可能包含了数码宝贝的收集、养成、进化等核心玩法,以及团队战斗、竞技场等多种在线互动元素。 服务端源码的获取意味着玩家或开发者有机会搭建自己的私人服务器,实现单机或局域网内的游戏体验。不过,值得注意...
因此,优秀的硬件工程师实际上扮演着项目经理的角色,需要从外部交流中获取对自己设计的需求,并具备良好的团队协作能力、透明的项目沟通机制、精细的研发计划及充足的物料和人力资源支持。只有这样,才能确保项目的...
在VB毕业设计中,通常会涉及以下几个核心知识点: 1. **VB基本语法与控件**:VB使用可视化界面设计工具,通过拖放控件(如按钮、文本框、列表框等)并编写事件处理代码来构建程序。理解VB的基本语法,如变量声明、...
最后,商超龙头公司,如永辉超市、家家悦等,这些公司受益于必选消费需求的稳定性,并且能通过强大的经营能力在行业集中度提升的过程中获得优势。 报告还对行业数据进行了综述,包括2020年1月行业指数与沪深300指数...
在当今社会,随着科技的快速发展,健康管理已经不再局限于健身房和营养师的建议,而是越来越多地融入到我们的日常生活中。"健康生活"是一款专为Android平台设计的应用程式,它利用Java语言进行开发,旨在帮助用户...