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

第一次做开源 Java 库,用于进制转换

  •  
  •   BigMikey · 2023-03-20 01:40:11 +08:00 · 2908 次点击
    这是一个创建于 616 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/BigMikey-V/Transfer/blob/main/README.md
    提供与 Python 进制转换函数类似功能。
    忘记把自己新被子放床上了,睡觉睡觉~
    (各位看官走过路过瞄几眼呗)
    25 条回复    2023-05-02 15:26:25 +08:00
    zagfai
        1
    zagfai  
       2023-03-20 02:09:43 +08:00   ❤️ 1
    既然小朋友你这么大胆我也不妨直喷了。。。你这代码质量很差,性能很差,没有意义。

    建议,先多看,看够 20 万行代码再写
    KoedaNagi
        2
    KoedaNagi  
       2023-03-20 02:13:27 +08:00 via Android
    既然小朋友你这么大胆我也不妨直喷了。。。你这代码质量很差,性能很差,没有意义。

    建议,先多看,看够 40 万行代码再写
    auh
        3
    auh  
       2023-03-20 02:20:03 +08:00
    既然小朋友你这么大胆我也不妨直喷了。。。你这代码质量很差,性能很差,没有意义。

    建议,先多看,看够 400 万行代码再写
    c6h6benzene
        4
    c6h6benzene  
       2023-03-20 03:13:55 +08:00
    好像有 parseInt()?
    msg7086
        5
    msg7086  
       2023-03-20 03:34:57 +08:00
    首先吧,测试用例呢?你不会以为人们愿意在没有测试覆盖的情况下用你的库吧……
    hefish
        6
    hefish  
       2023-03-20 07:38:18 +08:00
    这个,还是应该鼓励为主的。
    litchinn
        7
    litchinn  
       2023-03-20 08:24:32 +08:00   ❤️ 5
    原则上应当以鼓励为主
    但是首先,java 的 Integer 类有 Integer.toBinaryString 、Integer.toOctalString 、Integer.toHexString 方法,你可以参考下
    其次你的代码真的很不 java
    tairan2006
        8
    tairan2006  
       2023-03-20 08:44:19 +08:00   ❤️ 1
    Java 里面流行的是 hutool 、common-lang3 这种大而全的 utils 集合,这种小功能写个库好像 nodejs 中比较流行,小兄弟不妨考虑换个方向。
    selca
        9
    selca  
       2023-03-20 08:50:20 +08:00
    至少功能实现了
    Cola98
        10
    Cola98  
       2023-03-20 09:01:54 +08:00
    public void init(){
    result = "";
    atmp = "";
    btmp = "";
    }
    这一段初始化的,Java 不是有一个 get/set 方法嘛?还有就是命名规范有点问题,main 方法里面的测试你可以单独弄成测试单元去跑下
    chocotan
        11
    chocotan  
       2023-03-20 09:09:04 +08:00
    第 89 行
    result = new StringBuffer(atmp).reverse().toString();
    if(btmp.length() > 1) result += "." + btmp;

    这 new 了个 StringBuffer 就是为了 reverse ?
    CodeCodeStudy
        12
    CodeCodeStudy  
       2023-03-20 09:12:57 +08:00
    if 后面一定要跟{},不然不利于阅读
    godleon
        13
    godleon  
       2023-03-20 09:17:11 +08:00
    建议给 x 做个非空
    dqzcwxb
        14
    dqzcwxb  
       2023-03-20 09:23:38 +08:00
    逆耳良言
    leahoop
        15
    leahoop  
       2023-03-20 09:27:22 +08:00
    好奇问一下,用了共享变量怎么没用多线程控制
    Eiden
        16
    Eiden  
       2023-03-20 09:30:59 +08:00   ❤️ 1
    我还以为 java 没有内置进制转换
    fiveStarLaoliang
        17
    fiveStarLaoliang  
       2023-03-20 09:44:57 +08:00
    话不多说, 加油
    leonard916
        18
    leonard916  
       2023-03-20 09:47:53 +08:00
    标准库里有的,不要重新去实现。除非你有更好的算法或数据结构。
    当然你作为学习项目,怎么写都可以。作为库就没必要了。
    yaphets666
        19
    yaphets666  
       2023-03-20 10:36:52 +08:00   ❤️ 1
    其实很好,哪怕自己写的代码不好,发出来就有大佬斧正了,自己就提高了
    sleepybear1113
        20
    sleepybear1113  
       2023-03-20 13:53:34 +08:00   ❤️ 1
    既然别人都批评过了,那么我就来按照我公司的规范来讲讲吧。

    首先,Transfer 类我可是第一次见还能 import static 的方式(毕竟我不这么用),一般来说都是 import java.lang.Math; 然后 Math.pow() 使用。

    第二点,每个方法都不是 static ,意味着每次都需要 new 之后才能使用。

    第三,for if 等这种方法,都需要用大括号括起来,不要因为一行语句就不用大括号了,不要吝啬空行。

    第四,没有异常处理。

    第五,没有注释。

    只说了一点点,剩下的交给其他人来补充吧。建议看看别人的一些源码学习学习。
    BigMikey
        21
    BigMikey  
    OP
       2023-03-21 14:08:20 +08:00 via Android
    谢谢各位的斧正,本着学习的心态来讨教的哈哈,谢谢啦!
    BigMikey
        22
    BigMikey  
    OP
       2023-03-21 14:09:57 +08:00 via Android
    喷没有问题哈,实话说我也不介意被喷,主要吧还是想学技术。
    BigMikey
        23
    BigMikey  
    OP
       2023-03-21 14:10:25 +08:00 via Android
    只要不是恶意的都没有问题~
    rzdCG
        24
    rzdCG  
       2023-04-08 20:12:32 +08:00
    @BigMikey 加油
    BigMikey
        25
    BigMikey  
    OP
       2023-05-02 15:26:25 +08:00
    @rzdCG #24 谢谢啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:22 · PVG 03:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.