`
skzr.org
  • 浏览: 362656 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

[转载]架构师的封装抽象癖好

阅读更多

原文出处 作者:javamonkey

 

文章转载,深有感触,所以收录了,非常的棒,讨论也很深入

 

javamonkey 2010-06-07
跟有的架构师打交道时间长了,发现有的架构师特别爱拿别人的东西封装抽象一下,甚至每个项目的方方面面都言必封装抽象。举个极端例子来说。都知道Java对象都继承于java.lang.Object,有的的架构师,通常写一个MyObject(继承Object),然后要求开发人员的类都继承此类。 

   封装抽象癖好带来过度设计,从而引发学习难,开发难,调试难,运行慢,以及更难扩展和适应变化。这些癖好原因我可以归纳为架构师的几个如下问题。 
   1 妄图解决扩展性问题。 由于需求不清楚,或者架构师对需求不完全理解,他需要通过抽象或者封装来适应将来的变化。然而,就我个人经验来说,即使不抽象和封装,一定限度的需求变化也能用别的办法来解决,如改代码,使用重构工具。 
   2 妄图解决重用。架构师当然想着自己的产品能用好多年并且也能用到别的项目上去,然后事实常不是这样。为了将来所谓的能重用,带了成本和风险都很大的。我同事曾向他的项目经理诉苦:“这样的重用10后都不一定用不到,现在按照这个方式开发太麻烦了” 

  如果前面俩个还是架构师的好的一面,那下面俩点就是架构师的阴暗面了 
   3 由于自己对所用技术和产品不熟习,因此让人封装成自己理解的模型,或者API。譬如架构师对Portlet规范不熟悉,自己只知道Servlet,因此要求开发人员对Portlet进行封装。再比如,架构师对Flex不熟习,因此要人实现某某Flex框架,妄图让开发着不会 Flex情况下也能开发Flex代码(这可能么!!!)。 
  4 为了显示自己有水平,项目所有的技术都是由他提供的,架构师把所有用的技术都包一个皮,所谓的MyObject,MySpring,MySchedule等等,声称是自己写的。不明就里的开发人员因此对他很崇拜,公司领导也认为此架构师水平了得。这样的架构师我是最痛恨的。因为他已经远离了技术,走向了“政治”,带来的还是学习难,开发难,调式难,运行慢。 
 
   其实任何技术和架构,如果架构师都能把握本质,熟练应用,也不会像这样的架构师言必谈封装和抽象。就像倚天屠龙记里 张三丰问张无忌还记得刚才学的招式么,张无忌说我不记得了。 

javamonkey
 2010-06-09
想起一个同事设计的框架,打算采用分层设计,直接能做的事情绕了好几个弯子,后来我看懂他的设计就乐了原来 A--> B 就齐活的的事情,变成了A->C->D->A=>B。
凤舞凰扬 2010-06-10
     呵呵,形容得好。不过javamonkey 碰到的一个关键问题是,架构师闭门造车,然后在造出来后要求所有人跟从,却不予解释。
     这种事情的出现不仅仅在架构师身上,在很多设计师,高级程序员上都会出现。
     优秀的架构师应该是设计解决方案。其实不管架构师做出来什么东西,封装也好不封装也好,他必须解答6个W:
为什么要这么做(Why):
架构师要解释这样做的目的和相关的背景条件。
做出来的东西包含了什么(What):方案中包括些什么东西,解决了什么问题?
谁会从中获得好处(Who): 架构选择这种做法,谁能得到益处?开发人员、客户还是公司?
设计的思路是怎么样的(How):整个设计的思路及过程是怎样的。
是否还有更好的选择或者做法(Whether):是否有比现在更好的解决方案?是不是做过其他方案的分析比较?
它的设计时效是什么(When):它是一个长期解决方案还是临时的?

     如果一个架构师在设计完,并能向自己的同事很好地解释和回答以上问题,我相信封装也好,简单使用也好,都会得到尊重和认可的,各位同意么?
sys53 2010-06-12
从你说描述的4点来看,没有一个是符合架构师的标准? 

也就是你说的人的本就是“伪架构师” 

1,好的架构师都是聚合优先继承,不是动不动就继承; 
2,尽可能的开闭原则还是合理的,好的架构师会综合考虑现实成本,需要权衡,推敲;同步讲究不断重构; 
3,连需要用到的技术都不知道,如果架构,纯属扯蛋; 
4,喜欢用My或者自己名字命名类的,特别是抽象公共组件的;很可能是刚入门,或者是做测试代码。一般来说(不是绝对),达到架构师的人,所定义的抽象类应该见名如见义(对象,模块,组件的责职),所定义的名称也是抽象的; 

根据你的四点,一一对比,证明,你说的不是架构师,或者只是冠以“架构师”之名而已.

faye.feelcool
 2010-09-06
   架构师,个人认为首先应该是开放的,如果这点做不到。起码不算真正的架构师。因为架构师首先是一个工程师,而不是科学家。工程师,是做什么的?将知识用于实践工作的人,而不是去执迷于发明一些新的理论。
   架构师,为什么要架构师? ->成本!如果没有时间开发维护的压力,有那么迫切要个架构师吗?!我们可以花个几百年去得到一个金品系统。
   所以衡量一个好的架构师的标准,就是你用多少现成的东西(低成本),去帮助团队更快更好的完成项目。
   封装一般的情况,只会出现在扩展的地方,比如系统要支持多种通讯方式,而公司由于成本考虑不会去选购一些现成的组件,这是为了应变可能需要封装。
   封装和抽象是高级开发人员的基本功,架构师何苦要凑那个热闹呢,职责不在那呀,你要考虑的是低成本高产出!快交付、好质量。

 

分享到:
评论

相关推荐

    天翼云认证解决方案架构师

    天翼云认证解决方案架构师题库知识点,帮你直接通过天翼云解决方案架构师认证考试。天翼云认证解决方案架构师题库知识点,帮你直接通过天翼云解决方案架构师认证考试。天翼云认证解决方案架构师题库知识点,帮你直接...

    架构师的自我修养pdf

    架构师的核心职责是全面理解业务需求,基于模型和基础模式进行抽象和简化。他们需要提出恰当且可行的整体解决方案,同时在有限的资源范围内完成明确目标,确保系统质量,并满足业务需求。此外,架构师还需保证系统的...

    架构师成长之路,架构师成长指南

    《架构师成长之路》这本书是为那些志在成为优秀架构师的IT专业人士量身打造的指南。它深入探讨了架构师的角色、职责以及如何在职业生涯中逐步提升自己的技能和视野,以适应快速变化的IT环境。 一、架构师的角色与...

    测试架构师修炼之道:从测试工程师到测试架构师1

    【测试架构师修炼之道:从测试工程师到测试架构师1】这本书主要探讨了软件测试工程师如何进行职业规划,以及如何成长为一名优秀的测试架构师。书中通过两个面试故事引入了核心议题,即测试的核心并不仅限于业务知识...

    软件架构师教程,系统架构师讲义

    《软件架构师教程》是一本全面且深入的指南,旨在帮助读者掌握软件架构设计的核心概念、原则和实践。作为系统架构师考试的重要参考资料,这本书涵盖了高级软件架构师所需的知识点,同时也是系统分析师提升专业能力的...

    系统架构师学习笔记

    系统架构师的学习笔记,通常是资深架构师或者对架构有深入研究的专业人士根据个人经验和学习总结所撰写的学习资料,它可以帮助开发工程师向系统架构师的职业发展道路上迈进。 从提供的内容来看,系统架构师的学习...

    系统架构师复习笔记

    1. 抽象层次的概念:架构师需要了解抽象层次的概念和应用,包括如何将解决方案分解到抽象层次上,以及如何应用抽象层次来处理复杂性。 2. 系统设计:架构师需要了解系统设计的基本原则和方法,包括如何将系统分解到...

    做人做事做架构师

    - **抽象思维与模型化表达**:架构师需要能够将复杂的系统抽象成易于理解和操作的模型。这不仅要求强大的逻辑思维能力,还需要能够将抽象概念转化为具体的实施方案,通过图形、文档等形式清晰表达。 - **设计与...

    java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程

    java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级架构师教程,java 高级...

    云计算架构师培训1

    云计算架构师培训主要围绕着云计算的基础概念、技术特性、历史发展以及应用趋势展开。在此次培训中,学员将深入理解云计算与虚拟化技术,掌握云计算架构的设计与部署,以及了解云计算的典型应用场景。 首先,云计算...

    系统架构师教程.pdf

    系统架构师需要掌握一系列的技术和理论知识,这些内容在“系统架构师教程.pdf”中得到了系统的介绍和阐述。 首先,系统架构师需具备扎实的计算机网络基础。计算机网络是现代信息系统不可或缺的组成部分,架构师应...

    完整版—架构师之路(58沈剑).rar

    《完整版—架构师之路(58沈剑)》是一份深入探讨软件架构设计与实践的宝贵资料,共计322页,由业界知名专家沈剑编著。这本书旨在为那些希望成为优秀架构师或者正在从事架构工作的专业人士提供一套全面的知识体系和...

    云原生Kubernetes全栈架构师实战.docx

    云原生Kubernetes全栈架构师实战 云原生Kubernetes全栈架构师实战是指通过Kubernetes构建高效、可扩展的云原生应用,并成为全栈架构师。为了达到这个目标,需要了解Kubernetes的核心概念、安装和配置、核心组件等。...

    历年高级系统架构师真题

    系统架构师是一个在IT行业中至关重要的角色,他们负责设计、规划和实施复杂的计算机系统,以满足业务需求。历年高级系统架构师真题是备考这一专业资格考试的重要参考资料,涵盖了从2009年至2017年的历年试题,旨在...

    测试架构师应具有的能力

    具备强大抽象力的测试架构师可以设计出适用于多种场景的测试框架,促进知识和经验的跨项目共享,从而提升整个测试团队的效率和创新能力。反之,如果抽象力不足,测试方案可能过于特定化,难以适应未来变化或应用于更...

    架构师的秘密

    《架构师的秘密:掌握抽象层次的力量》 在IT领域,架构师的角色至关重要,他们负责设计和构建复杂的系统,确保它们不仅能满足当前需求,还能适应未来的变更。架构师之所以能够胜任这一角色,很大程度上得益于他们在...

    架构师第四阶段 架构师之路 百度网盘

    架构师第四阶段 架构师之路 百度网盘 需要的拿去......

Global site tag (gtag.js) - Google Analytics