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

重构记录

 
阅读更多

2013-12-19 方法命名:方法名称体现方法的功能,与谁调用无关

问题描述:磨课活动中有些步骤必须全部活动成员都操作才算完成,由于活动成员中存在一些无效用户导致该步骤无法完成(这些无效成员是不会执行操作的),活动管理员发现这些无效用户并删除后,逻辑上这个步骤应该算是完成了,但是完成标准的设置是在用户操作的时候判断的,因为删除用户后没有进行该步骤的操作,所以不会去判断完成标志。

 

增加了一个删除用户后重新计算完成标志的方法

public void updateFinishedWhenDeleteUser(Integer actId),当删除活动成员时调用该方法。

该方法的功能就是重新计算各步骤是否真正完成。

    @Async//删除用户后通过事件调用
    public void onApplicationEvent(DeleteActUserEvent event) {
        actStepService.updateFinishedWhenDeleteUser((Integer)event.getSource());
    }

 

后来发现之前的历史数据没法自动完成,需要通过一个操作重新触发,这时该方法的名称就不太合适了,因为和删除用户没有关系。方法功能的本意是重新计算,而不是什么时候重新计算。

 

//对历史数据进行处理,这时候updateFinishedWhenDeleteUser名称明显不合适

List<Activity> allacts=activityService.selectActivitys(formIds.toArray(new Integer[0]));
        for(Activity act:allacts){
            actStepService.updateFinishedWhenDeleteUser(act.getId());
        }

将方法名称重构成updateFinishedStatus,上面两种情况的调用改成如下形式。

 

        List<Activity> allacts=activityService.selectActivitys(formIds.toArray(new Integer[0]));
        for(Activity act:allacts){
            actStepService.updateFinishedStatus(act.getId());
        }

 

    @Async
    public void onApplicationEvent(DeleteActUserEvent event) {
        actStepService.updateFinishedStatus((Integer)event.getSource());
    }

分享到:
评论

相关推荐

    How we refactor, and how we know it

    1. **重构记录的缺失**:研究发现,程序员在进行重构时,很少会在版本控制系统的提交日志中明确标注其活动为重构。这与之前许多研究者所持有的观点相悖,他们通常假设重构活动会被明确记录在提交日志中。这一发现...

    重构改善既有代码的设计第2版.pdf

    5. 重构名录:包括重构的记录格式、挑选重构的依据等。 6. 第一组重构:包括提炼函数、内联函数、提炼变量、内联变量、改变函数声明、封装变量、变量改名、引入参数对象、函数组合成类、函数组合成变换、拆分阶段等...

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

    他相信学习的重要性,并且总是致力于将所学的知识和经验记录下来,以便更好地分享和传播。 总结来说,《重构:改善既有代码的设计》这本书对于任何希望改进其代码质量的软件开发人员来说,都是一本不可或缺的指导...

    系统重构.pdf 侯捷

    - **版本控制**:使用版本控制系统记录每一次改动,便于追踪和回滚。 #### 四、重构的技术与方法 - **常见重构技巧**: - **提取方法(Extract Method)**:将一段代码提取成独立的方法,提高代码的可读性和可...

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

    5.1 重构的记录格式 103 5.2 寻找引用点 105 5.3 这些重构手法有多成熟 106 第6章 重新组织函数 109 6.1 Extract Method(提炼函数) 110 6.2 Inline Method(内联函数) 117 6.3 Inline Temp(内联...

    遗留系统重构与维护

    遗留系统的重构与维护是软件工程领域中一项至关重要的工作,它关注的是那些历史悠久、结构复杂且可能缺乏文档记录的旧有软件系统。重构是为了提高软件系统的可维护性、可扩展性、可读性和性能,而维护则涉及对系统的...

    cps重构技术方案

    - AOP(面向切面编程):在重构方案中,利用AOP技术对系统日志进行增强,实现了记录日志的非侵入式添加。 - SystemLogService:系统日志服务接口,定义了记录日志的规范。 - SystemLogAspect:系统日志切面,通过AOP...

    重构重构重构

    - 可视化进度:使用版本控制系统记录每一步的变更,便于回溯和协作。 3. **常见的重构技术**: - 提取函数:将一段完成特定任务的代码块提取为单独的函数,以增加代码复用和可读性。 - 提取类或模块:当一个类或...

    java代码重构经验总结

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

    重构源代码C1-c++版本

    而"note.txt"可能是对重构步骤的记录,包括为什么要进行某些改变,以及这些改变带来的好处。 总之,这个C++重构实例是一个学习和实践代码优化的好材料,通过它,我们可以深入了解C++语言的特性,并掌握如何在实际...

    重构:改善既有代码的设计.[美]Martin Fowler.epub【文字版手机格式】

    5.1 重构的记录格式 5.2 寻找引用点 5.3 这些重构手法有多成熟 第6章 重新组织函数 6.1 Extract Method(提炼函数) 6.2 Inline Method(内联函数) 6.3 Inline Temp(内联临时变量) 6.4 Replace Temp with Query...

    项目重构之命令模式

    - **可撤销操作**:可以通过维护一个命令历史记录,实现撤销操作。 - **方便实现事件驱动**:命令模式适合实现事件驱动架构,调用者可以触发一系列命令的执行。 **4. 在实际项目中的应用** 在IT行业中,命令模式被...

Global site tag (gtag.js) - Google Analytics