`

代码重构

阅读更多

重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

重构的注重点:

1.重构一步就测试一步,保证程序不会出现错误。

2.每个函数只实现一个功能,分的越细,代码复用率越高

3.函数名符合规范,见名知意。

4.controller中只写调用功能方法实现对view控制

5.用underscore替代各种循环。

 

重构实例:

 我做的是一个有关报名竞价的应用,其中涉及到通过短信报名相关活动,报过名的的人可以参加后面的竞价,其中涉及到短信提取和存储。下面的messages就是用来存储报名信息的数组,activities为存储的活动和信息。

1.数组定义

之前定义数组:

 

var messages = JSON.parse(localStorage.getItem('messages')) || [];

 重构后:

 

 

Sms.get_messages = function(){
    return JSON.parse(localStorage.getItem('messages')) || [];
}

 通过return将这个数组的值返回给函数名Sms.get_messages();所以Sms.get_messages()就代表这个数组,可以通过调用它来实现数组的获取。

 

2.函数间可以相互调用

重构前:

 

    var messages = JSON.parse(localStorage.getItem('messages')) || []
        for (var i = 0;i <messages.length; i +=1 ){
            if(messages[i].phone == Sms.sign_up_phone(json_message) ){
                localStorage.current_phone = messages[i].phone;
            }
        }

这样就将对应的电话存储到本地库中,存储的类型是字符串型数据。 

 

 由于for循环再嵌套上if很容易出现逻辑错误,所以将for循环改成underscore中的_.find方法。_.find方法替代for循环,根据return中的判断条件寻找数组中的符合条件的数据,messages代表要遍历的数组,function中的message就相当与前面的messages,只是为了理解方便。这样就可以理解为在messages中遍历每一个message。

 

与之对应的_.find方法

var messages = JSON.parse(localStorage.getItem('messages')) || [];
Sms.is_same_sign_message = function(json_message){
    return _.find(messages,
        function (message) {
            return message.phone ==  Sms.sign_up_phone(json_message)
        })
}

 重构后:

 

 

Sms.is_same_sign_message = function(json_message){
    return _.find(Sms.get_messages(),
        function (message) {
            return message.phone ==  Sms.sign_up_phone(json_message)
        })
}

 这个函数中messages用Sms.get_messages()代替,其他用到这个数组的函数也可通过Sms.get_messages()调用来实现代码复用。

3.underscore用法

之前用for循环来来存储messages中与localStorage.activities_sign相同的元素,如果判断条件增加会使代码过于庞大而且逻辑复杂

 

for(var i=0;i<messages.length;i++){
         if(messages[i].status == localStorage.current_status){
                 localStorage.current = messages[i];
         }
}

 重构后:

Activity.is_current_name = function(){
      return _.find(messages,function(message){
               return message.status == localStorage.current_status
     })
}

 _.find后的messages是要处理的数组名,function(message)中的message代表messages中的每个元素,相当于messages,function(message){}函数体中的return后是判断条件。_.find是查找messages中符合判断条件的元素,而且是查找到第一个符合条件的内容就返回而不再向下执行。_.filter是查找所有符合条件的元素并存储,若要取此数组只需调用此方法名。

提供一个学习underscore的网站:http://www.css88.com/doc/underscore/;

 

 

 

 

 

分享到:
评论

相关推荐

    代码重构&模式

    **代码重构** 代码重构是软件开发过程中的一个重要环节,它是指在不改变代码外在行为的前提下,对代码结构、设计和实现进行改进,以提高代码的可读性、可维护性和内部结构。重构的主要目标是使软件更容易理解和修改...

    代码重构.pdf

    《代码重构》一书由Martin Fowler编写,是软件开发领域中关于代码质量提升的经典之作。书中详细阐述了重构代码的必要性、重构的时机以及如何安全地重构代码。重构指的是在不改变软件外部行为的前提下,改进其内部...

    改善既有的代码重构(ppt)课件

    改善既有的代码重构(ppt),改善既有的代码重构,改善既有的代码重构PPT

    一本介绍如何将现有的 Java 代码重构为 Kotlin 代码的书籍

    综上所述,《从Java到Kotlin:重构指南》是一本非常适合Java开发者学习Kotlin并进行代码重构的专业书籍。它不仅提供了丰富的理论知识,还有大量的实践案例供读者参考,是从事软件开发工作的专业人士不可多得的宝贵...

    .java代码重构

    《.java代码重构》 代码重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,以提高代码的可读性、可维护性,同时并不改变其外在行为。在Java编程中,代码重构是一种常见的实践,尤其在大型项目中,...

    java代码重构经验分享

    Java 代码重构经验分享 Java 代码重构是指在不改变外部行为的情况下,修改代码的内部结构,以提高代码的可维护性、可读性和可扩展性。本文总结了 Java 代码重构的经验和技术规范,包括重构要求、重构的工作、代码的...

    java代码重构经验总结

    ### Java代码重构经验总结 在软件开发过程中,代码重构是一项重要的技能,它旨在不改变代码外部行为的前提下,改进其内部结构,从而提升代码质量和可维护性。本文将深入探讨Java代码重构的关键点,涵盖重构原则、...

    测试驱动开发及代码重构

    在文件名“测试驱动开发及代码重构”中,可能包含了关于TDD实践的案例分析、具体步骤、最佳实践以及如何在实际项目中实施TDD和代码重构的指导。这样的资源对于学习和理解TDD方法论及其在软件开发中的应用非常有价值...

    代码重构 (C# & ASP.NET) 英文原版

    **代码重构:C#与ASP.NET的实践指南** 在软件开发过程中,代码重构是一个至关重要的环节,它旨在改进代码的内部结构,不改变其外部行为。《代码重构 (C# & ASP.NET)》英文原版提供了针对这两种技术的重构策略和技巧...

    代码重构PDF

    **代码重构:提升软件设计与代码质量的关键技术** 在软件开发过程中,代码重构是一个至关重要的环节,它关乎到代码的可读性、可维护性和整体性能。代码重构并不意味着添加新功能或修复错误,而是对现有代码结构进行...

    C#代码重构31法

    《C#代码重构31法》是对C#编程实践中提高代码质量、可读性和可维护性的31种重构技术的总结。这些重构方法旨在优化代码结构,减少冗余,提高效率,同时也使得代码更加模块化,易于理解和测试。以下是部分重构方法的...

    swift-高仿微信iOSAppTemplate代码重构

    这个项目名为"swift-高仿微信iOSAppTemplate代码重构",旨在通过重构代码来提升应用的可读性、可维护性和性能。在这个过程中,开发者将深入理解Swift的面向对象编程、MVVM设计模式、网络请求处理、UI布局以及数据...

    java代码重构一到六章

    ### Java代码重构:掌握优化现有代码的艺术 #### 引言 在软件开发的过程中,随着项目的不断演进,代码库往往会出现复杂度增加、可读性和可维护性下降的问题。这时,进行代码重构变得至关重要。重构是指在不改变...

    Java设计模式+代码重构等PDF合集

    Java设计模式和代码重构是软件开发中的核心概念,它们对于编写高效、可维护的代码至关重要。这个PDF合集涵盖了这两个主题,旨在帮助开发者提升代码质量和软件设计能力。 首先,我们来详细了解一下Java设计模式。...

    SourceMonitor: 代码重构的小工具,大用场

    它能够帮助程序员有效地进行代码重构,提高代码质量和可维护性。通过深入理解代码结构,SourceMonitor提供了一种直观的方式来了解项目中的关键信息,包括代码行数、注释比例、类和方法的复杂性等。 **核心功能** 1...

    代码重构-以贪吃蛇为示例(四)-继续封装

    在本篇博客“代码重构-以贪吃蛇为示例(四)-继续封装”中,作者通过实现贪吃蛇游戏来阐述代码重构的重要性和具体实践。贪吃蛇游戏是许多程序员学习编程时的入门项目,它包含了基本的逻辑控制、用户输入处理以及游戏...

    代码重构思想

    代码重构是一种重要的软件开发实践,其核心目标是改善代码的结构,提高代码的可读性和可维护性,而不改变其外在行为。这种思想在现代软件工程中扮演着至关重要的角色,尤其在大型项目和持续演进的软件系统中。 重构...

    Python代码重构的艺术:探索自动化重构工具

    ### Python 代码重构的艺术:探索自动化重构工具 #### 一、引言 Python 作为一门高级编程语言,自1991年首次发布以来,便以其简洁易读的语法、强大的标准库支持以及广泛的跨平台特性赢得了众多开发者的青睐。随着...

Global site tag (gtag.js) - Google Analytics