如何理性看待国内大热的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 ...
随机推荐
- git commit 规范
- centos下如何获取某个命令的源代码?
以ls命令为例,其它命令类似: 1.利用which命令获取命令可执行文件的位置: [root@228 /]# which ls alias ls='ls --color=auto' /usr/bin/ ...
- Java后端开发——美团(牛客)
Java后端开发--美团(牛客) Java的基本数据类型,各自的字节数 老生常谈,不多说了. 类型 字节数 byte 1字节 short 2字节 int 4字节 long 8字节 float 4字 ...
- SQL Server复制的阶梯
SQL Server复制的阶梯:第1级 - SQL Server复制简介 本翻译文章来自作者:Sebastian Meine, 2012年12月26日 该系列 本文是Stairway系列的一部分:SQ ...
- Codeforces Round #708 (Div. 2)
A题被hack,A题很简单,其实题目没看懂,直接看样例做的. B题题意是以为懂了,但是样例一直看不懂. 经验:要两两相加能被一个m整除数组sum最少,利用他们的余数就可以设为a[x], x是余数,如果 ...
- AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)
AgileBoot是笔者在业余时间基于ruoyi改造优化的前后端全栈项目. 关于AgileBoot的详细介绍:https://www.cnblogs.com/valarchie/p/16777336. ...
- 齐博x1细节优化,自定义二、三、四维字段支持自定描述
如下图所示,之前自定义字估中的二.三.四维字段,不支持自定义描述,导致用户输入的时候,不知道该输入什么信息内容.只有站长自己才知道. 现在支持自定义描述,及设置文本或数字.方便引导用户输入相应的信息内 ...
- 齐博x1当前URL标签
当前URL标签 {:get_url('location')} 当前URL的二维码标签 {:urls('index/qrcode/index')}?url={:urlencode(get_url('lo ...
- 通过tkinter列出全部字体名称
通过tkinter列出windows系统全部字体名称 通过 tkinter.font 的 families() 函数实现 import tkinter import tkinter.font # 把p ...
- go基础语法50问,来看看你的go基础合格了吗?
目录 1.使用值为 nil 的 slice.map会发生啥 2.访问 map 中的 key,需要注意啥 3.string 类型的值可以修改吗 4.switch 中如何强制执行下一个 case 代码块 ...