有看到好几个层主回复不建议使用 hutool 没看到具体理由

2023-08-01 01:00:28 +08:00
 feitxue
特意单独开贴提问下
只有一个有具体讲到说是 hutool 整个引入太大了
其他几个没有讲到具体理由
是否遇到有什么大坑?
请大家不吝赐教
根据各位回复我需要评估下是否移除 hutool 的引用
14438 次点击
所在节点    Java
136 条回复
zpf124
2023-08-01 13:19:40 +08:00
@runzekk 那是,还是您配,毕竟您是学会了释放冷气才去评论冰箱的。

加油,争取有朝一日您有能力把我们这些阻碍社区发展的阻力都物理消灭了。
nekoneko
2023-08-01 13:24:32 +08:00
@ily433664 #43 DateTime 继承了 Date 类, 这都能算问题啊
newaccount
2023-08-01 13:29:39 +08:00
spring-boot-dependencies 有定义的,无脑用,升级有保证
没有的,鬼知道哪次升级就跪了
win301
2023-08-01 13:30:40 +08:00
hutool 非常好用,别听这些鄙视链的人瞎说,维护非常频繁,看楼上很多人说某些功能 可能有 bug ,这在软件行业多正常的事情啊,强如 spring ,你们自己去 GitHub 上看,有多少人提 Issues ,以及每次发版列出的 releases 的改动有多少 bug 修复,好家伙我都服了,免费用人家的开发成果,结果还跳出来吐槽别人,你们这是什么精神?
easymbol
2023-08-01 13:35:36 +08:00
不管黑猫白猫,能够让我摸鱼的猫就是好猫
notwaste
2023-08-01 13:48:46 +08:00
@zpf124 没必要跟一个两个星期前用来键政才创建的小号较真,block 就好了
ZiChun
2023-08-01 13:51:21 +08:00
@runzekk 你的观点有一个误区。对国内开源的支持是没问题的,生产环境尽量谨慎使用开源库也是没有问题的,这两者本身就可以是不同场景。
生产环境比起对开源的支持,首先是要对公司负责,就像我楼上提到的例子,hutool 某些版本确实存在一些可能导致线上服务器问题的 bug 。这种时候,“自己觉得 hutool 不好不如考虑下加入开源一起维护”这个观点完全就属于是本末倒置了,因为你首先要做的是保证线上环境的稳定。(而且也不是说不能用 hutool ,是指要用的话,就要定期检查是否存在重大漏洞修复)

对待这个问题不能二极管,hutool 确实能够给开发带来便利,但是这并不影响在没有严格的三方库风险控制的情况下,尽量别用 hutool 上正式环境。如果是个人项目,怎么用都行。这本来就不是一个 hutool 到底好不好用的问题,而是一个在生产环境引用是否具有潜在风险的问题。单纯说好用,我也觉得好用。
liy333
2023-08-01 14:00:06 +08:00
国内的社区,楼上可见一般。论点基本都是:我觉得好用;你用起来不行说明你不会用;屁股大于一切;你行你上;你不上就不要逼逼
runzekk
2023-08-01 14:00:40 +08:00
@ZiChun 那些问题呀?你倒是举例子呀,别空口造谣侮人清白。

对 xxx 负责就是要多测试,h 你是什么大公司么,开源漏洞还能影响到你。起码我司千万以上用户,每次开源漏洞就算有,也没被利用过。

你把使用国外开源 = 线上稳定了。 你是怎么推出来的结论。

你还定期检查你给我逗笑了,你开检查开源软件呢。

生产环境关开源吊事,自己水平有限,问题当然多。
ZiChun
2023-08-01 14:06:47 +08:00
@runzekk 1. 42 楼,json 工具类的问题
2. 我没有说国外 = 线上稳定,而是 46 楼的观点,知名三方库的重大漏洞传播更快,在真正出现问题之前修复的可能性显然更大,而 hutool 显然目前还做不到这一点。

