一、序言

关于HuTool工具包,相信很多技术朋友都听说甚至使用过。在HuTool之前,已经有比较成熟的工具包比如Apache Common包,谷歌推出的Guava包,他们已经在全世界大范围使用了。

究竟是什么原因导致HuTool有后来居上的趋势,传统的工具包对于国内开发者来讲劣势在哪里呢,不妨来扒一扒。

二、HuTool的优势

1、代码风格符合国人的开发习惯

关于编码习惯,国内、国外开发者是有一定的差异的。传统的底层框架,几乎是清一色国外开发者贡献的,如果没有一定的代码阅读语感,很难进入状态,源代码阅读比较别扭。

2、全中文文档 阅读零门槛

随着全民编程的盛行,编程年轻化的趋势愈发明显,青少年英语能力尚有待进一步提高,但是又有阅读文档的需求,此时有中文文档的HuTool的优势显现出来,让那些即使英语能力薄弱的开发者也能够愉快的编码。

传统工具包全英文的劣势凸显出来。

3、工具方法多 接地气

包罗万象的工具方法,化身小超人,无所不能。特别是像生成二维码这样的小工具包,特别接地气。

三、使用HuTool的目的

1、学习

HuTool是非常适合初学者学习的,demo场景丰富,注释丰富,非常适合初学者入门Java学习。

2、上线需谨慎

正所谓学以致用,学完如果立刻拿到线上的话,需要谨慎对待。小项目、个人项目使用到无妨,正儿八紧项目,不妨先缓缓,看看其它成熟框架有没有类似的实现。

四、知名的代码事故

1、7行代码让B站崩溃3小时

7行代码让B站崩溃3小时,直接经济损失上亿事件,让我们认识到,除了基本功能实现外,代码健壮性变得越来越重要。更详细的内容,视频直达。

HuTool代码由于贡献者参差不齐,更多关注基本功能实现,而对代码健壮性没有提出硬性要求。导致的直接后果是,很多功能看起来很棒,实际使用时很容易因健壮性薄弱而入坑。

遗憾的是,对于很多只关心一两个测试用例,便完成代码开发的人,很难识别出健壮性问题。新人小白更难识别健壮性问题了,无形中给一线生产代码带来机制上的技术债

2、Apache日志事件

再来看一个使用传统工具包发生事故的对比。日志门事件相信大家记忆犹新,席卷全世界。当我们在项目中使用知名框架是,哪怕中彩票出现问题,那么有超级大佬在前面顶着,对于普通的中小公司来说,在线等解决方案即可,无需投入更多的技术力量来修复Bug。具体参考日志门事件的处理逻辑。

大框架由于广泛的用例测试,并且有相应的白帽子重点跟踪,因框架本身而出现Bug对于普通使用者来说是极低的事件。使用起来比较安心。

五、小结

本文从一线开发的角度聊了聊HuTool工具包,相信国产开源会越做越好。同时框架维护者应当意识到健壮性不足的代码被广泛使用后对一线生产带来的冲击,给整个Java生态带来的隐形技术债的隐藏大雷。

本文有视频版,欢迎广泛技术朋友交流看法。

