`
e-beetle
  • 浏览: 19338 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

功能与结构的关系

阅读更多

加入公司快一个半月了, 对这里的系统整体印象还是不错的: 首先”她”规模大, 应用多, 应用职责划分较明确, 应用间契约也比较清晰. 但是深入到各个应用的代码级就会发现很多的问题. 这些问题总结为一句话就是: 结构不太清晰. 我深知这个问题的产生是有很多原因的.

记得刚刚从师兄手里接管TBC开发的时候, TBC的结构很好. 但是由于当时对系统缺乏一个整体的把握, TBC在我手里经过两次较大变化后(由功能需求和性能需求驱动), 开始变得臃肿, 脆弱. 更可怕的是, 这种状况对我工作态度的影响----我开始惧怕变化. 这是我最不能容忍的! 于是我开始进行重构, 花了将近两天的时间让TBC具有合理的结构, 并且在以后的演进过程中, 保持其结构的合理性, 而不是保持其结构, 这点很重要. 这让我由惧怕变化转变为渴望变化. 因为每一次的变化都是对TBC适用性的一次提升, 对其结构的一次检验, 而且还有合理的结构所特有的----良好的可扩展性做支持, 使得做改变的体验很美妙.

总结起来, 结构不清晰的原因有三条:
1.    开发者对系统不了解, 时间紧.
比如我上面的例子. 可以使用重构的方式来弥补.
2.    开发者不具备一定的架构分析和设计的能力.
可以通过多种途径, 主动学习相关知识.
3.    开发者对结构不重视.
目前阶段公司业务发展过快, 用户量激增造成战略上更重视系统的功能及其性能, 而不是结构. 而且由于结构自身难以量化的特性, 也决定了管理层难以进行相应的考核, 进而无法推动开发者对结构方面给予足够的重视. 但是作为开发者如果对<<结构>>与<<功能, 性能>>之间的关系有深刻的体会, 这个问题就迎刃而解了.

<<结构>>与<<功能, 性能>>间的关系本质上讲, 就是形式和内容的辩证关系:
1.    内容决定形式, 有什么样的内容,就有什么样的形式.
软件有什么样的功能和性能, 就应该有什么样的结构, 可称其为合理的结构. 合理的结构不是只有一个, 是一个集合. 我们要做的是找到他们, 并且从中挑选出适合目前以及将来的系统演进的结构. 判断结构是否合理的原则很简单: 合理的结构一定是简单的, 朴素的. ----这是我的观点, 证明其正确性超出我能力范围. 简单性源于深入的分析, 清晰的思路以及丰富的经验. 正是这种简单性构成了软件结构的优雅.
2.    形式必须适合内容, 凡是适合内容的形式, 对内容的发展起积极的推动作用; 反之, 就起消极的阻碍作用.
很明显, 拥有合理结构的系统更容易被扩展, 被理解, 以及被改变----这个永恒的话题, 使其能够更快的响应功能和性能需求的变化. 合理的结构会让事情变得简单, 让开发者心情愉悦, 能够欣然的接受系统功能和性能变化的需求, 以达到”拥抱变化”的境界.

综上所诉, 作为开发者一定要时刻保持警惕, 当系统出现结构不合理时, 要在合适的时间及时的进行弥补. 同时要多多的学习结构设计方面的知识. 最重要是要知道”磨刀不费砍材功”, 要在思想上给予结构足够的重视.

分享到:
评论

相关推荐

    数据结构与程序的关系

    数据结构与程序之间有着紧密的关系,特别是在开发服务器程序时,数据结构的设计直接影响着程序的效率和功能实现。在定票/领票系统中,数据库的数据结构扮演着核心角色。数据库中的数据表是存储和管理信息的基本单位...

    数据结构课程设计-家族关系查询(源码 实验报告).rar

    总的来说,"数据结构课程设计-家族关系查询"项目是一个综合运用数据结构和算法解决实际问题的案例,它涵盖了数据结构的选择、算法设计与实现、问题解决策略等多个方面的知识。无论是对初学者还是有经验的程序员,...

    基于数据挖掘的产品功能与结构关联关系发现.pdf

    特别是利用关联规则算法从产品数据中挖掘出配置知识,并提出了如何利用功能参数集与广义模块关联度的概念与理论模型来发现功能与结构间的隐含关系。以下是从文档中提取的相关知识点。 ### 1. 关联规则算法与产品...

    关键词 数据模型 关系模式 物理结构 逻辑结构

    ### 数据模型与关系模式在成绩管理系统中的应用 #### 数据模型概述 数据模型是数据库系统的核心概念之一,它用于描述数据的结构、数据之间的联系以及数据的操作规则。在信息系统设计过程中,选择合适的数据模型对于...

    社会结构与教育结构演示稿(2014—127).ppt

    教育结构作为社会结构的一部分,与经济、政治、文化等其他社会结构紧密相关,共同影响着教育的功能、控制方式以及教育的目标和权威。本演示稿主要探讨了社会结构的一般概念以及它与教育结构的互动。 首先,社会的...

    蛋白质结构与功能的 关系.ppt

    【蛋白质结构与功能的关系】 蛋白质是生命活动的主要执行者,其功能与其三维结构密切相关。蛋白质的结构层次包括一级结构(氨基酸序列)、二级结构(α螺旋、β折叠等)、三级结构(整个多肽链的空间布局)以及四级...

    数据结构课程设计(家族关系查询系统).pdf

    数据结构课程设计中的家族关系查询系统是一个以树形结构为基础,用于模拟管理和查询家谱信息的应用。这个系统包含了几个核心模块,包括建立家族关系树、添加新成员、查询家族关系以及主程序模块。 1. 建立家族关系...

    java数据结构之家族亲属关系查询系统.doc

    - **家族树类**:作为整个家族关系的容器,可以包含多个节点,并提供查询功能。 #### 2. 关系计算逻辑 - **递归算法**:利用递归的方式计算两个成员之间的最短路径,从而得出他们的亲属关系。 - **关系表**:预先...

    蛋白质的功能及其与结构之间的关系PPT学习教案.pptx

    【蛋白质的功能及其与结构之间的关系】 蛋白质作为生命活动的基础,其功能多样且至关重要。在生物学领域,蛋白质被视为生物功能试剂,因为它们参与了细胞内的多种生化反应和生理过程。以下将详细介绍蛋白质的功能...

    数据结构大型实验--族谱关系查询系统

    总的来说,这个实验提供了一个很好的平台,让学生们将理论知识与实践结合,学习如何用数据结构解决实际问题,特别是处理复杂的关系网络。通过这个项目,学生不仅能提升编程技能,还能增强对数据结构和算法的理解。

    MFC 类结构关系图

    ### MFC类结构关系解析 #### 一、概述 MFC(Microsoft Foundation Classes)是微软提供的一个C++类库,主要用于简化Windows应用程序的开发过程。它封装了大量的Windows API函数,并提供了一套面向对象的编程接口。...

    SAP表结构,关于SAP各table之间的关系

    在SAP中,数据存储在表(Table)中,这些表按照功能和逻辑关系分为多个表集(Table Group)。 每个SAP表都有一个唯一的表键(Table Key),由一个或多个字段组成,用于唯一标识表中的记录。表字段(Table Fields)...

    产业结构与劳动结构关系的细分.docx

    产业结构与劳动结构是经济学中的重要概念,它们之间存在着密切的关系,影响着一个地区的经济发展和就业结构。本文将深入探讨这两个概念及其细分关系,主要以北京、上海、香港和东京为例进行对比分析。 首先,产业...

    蛋白质结构与功能的关系.ppt

    蛋白质结构与功能的关系.ppt

    八卦组合结构PPT关系图模板.rar

    八卦组合结构PPT关系图模板是一种创新且富有视觉吸引力的图表设计,主要用于展示复杂的数据、组织结构或逻辑关系。在IT行业中,此类图表能够帮助专业人士更直观地理解系统架构、项目流程或者团队间的协作关系。以下...

    核酸、氨基酸序列和蛋白质二级结构之间关系的探究

    类聚的统计不涉及残基的二级结构信息,而类聚与二级结构关系的统计则排除了二级结构不明确的残基。 研究结果显示,根据氨基酸残基在类聚中的出现概率,可以观察到类聚现象在蛋白质序列中的普遍性。进一步的研究还...

    C++数据结构与程序设计

    图结构关注的是节点与边的关系,适用于表示复杂网络,如社交网络、通信网络等。高级数据结构包括散列表、堆、并查集等,它们在解决特定问题时能够提供更高效的解决方案。 在算法方面,这本书应该会涵盖经典的算法...

    建筑设计与结构设计的关系.doc

    【建筑设计与结构设计的关系】 建筑设计和结构设计是建筑领域中不可或缺的两个核心组成部分,它们共同决定了建筑物的功能性、美学价值以及安全性。建筑设计主要关注建筑物的外观、空间布局、使用功能和艺术表现,而...

Global site tag (gtag.js) - Google Analytics