如何理性看待国内大热的HuTool工具包
一、序言
关于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工具包的更多相关文章
- 为什么前两年大热的VR创业突然冷了?
不得不说,如果不是<头号玩家>在国内的热映,人们似乎都要忘记VR这个行业了.<头号玩家>中那些带有极强真实色彩的游戏,其实就是VR进化的目标,甚至是巅峰!而里面的角色佩戴的设备 ...
- 深入解析当下大热的前后端分离组件django-rest_framework系列四
查漏补缺系列 解析器 request类 django的request类和rest-framework的request类的源码解析 局部视图 from rest_framework.parsers im ...
- 深入解析当下大热的前后端分离组件django-rest_framework系列一
前言 Nodejs的逐渐成熟和日趋稳定,使得越来越多的公司开始尝试使用Nodejs来练一下手,尝一尝鲜.在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展 ...
- 盘点当下大热的7大Github机器学习创新项目
哪个平台有最新的机器学习发展现状和最先进的代码?没错——Github!本文将会分享近期发布的七大GitHub机器学习项目.这些项目广泛覆盖了机器学习的各个领域,包括自然语言处理(NLP).计算机视觉. ...
- Javascript之十大常用原理性样例大总结
案例一:全选等 运用知识点:ondblclick=()| onclick | 寻找标签属性及判断和函数的应用
- 跟王思聪热狗图一样大热的Redis,还不赶紧来Get一下?
前言 不禁喊出一句ig牛逼!哈哈哈 这个话题是不是有点过时了?但说到Redis,真的是被强行灌输的,到处都会被安利Redis,吓得只会mysql和oracle的我,赶紧去get一波.. 数据库种类 关 ...
- 目前大热的AI和SLAM的职业发展的想法
目前,AI的研究和SLAM的发展已经走到使用领域.还记得三年前,上<信息光学>的老师在课上提到,他有一个研究生买了一个两万块的笔记本,还要出国去研究人工智能,当时听着认为这位学长很疯狂.可 ...
- 深入解析当下大热的前后端分离组件django-rest_framework系列三
三剑客之认证.权限与频率组件 认证组件 局部视图认证 在app01.service.auth.py: class Authentication(BaseAuthentication): def aut ...
- 深入解析当下大热的前后端分离组件django-rest_framework系列二
视图三部曲 一部曲 · 使用混合(mixins) 上一节的视图部分: from rest_framework.views import APIView from rest_framework.resp ...
- AJ学IOS(15)UI之曾经大热的打砖块小游戏
AJ分享,必须精品 先看效果图 代码 // ViewController.m // 打砖块 // // Created by liufan on 13-8-17. // Copyright (c) 2 ...
随机推荐
- Nginx负载均衡设置max_fails和fail_timeout
在Nginx的负载均衡检查模块中,对于负载均衡的节点可以配置如下可选参数: max_fails=1 fail_timeout=10s 这个是Nginx在负载均衡功能中,用于判断后端节点状态,所用到两个 ...
- Exporter介绍
Exporter是什么 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如下所示,Prometheus通过轮 ...
- Readsh中文版初始设置
B站视频教程网址:https://space.bilibili.com/630285695/video 安装成功后,打开浏览器输入http://ip:5000如果出现如下画面,即告安装成功. 初始设置 ...
- ofd格式文件转换成pdf格式的方法
ofd格式文件很多人还比较陌生,很多人接收到文件都不知如何打开阅读,把文件发给对方,还需要对方安装个专门的阅读软件,我们还有另一个办法,就是将OFD文件转换为PDF格式文件,然后把PDF格式文件发给对 ...
- NSIS隐藏窗口标题栏自带的按钮(最大化,最小化,关闭X)
这个问题实在八月份逛csdn论坛的时候偶然遇到的,当时比较好奇楼主为啥要隐藏关闭按钮,就顺口问了下,结果楼主已经弃楼,未给出原因,猜着可能是为了做自定义页面美化,无法改变按纽外观之类的,后来琢磨了下, ...
- POJ3417 Network暗的连锁 (树上差分)
树上的边差分,x++,y++,lca(x,y)-=2. m条边可以看做将树上的一部分边覆盖,就用差分,x=1,表示x与fa(x)之间的边被覆盖一次,m次处理后跑一遍dfs统计子树和,每个节点子树和va ...
- Js实现一键复制小功能
function copyToClipboard(textToCopy) { // navigator clipboard 需要https等安全上下文 if (navigator.clipboard ...
- VLQ & Base64 VLQ 编码方式的原理及代码实现
目录 VLQ Base64 VLQ VLQ VLQ (Variable-length quantity)是一种通用的,使用任意位数的二进制来表示一个任意大的数字的一种编码方式. 编码实现: ** 对数 ...
- springboot+vue 实现校园二手商城(毕业设计一)
1.功能划分 2.实现的效果 2.1 登录页面 2.2 注册页面 2.3 商城首页 2.4 商品详情 2.5 购物车 2.6 订单 2.7 在线交流 2.8 公告信息 2.9 个人信息 3.后台管理界 ...
- 配置文件yaml和ini
前言 本文主要介绍配置文件yaml和ini的读取. 一.yaml文件 YAML是一个可读性高,易于理解,用来表达数据序列化的格式.语法与python的语法类似.文件后缀 .yaml 下面是yaml文 ...