如何理性看待国内大热的HuTool工具包的更多相关文章

  1. 为什么前两年大热的VR创业突然冷了?

    不得不说,如果不是<头号玩家>在国内的热映,人们似乎都要忘记VR这个行业了.<头号玩家>中那些带有极强真实色彩的游戏,其实就是VR进化的目标,甚至是巅峰!而里面的角色佩戴的设备 ...

  2. 深入解析当下大热的前后端分离组件django-rest_framework系列四

    查漏补缺系列 解析器 request类 django的request类和rest-framework的request类的源码解析 局部视图 from rest_framework.parsers im ...

  3. 深入解析当下大热的前后端分离组件django-rest_framework系列一

    前言 Nodejs的逐渐成熟和日趋稳定,使得越来越多的公司开始尝试使用Nodejs来练一下手,尝一尝鲜.在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展 ...

  4. 盘点当下大热的7大Github机器学习创新项目

    哪个平台有最新的机器学习发展现状和最先进的代码?没错——Github!本文将会分享近期发布的七大GitHub机器学习项目.这些项目广泛覆盖了机器学习的各个领域,包括自然语言处理(NLP).计算机视觉. ...

  5. Javascript之十大常用原理性样例大总结

    案例一:全选等 运用知识点:ondblclick=()| onclick | 寻找标签属性及判断和函数的应用

  6. 跟王思聪热狗图一样大热的Redis,还不赶紧来Get一下?

    前言 不禁喊出一句ig牛逼!哈哈哈 这个话题是不是有点过时了?但说到Redis,真的是被强行灌输的,到处都会被安利Redis,吓得只会mysql和oracle的我,赶紧去get一波.. 数据库种类 关 ...

  7. 目前大热的AI和SLAM的职业发展的想法

    目前,AI的研究和SLAM的发展已经走到使用领域.还记得三年前,上<信息光学>的老师在课上提到,他有一个研究生买了一个两万块的笔记本,还要出国去研究人工智能,当时听着认为这位学长很疯狂.可 ...

  8. 深入解析当下大热的前后端分离组件django-rest_framework系列三

    三剑客之认证.权限与频率组件 认证组件 局部视图认证 在app01.service.auth.py: class Authentication(BaseAuthentication): def aut ...

  9. 深入解析当下大热的前后端分离组件django-rest_framework系列二

    视图三部曲 一部曲 · 使用混合(mixins) 上一节的视图部分: from rest_framework.views import APIView from rest_framework.resp ...

  10. AJ学IOS(15)UI之曾经大热的打砖块小游戏

    AJ分享,必须精品 先看效果图 代码 // ViewController.m // 打砖块 // // Created by liufan on 13-8-17. // Copyright (c) 2 ...

随机推荐

  1. service服务使用CoreDNS提供的域名地址访问

    普通的 Service:会生成 servicename.namespace.svc.cluster.local 的域名,会解析到 Service 对应的 ClusterIP 上,在 Pod 之间的调用 ...

  2. KubeOperator安装好后默认会占用80端口,替换成其他端口

    使用KubeOperator安装好k8s后,然后修改如下的配置文件,最后重启应用即可 重启:koctl restart

  3. Node Exporter监控指标

    访问http://localhost:9100/metrics,可以看到当前node exporter获取到的当前主机的所有监控数据,如下所示: 每一个监控指标之前都会有一段类似于如下形式的信息: # ...

  4. 17. Fluentd输出插件:out_copy用法详解

    copy即复制,out_copy的作用就是将日志事件复制到多个输出,这样就可以对同一份日志做不同类型的分析处理. out_copy内置于Fluentd,无需单独安装. 示例配置 <match p ...

  5. Beats:使用 Filebeat 导入 JSON 格式的日志文件

    转载自:https://blog.csdn.net/UbuntuTouch/article/details/108504014 在今天的文章中,我来用另外的一种方式来展示如何导入一个 JSON 格式的 ...

  6. Failed to find a valid digest in the 'integrity' attribute for resource

    一.Bootstrap  引入报错 在使用bootstrap过程中发现无法使用下拉导航栏,或者是显示不出效果. Failed to find a valid digest in the 'integr ...

  7. .NET6 JWT(生成Token令牌)

    一.Net 6环境下的.net core项目里如何使用JWT. 第一步,在Nuget引入JWT.Microsoft.AspNetCore.Authentication.JwtBearer这两个NuGe ...

  8. C#-2 C#程序

    一 C#程序是一组类型声明 C#程序或DLL的源代码是一组一种或多种类型声明. 对于可执行程序,类型声明中必须有一个包含Main方法的类. 命名空间是一种把相关的类型声明分组并命名的方法.是类在程序集 ...

  9. 微信小程序专题(二)-----微信openid的获取

    一,简单来讲就是以下流程 通过get方式获取信息 在前端调用wx.login() 获取 临时登录凭证code之后,将code字符串发送给后端,后端通过auth.code2Session接口获取用户唯一 ...

  10. 空链接的作用以及<a href="#"></a>和<a href="javascript:;"></a>的区别

    空链接的作用以及<a href="#"></a>和<a href="javascript:;"></a>的区别在 ...