V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aino
V2EX  ›  程序员

求救,项目 Java 代码太乱,有什么方法或者工具能够优化下代吗

  •  
  •   aino · 2017-12-28 11:21:59 +08:00 · 3511 次点击
    这是一个创建于 2318 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如这样: nt a = 5;

    int b = 10;

    int compareTo = Integer.valueOf(a).compareTo(Integer.valueOf(b));

    或者

    File file = new File(getClass().getResource("/test.txt").getFile());

    BufferedReader reader;

    String text = "";

    try {

    reader = new
    

    BufferedReader(new FileReader(file));

    String line = null;
    
    while
    

    (true) {

        line = reader.readLine();
    
        if
    

    (line == null) {

            break;
    
        }
    
        text += line.trim() + "\n";
    
    }
    
    reader.close();
    
    reader = null;
    

    } catch (FileNotFoundException e1) {

    e1.printStackTrace();
    

    } catch (IOException e) {

    e.printStackTrace();
    

    }

    都说编写代码是 30%,维护是 70%,现在这样一个代码维护起来真的让人很头疼,特此求助 V 友支招

    24 条回复    2017-12-28 19:53:18 +08:00
    tomczhen
        1
    tomczhen  
       2017-12-28 11:26:50 +08:00
    如果真的有工具或者方法能低成本的解决这个问题,那么这个问题就不是难题了。
    aino
        2
    aino  
    OP
       2017-12-28 11:28:50 +08:00
    @tomczhen 看着脑子头疼
    hqs0417
        3
    hqs0417  
       2017-12-28 11:29:22 +08:00
    使用 Java 8 中的工具,File
    Files.readAllLines(Path)
    aino
        4
    aino  
    OP
       2017-12-28 11:32:47 +08:00
    @hqs0417 不是用法,提的是 JAVA 代码混淆不清晰改如何解决
    misaka19000
        5
    misaka19000  
       2017-12-28 11:56:29 +08:00
    这代码排版没法看,楼下怎么说?
    janus77
        6
    janus77  
       2017-12-28 12:14:54 +08:00
    你的目的其实就是重构
    所以这个问题就转换成了,重构有自动化的工具吗?
    目前好像都是人工来的,所以……
    arsgm
        7
    arsgm  
       2017-12-28 12:25:56 +08:00   ❤️ 1
    @misaka19000 这个排版,我很怀疑这些代码就是楼主写的。
    hubhub
        8
    hubhub  
       2017-12-28 12:54:05 +08:00 via Android
    这个代码有什么问题吗?求大神说说
    kyuuseiryuu
        9
    kyuuseiryuu  
       2017-12-28 13:29:02 +08:00 via iPhone
    代码部分应该用 Markdown 的代码块来写啊,这样看的脑壳疼。
    ranleng
        10
    ranleng  
       2017-12-28 13:30:29 +08:00 via Android
    等等. int 为啥要还 Integer.valueOf ?
    aino
        11
    aino  
    OP
       2017-12-28 13:37:51 +08:00
    @janus77 不是重构代码一说,重构代码我已完全无力
    aino
        12
    aino  
    OP
       2017-12-28 13:38:45 +08:00
    @janus77 我现在只想解决一下代码排版的问题,排版都是乱七八糟的
    aino
        13
    aino  
    OP
       2017-12-28 13:39:33 +08:00
    @arsgm 这些代码不是我写的,我接的锅
    aino
        14
    aino  
    OP
       2017-12-28 13:40:00 +08:00
    排版问题
    lovedebug
        15
    lovedebug  
       2017-12-28 13:46:07 +08:00
    你需要 checkstyle 和 findbugs 以及通过 Intellij Idea 自带的功能重构
    当然 单元测试不补全吗?
    lovedebug
        16
    lovedebug  
       2017-12-28 13:48:05 +08:00
    idea 设置好规则后可以通过 reformat 格式化代码
    zzf2017
        17
    zzf2017  
       2017-12-28 13:49:52 +08:00
    排版问题 ide 应该都会自带的,你要设置一下,比如{}的位置和间距之类的
    zzf2017
        18
    zzf2017  
       2017-12-28 13:51:26 +08:00
    还有 你要是有强迫症,我建议你去学 python,他的格式排版能让你从此都不想 排版
    aino
        19
    aino  
    OP
       2017-12-28 13:55:33 +08:00
    @lovedebug IDEA 的格式化解决不了的问题
    ofblyt
        20
    ofblyt  
       2017-12-28 15:30:37 +08:00
    用 eclipse 完全够用
    sorra
        21
    sorra  
       2017-12-28 16:21:05 +08:00
    如果你知道要按什么规则来调整代码,比如“要调这个方法,不能调那个方法;要这么处理异常,不能那么处理”,可以基于 Exia 来编写自动重构工具。https://github.com/sorra/Exia
    swim2sun
        22
    swim2sun  
       2017-12-28 16:26:47 +08:00
    如果只是格式化代码的话, 可以考虑这个
    https://github.com/google/google-java-format
    fox0001
        23
    fox0001  
       2017-12-28 19:28:58 +08:00
    eclipse Ctrl+shift+F
    tedzhou1221
        24
    tedzhou1221  
       2017-12-28 19:53:18 +08:00 via Android
    Idea+阿里代码规范检查插件。可能会帮到你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2255 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:51 · PVG 16:51 · LAX 01:51 · JFK 04:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.