`
cantellow
  • 浏览: 847632 次
  • 性别: Icon_minigender_1
  • 来自: 草帽海贼团
社区版块
存档分类
最新评论

重构实践之一

阅读更多

昨天看了一下CSDN举办的SD2.0大会邀请的嘉宾,不得不说,确实阵容很强大,都是业界比较有名气的人,就小弟知道名有其人的,有JE的肉饼,翻译《深入java虚拟机》的曹晓刚,JE技术大牛李锟,《java夜未眠》作者蔡学镛等等。大会涉及软件开发的8个领域,我比较感兴趣的是架构和实践,或许我可以借此解决我工作中遇到的问题。

 

目前手上差不多有四个任务,其中2个是跟重构有关,一个是上面分给我的,一个是我主动要求的,我很感谢头儿分给我这么一个比较有趣而且有挑战性的任务,重构就是站在别人的肩膀上看问题,这不是一个简单的事情。虽然只是某一个小模块,但是我也满足了。小到一个变量,一个方法的重构,大到一个模块设计的重新架构,我都必须谨慎对待。我知道重构是一件神圣的事情,我更乐意叫维护人员为重构人员,软件的80%工作都是在维护和重构,在我看来,重构是大型软件企业急需的技能。

 

重构能力=企业持续的竞争力,这样说一点都不夸张,就拿我们公司来说,目前的项目组的架构已经不能够满足各个功能的修改,每一次小的变动都必须修改代码,每一次提交测试都会反馈大量的BUG,有几个模块因为当初设计的时候路线不对,现在修修补补了好多次还是有很多BUG。

 

拿一个我比较熟悉的任务来说,重构的需求,也是目标:

1.通用性(可复用性),头儿要求最好能够适用组内其他小项目,尽量将所有重复性的代码都写在一个地方集中管理,提炼出不同的业务逻辑,这一部分可以根据各个小项目自定义,不管是继承类也好,写在配置文件也好,只要将不变的和变化的分开,尽量做到代码层次的重用,业务逻辑层次的重用就好。

2.可维护性(可扩展性),模块必须满足目前面临业务逻辑所有可能的情况,意思就是说,在目前能够想到的业务逻辑变化时,尽量做到OCP原则,在我们头儿来看,OCP原则就是将业务逻辑变化之处写在配置文件中。

3.清晰性(架构优美),架构清晰,流程清晰,简单即是美,简单的问题,我们就不要把问题搞的太复杂,为了解决问题就不要把他演变成为了彰显自己的能力,过度设计就是这么一个例子。清晰性最好的解释就是,你的解决方案能够在评审会议上让大家欣然明白并接受。

4.可用性(用户体验性),如果不是GUI设计,那么我们这里主要强调的是性能的优化,性能的提升,包括战略上的,也有战术上的,战略上主要是在软件开发过程上的控制,包括了需求、设计、实现和测试的各个阶段的一些原则。战术部分则包含了Java各个技术环节的经验,包括I/O编程、内存对象、类加载的控制、如何使用Java对象、算法和数据结构、本地方法、Swing模型和渲染器、Swing线程模型以及部署等各方面的技术和方法,这些技术和方法可以帮助你极大提高Java应用程序的性能。

 

上面说的太笼统了,本来我是针对某一个任务来说的,但是思维发散到尽量使用所有的重构实践了,可能是平时设计方法和类的习惯,能够一般化,就尽量不要搞特殊。呵呵,不过有一句话时刻提醒着我,不要为了优化而优化,最后性能的优化,如果不是你的应用出现太大的性能问题时,你应该第一时间保持你的应用能够正确完成业务逻辑,减少BUG数量,然后再是可扩展性,可复用性,最后才是性能上的完美,还有架构和代码各个细节的完美。

分享到:
评论

相关推荐

    王家林的软件重构最佳实践

    ### 重构实践指南 《王家林的软件重构最佳实践》提供了一套系统的方法论,指导开发者如何进行重构: 1. **重构时机**:王家林建议在添加新功能之前,或是发现代码存在严重问题时进行重构,以确保系统的稳定性和可...

    微信Android模块化架构重构实践.pdf

    微信Android模块化架构重构实践涉及的技术知识点主要包括以下几个方面: 1. Android模块化架构概念:模块化架构是指将应用程序拆分为独立的模块,每个模块负责一块特定的功能。这种方式有助于提高代码的复用性,...

    重构极限编程_XP的实践与反思(PDF).rar

    此外,测试驱动开发(TDD)是XP的关键实践之一,要求开发者先写测试用例,再编写满足这些测试的代码,确保代码的正确性。 书中还讨论了如何通过“计划游戏”来管理项目,这是一种高度互动的规划方法,让客户、...

    Ruby-Ruby技巧惯用Ruby重构和最佳实践

    1. 块和迭代器:Ruby中的块(blocks)和迭代器(iterators)是其强大之处。使用`each`、`map`等方法可以简洁地遍历集合。例如,`array.each { |item| puts item }`用于打印数组的所有元素。 2. 魔术方法:Ruby允许...

    重构-改善既有代码的设计

    总的来说,《重构-改善既有代码的设计》是一本深入探讨Java重构实践的指南,它教会我们如何通过细致而系统的工作,不断提升代码质量,实现软件开发的可持续发展。无论你是初级开发者还是经验丰富的老兵,这本书都将...

    重构手册 Professional Refactoring Workbook

    《重构手册 Professional Refactoring Workbook》是一本专注于软件重构实践的权威指南。本书旨在帮助开发者们理解和掌握重构这一关键技能,以提升代码质量、可维护性和软件设计的灵活性。重构是软件开发过程中的一个...

    重构(Refactoring)英文版

    3. **保持简洁**:重构的目标之一就是简化代码结构。这不仅包括去除不必要的代码,还包括简化逻辑结构,使得代码更加清晰易懂。 4. **遵循设计模式**:在重构的过程中,应该参考并遵循一些已知的设计模式,这些模式...

    重构_重构_改善既有代码_

    这本书是每一位致力于提升软件工程实践水平的开发者,尤其是架构师的必读之作。 重构的核心概念在于,当代码变得难以理解和维护时,我们需要对其进行整理和优化,使其更清晰、更简洁,同时保持原有的功能。这一过程...

    代码重构.pdf

    7. 重构与敏捷开发:敏捷开发方法强调适应性和改进,重构是实现这一目标的手段之一。通过重构,可以快速响应需求变化,持续改善代码,使软件保持灵活性和可维护性。 8. 社区和资源:《代码重构》也提供了大量来自...

    PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

    《重构-改善既有代码的设计》一书提供了一系列的重构实践方法,强调了重构不仅仅是理论上的概念,更是一系列实际可行的操作技术。这些实践方法能够指导开发者在现实世界中面对代码质量问题时能够采取有效的改进措施...

    重构java代码简洁之道

    压缩包中的《重构-软件开发长久之道.pptx》很可能是对这些重构技巧的详细介绍,包括实例演示和最佳实践。深入学习这份资料,开发者可以更好地掌握Java重构的艺术,从而写出更加简洁、高效和易于维护的代码。在实际...

    重构 中英双版

    《重构:改善既有代码的设计》是软件开发领域的一本经典之作,由著名的软件开发者Martin Fowler撰写,本书同时提供了中文和英文两种版本,便于不同语言背景的读者阅读和学习。重构,这一概念在软件工程中占据着重要...

    软件重构技术(重构介绍、重构原则、代码的坏味道。。。)

    3. **清晰的代码**:重构的目标之一是提高代码的可读性,因此,每一次重构都应该使代码更加清晰明了。 4. **避免重复代码(DRY原则)**:如果发现重复的代码,应当通过抽象和模块化来消除。 5. **及时重构**:一旦...

    《重构 改善既有代码的设计》之重构,第一个案例详解

    ### 《重构 改善既有代码的设计》之重构,第一个案例详解 #### 一、引言 《重构 改善既有代码的设计》是由Martin Fowler等人撰写的经典之作,旨在教授软件开发者如何通过重构来提高代码质量和可维护性。本书不仅...

    java重构pdf书籍

    在软件开发领域,重构是提高代码质量和可维护性的关键实践之一。本文将深入探讨“Java重构”的核心概念、重要性和实施方法,特别是基于《重构—改善既有代码的设计》一书的部分内容,该书由Martin Fowler著,侯捷译...

    重构_改善既有代码的设计 Java

    《重构:改善既有代码的设计》是一本在IT领域广受推崇的经典著作,专注于软件开发中的重构实践,尤其针对Java编程语言。重构是软件开发过程中的一个重要环节,它旨在提升代码的可读性、可维护性和整体质量,而不会...

    温昱《架构重构——从趋势分析到实践建议》

    3. **模块重构成为企业关注焦点**:企业将更加重视模块级别的重构,将其作为提升整体软件质量的关键手段之一。 4. **架构重构方法的实效性增强**:对于架构级的重构,将出现更多切实有效的方法和技术。 5. **...

    架构与重构

    根据行业观察,未来3-5年内,架构重构将成为软件开发领域的重要趋势之一。随着云计算、大数据、人工智能等新技术的应用,以及DevOps、敏捷开发等新模式的普及,软件系统的复杂性不断增加,这要求开发团队具备更强的...

    重构 改善既有代码的设计 pdf 中文

    重构之所以重要,是因为它能够帮助开发者逐渐摆脱历史遗留代码的束缚。许多经验丰富的开发者在完成项目后会发现,他们得到的代码虽然能够运行,但效率低下且难以维护和扩展。这种现象被形象地称为“代码的债务”。...

Global site tag (gtag.js) - Google Analytics