关不关开源什么事我不清楚,但是我提到的这个 json 工具问题显然完完全全是 hutool 的 bug ,跟其他开发没关系。
liy333
2023-08-01 14:08:57 +08:00
楼主不妨阅读下这篇文章,自行判断 https://mp.weixin.qq.com/s/QI52VbaQfFOTZyNSfkHk0w
cqx2005
2023-08-01 14:10:07 +08:00
我项目引入了 hutool ,但其代码设计,确实不好,贴代码

/**
* 下载文件
*
* @param path 文件路径
* @param fileName 文件名
* @param outFile 输出文件或目录
*/
public void download(String path, String fileName, File outFile) {
if (outFile.isDirectory()) {
outFile = new File(outFile, fileName);
}
if (false == outFile.exists()) {
FileUtil.touch(outFile);
}
try (OutputStream out = FileUtil.getOutputStream(outFile)) {
download(path, fileName, out);
} catch (IOException e) {
throw new FtpException(e);
}
}



/**
* Ftp 异常
*
* @author xiaoleilu
*/
public class FtpException extends RuntimeException {
private static final long serialVersionUID = -8490149159895201756L;

public FtpException(Throwable e) {
super(ExceptionUtil.getMessage(e), e);
}

public FtpException(String message) {
super(message);
}

public FtpException(String messageTemplate, Object... params) {
super(StrUtil.format(messageTemplate, params));
}

public FtpException(String message, Throwable throwable) {
super(message, throwable);
}

public FtpException(Throwable throwable, String messageTemplate, Object... params) {
super(StrUtil.format(messageTemplate, params), throwable);
}
}



download 方法把 IO 异常代替为 RuntimeException 。糟糕的设计。
runzekk
2023-08-01 14:15:20 +08:00
@ZiChun 2. hutool 是工具类库,log4j 是某一个细分领域下面的开源,两者都不是一个性质的东西。除了都是软件。。。真不知道怎么能放一起比较的。

bug 当然有,你搞笑呢,一个 bug 说明了什么呢,spring bug 还少么。你这是杯弓蛇影、因噎废食?还是好不容易找到一个 bug ,我一定要深深深深的记在心里。。。一定每次都拿出来说,一定显摆一下我看了开源软件了,找到了 bug 了。
ZiChun
2023-08-01 14:21:14 +08:00
@runzekk 我不知道你怎么理解为因噎废食的。

线上出问题 -> 找到了 bug -> 评估三方库风险 -> 建议谨慎使用

Spring 的问题是多,但是即使 Spring 这么多问题,我至今没有遇到任何一个导致服务器宕机的问题。
但是 hutool 确实导致线上服务器宕机了。

如果说一个开源库已经导致线上事故了,还要说不使用是因噎废食,那我评价只有一个字:孝
lyxeno
2023-08-01 14:22:34 +08:00
Hutool 代码和文档质量有好有坏,我个人习惯用 Apache Common ,方法说明全很多,找不到再用 Hutool 的。毕竟 Hutool 里的工具比某些同事连单测都没,不知道哪里拷过来的工具方法强多了。
Oktfolio
2023-08-01 14:47:13 +08:00
@nekoneko #82 这里有坑的
runzekk
2023-08-01 14:55:54 +08:00
@ZiChun hhh ,没遇到 != 没有。只是你没遇到,你使用的很浅而已。

你不用就不用呗,按你的逻辑,你是不孝。
ZiChun
2023-08-01 15:00:24 +08:00
@runzekk 你不妨说说你的观点,我认为线上环境谨慎使用开源库,你觉得我说的不对,那就是线上应该无脑使用开源库咯?只要是开源,就应该优先考虑?希望你能知道,开源本身并不意味着高人一等,相反,开源一定是相对 unstable 的,你如果真的想讨论,没必要总是在反驳别人,你可以说说你的想法,你要是说的对,也可以说服别人。
28Sv0ngQfIE7Yloe
2023-08-01 15:01:12 +08:00
@LeegoYih |


间接依赖与项目中的依赖存在冲突
------

举个例子看看?
runzekk
2023-08-01 15:12:56 +08:00
@ZiChun 看我楼上发言呀,你看完再说,我摆出来观点了。四个呢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX