• 非鱼
    2019-03-15
    函数式编程有什么推荐书籍吗?

    作者回复: 有几本可以了解一下,《计算机程序的解释与构造》(Structure and Interpretation of Computer Programs,SICP),还有《Haskell 趣学指南》(Learn You a Haskell for Great Good!),《函数式编程思维》(Functional Thinking)。

    
     15
  • 旭东
    2019-04-03
    重构是“改革”,重写是“改朝”

    作者回复: 这个比喻…有点道理

    
     5
  • 毅
    2019-03-17
    重构不仅是愿景(名词),也不仅是行为(动词),还应该成为程序员必备的习惯和工作方式。但要成为习惯,甚至是深入骨髓的那种,是需要有积极意识和大量联系的。
    有程序员会说,先把功能实现了,后面我再去重构,但后来的情况往往是不重构,或是债务过多重构代价太大,原因也大多是之前课程中提到的诸如任务分解不到位,微操作缺失,缺乏合理有效的单元测试等等,所以程序员的自我修养也是要体系化的,所谓功到自然成。与诸君共勉之!

    作者回复: 观察和解释都很到位。

    
     4
  • 我行我素
    2019-03-16
    在之前的理解中一直认为重构就是将看着别扭或者影响性能和可能出现问题的代码进行调优,

    作者回复: 如果你看到了差异,我的目的就达到了。

    
     2
  • Kǎfκã²⁰²⁰
    2019-03-15
    不少人把重构望文生义或者扩大到成重新构造、重新构建甚至推倒重来了吧

    作者回复: 是的,典型的标题党式理解问题。:)

    
     2
  • 丁丁历险记
    2019-11-17
    分享里面一句对我影响很大的话, 将意图与实现分离。
    
     1
  • 码农Kevin亮
    2019-08-29
    一直以为重构是要重新调整结构。学习了任务分解的概念才知道原来我一直在重写

    作者回复: 恭喜你认清了一个概念

    
     1
  • Lyam📵
    2019-03-24
    维护别人的“旧代码”,可以从重构开始。

    作者回复: 重构,从理解重构开始。

    
     1
  • hua168
    2019-03-16
    我用idea建立了一个spring写了一个简单的MVC,按您的方法搞了半天终于搞定了。
    但有一个问题,代码如下
    package com.hualinux;

    import org.springframework.stereotype.Repository;

    @Repository
    public class T1Dao {

        public void printName(String name){
            System.out.println("Dao层的name");
        }
    }
    我光标放在方法行,按F6,会弹出如下提示:
    All candidate variables have types that are not in project.Would you like to make method 'printName' static and then move
    非要静态化才行,要不不给操作~~
    展开

    作者回复: 你没有在这个类里面添加新类的实例。

    public class T1Dao {
        private NewCommon target;
        ...

        public void printName(String name) {
            System.out.println("Dao层的name");
        }
    }

    
     1
  • hua168
    2019-03-15
    老师,我有点疑惑:
    文中 重构的手法就会把它做一个分解:
    ●添加一个新的通用类,用以放置这个方法;
    ●在业务类中,添加一个字段,其类型是新添加的通用类;
    ●搬移实例方法,将这个方法移动到新的类里面。

    最后服务类中有一个通用的方法是不是要在服务类中删除或注解掉?
    如果删除或注解那不是一样引起大批量操作?那跟重写不是差不多了?
    如果没删除那不是有2处可以引用相同的方法?不是产生冗余了吗?
    展开

    作者回复: 最后一步叫“搬移”,就是把服务类的方法删除,在通用类里增加。用 IDE 的“重构”动作完成,它会替你搞定所有问题。

    
     1
  • Time
    2019-03-15
    上次去面试,我说我们公司用的项目是ssm的,技术比较老,然后面试官问我没有想过重构嘛?使用新的框架。请问他这个'重构'的意思 其实是 '重写' 了吧?

    作者回复: 确实,他的理解是错的。

    
     1
  • 张亚运
    2020-01-08
    添加一个新功能,先重构,再加新的业务功能。
    
    
  • 丁丁历险记
    2019-11-17
    讲个段子,身为公司首架(自己封的) 我和其他开发人员的最根基差别就在于重构。
    
    
  • 丁丁历险记
    2019-11-17
    步子一定要小。
    
    
  • 小钟
    2019-06-29
    买了十来个专栏从来没有写过留言,读到这里很认同之前看过的几个留言,郑老师的这个专栏是看过对我帮助最大的一个,可以用高级来形容,将软件工程,agile,,精益创业的一些概念结合的很好,谢谢老师。
    
    
  • helloworld
    2019-05-02
    知道什么是代码坏味道,分步骤消灭坏味道
    
    
  • 刘晓林
    2019-04-18
    时隔三天,总感觉自己没有理解这一章的内容,尤其是文中举的把一个通用方法挪到一个通用类的例子到底是在说明什么。今天走在路上的时候突然好像“顿悟”了,于是又回来把文章看了一遍,总结如下:
        1.重构是专业的。重构不是简单的把一堆代码挪到另一个位置,然后再去调整它,使得它能够编译通过和顺利运行。重构应该是一个具体的可以描述和追踪的任务,是由一个一个具体的、有逻辑关系的步骤组成的,不是一锅粥。
        2.重构是微操作。既然是任务,那么就可以做任务分解,把重构分解成一个个很小的微操作,这些微操作做完任何一个都是可以停下来的。这样,重构就变成了可计划、可追踪的任务线,还可以方便地用项目管理工具管理起来。
    不知道“顿悟”得对不对,望老师指点。
    展开
    
    
  • enjoylearning
    2019-03-27
    我所理解的重构是在原有代码的基础上,无论是让代码clean,还是重构成模式,在有代码测试覆盖率保证的前提下,让其变得humanread和易维护。
    
    
  • 旭东
    2019-03-26
    重构到重写也是个量变到质变的过程。个人理解。但重写不一定是从重构做到的

    作者回复: 重写和重构是两个套路,重写基本上需要重新设计,重构一方面可以在日常工作中应用,一方面可以用以发现代码中的结构。

    
    
  • Matrix
    2019-03-20
    最近就在重写一个系统,因为我觉得重构已经救不了它了。。

    作者回复: 重写不是问题,别说重构就好。

    
    
我们在线,来聊聊吧