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

程序的过度设计

阅读更多

这几天看一下<重构与模式>,里面提到了过度设计的问题,很多人在学习了模式之后,患上了模式痴迷症,想方设法在程序中使用模式(我就犯过这个错误),结果导致简单的问题复杂化,自己浪费了很多时间 写出来的却是一些意义不大的代码。

回到我们的j2ee中来,大把的模式被用在各层之间,各种个样的继承 接口,刻意的追求模式,我们的程序真的需要那些模式吗?我看未必。

那么到底应该怎么应用模式呢?《重构与模式》给出了很好的答案:从重构到模式,当然要重构就离不开TDD。

书里的大概思想是

1.快速的写完你要做的事情,然后测试

2.然后应用合适的重构方法去重构代码,中间就可能演化出所需的模式。(本书主要是介绍那些重构能够演化成模式)

分享到:
评论
1 楼 adamzhao 2007-01-11  
xly_971223 写道
<p>这几天看一下<重构与模式>,里面提到了过度设计的问题,很多人在学习了模式之后,患上了模式痴迷症,想方设法在程序中使用模式(我就犯过这个错误),结果导致简单的问题复杂化,自己浪费了很多时间 写出来的却是一些意义不大的代码。</p>
<p>回到我们的j2ee中来,大把的模式被用在各层之间,各种个样的继承 接口,刻意的追求模式,我们的程序真的需要那些模式吗?我看未必。</p>
<p>那么到底应该怎么应用模式呢?《重构与模式》给出了很好的答案:从重构到模式,当然要重构就离不开TDD。</p>
<p>书里的大概思想是</p>
<p>1.快速的写完你要做的事情,然后测试</p>
<p>2.然后应用合适的重构方法去重构代码,中间就可能演化出所需的模式。(本书主要是介绍那些重构能够演化成模式)</p>


呵呵,你确认这次没有患上“痴迷症”吗?

相关推荐

    计算机程序设计发展史.docx

    FORTRAN语言是第一个完全脱离机器硬件的高级语言,使得程序设计语言不再过度的依赖某种特定的机器或者语言环境。Pascal语言是一个标志着结构化程序设计时期开始的语言,拥有严格的结构化形式、丰富且完备的数据类型...

    algorithms:用C ++过度设计一些随机算法

    《C++实现中的算法过度设计:深度探讨与实践》 在计算机科学中,算法是解决问题的核心,而C++作为一门强大的编程语言,以其高效、灵活和面向对象的特性深受程序员喜爱。本文将深入探讨如何使用C++来过度设计一些...

    软件测试中的过度设计

    在软件测试工作中,也存在类似“过度设计”的问题,特别是大中型的软件企业,人数比较多,各方面工作流程趋于稳定和规范,问题更容易发生。  出现“过度测试”的原因非常简单:忽视了软件测试工作的终极目标与核心...

    微信小程序UI设计素材库(必备).zip

    8. **交互设计**:理解用户的行为模式,设计符合直觉的交互流程,减少用户的操作步骤,提高使用效率。 9. **用户体验(UX)**:除了视觉美观,还需关注用户的感受,如加载速度、反馈机制、错误处理等,好的UX能让...

    自动更新程序的设计框架.pdf

    - **错误处理**:即使存在一些小错误,只要不影响主要业务运行,大多数用户可以接受,因此此设计没有过度复杂化错误恢复机制。 7. **设计理念**: 设计者强调的是实用主义,不追求完美,但满足实际需求。尽管与...

    如何设计程序

    在编程世界中,设计程序是一项至关重要的技能,它关乎到软件的质量、可维护性以及效率。下面我们将深入探讨“如何设计程序”的相关知识点,旨在帮助你掌握有效的程序设计方法。 一、需求分析 设计程序的第一步是...

    Java Web程序设计任务教程第2章.rar

    这些是控制应用程序流程的关键概念,理解它们的差异能帮助你更好地组织Web应用程序的结构。 最后,我们会涉及部署描述符(Deployment Descriptor,即web.xml)的重要性。它是Java Web应用程序的配置文件,定义了...

    大规模C++程序设计 PDF

    《大规模C++程序设计》是一本专为C++程序员深入探讨大规模软件开发而编写的经典著作。这本书中文版的发布,使得中国的C++开发者能够更方便地获取到关于大型项目编程的专业知识。C++作为一门强大的系统编程语言,广泛...

    避免过度设计:有所为有所不为

    其困扰之一,我感觉应该叫过度设计。过度设计,一般是说技术开发中,对于逻辑复杂、技术先进的过度追求,导致了技术框架虽看似华丽却复杂难用。若说到产品功能及交互的过度设计,应该是“过度追求体验完美、需求满足...

    C程序流程设计.pptx

    在C语言中,程序流程设计是构建高效、可读性强的代码的关键。本PPT着重讲解了C语言中的程序结构和控制流,主要包括C语句的概述、程序的三种基本结构以及选择型程序设计。 首先,C语句是程序的基本组成单元,它们以...

    数据库课程设计数据流程图(进销存业务)

    在进行数据库课程设计时,使用这些数据流程图可以帮助学生更好地理解业务需求,设计合理的数据库结构,并为后续的程序开发提供基础。通过对每个业务流程的细致分析,学生能够学习到如何将复杂的业务逻辑转化为简洁的...

    进销存设计初级的程序设计

    对于初级程序设计者来说,理解和构建一个基础的进销存系统是掌握实际业务逻辑和编程技能的重要步骤。在这个场景中,我们将基于C#语言来探讨如何进行简单的进销存设计。 首先,我们要明确进销存系统的基本功能。进销...

    VC进行V带传动设计程序

    设计时应保证带在工作时既能充分接触带轮,又不会过度拉伸。 4. **带的预紧力**:为了确保V带与带轮间的有效摩擦,需要设定适当的预紧力。过大的预紧力会增加能耗,而过小则可能导致打滑。 5. **带的使用寿命**:...

    程序设计实践.pdf

    ### 程序设计实践——风格的重要性 #### 引言 在《程序设计实践.pdf》这一章节中,作者强调了程序设计风格对于编写高质量代码的重要性。通过对一段代码的分析,作者指出即便是工作良好的代码也可能存在改进的空间...

    华为内部程序设计规范教材

    5. 性能优化:关注代码性能,避免过度设计,同时注重代码的可扩展性和可维护性。 通过学习《华为内部程序设计规范教材》,开发者可以遵循一套统一的规范,提升代码质量,增强团队合作,降低维护成本,最终实现高效...

    面向对象的程序设计语言与面向过程的程序设计语言.docx

    糟糕的设计或滥用面向对象概念可能导致过度复杂性和低效。因此,开发者需要有扎实的面向对象设计原则知识,才能充分发挥OOP的优势。 总的来说,面向过程的编程语言适合于简单、直接的任务,而面向对象的编程语言则...

Global site tag (gtag.js) - Google Analytics