[最多推荐]警惕挂着开源的招牌到处坑蒙拐骗的垃圾项目,比如iBas
开源界,本是技术爱好者百花齐放、各显其能的地方。但是,不管什么好东西,到了这块奇葩的土地都能变了味。现在的开源界,真的是鱼龙混杂,有些开源软件,不知道是噱头喊得高,还是star刷得好,竟能凭借一身垃圾代码招摇撞骗,误人子弟。垃圾不扫,这世界只能越来越臭。以iBase4J为例,我来给大家分析一下,让大家提高警惕,尤其是编程新手,不要上了贼船,免得抱撼终身。
1. iBase4J是什么东西
iBase4J,作者自称是一个JAVA
(原文如此)分布式快速开发平台。项目的Github地址是https://github.com/iBase4J/iBase4J。截至本文的撰写时间(2018年7月3日,自由日前夕),该项目已有943个Star。在码云https://gitee.com/iBase4J/iBase4J上,该项目甚至有6422个Star,而且竟然是GVP(码云最有价值开源项目),这就是所谓鸡犬升天?
项目的官方介绍:
JAVA分布式快速开发平台:Spring,SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。SpringBoot版本:https://github.com/iBase4J/iBase4J-SpringBoot http://gitee.com/signup?inviter=iBase2J
2. 我与iBase4J的渊源
话说,我本不是什么路见不平,拔刀相助的侠客,而是鲁迅笔下的一个小小的看客。对于这种垃圾项目,敬而远之对我来说本是最佳选择。但是,自称iBase4J原作者的"万明"欠了我五千多的工资不发(如此如此,这般这般),就跟我结下了梁子。
iBase4J的作者叫“沈华杰”,河南人,万明(南充巴蜀文化传媒)的小弟。万明曾向我得意地说他才是iBase4J的原作者。我在这家公司负责前后端接口调试,后端是沈华杰用他的iBase4J写的。我被克扣工资愤而离职后,万明借口我什么都没做,交接工作没做好(我写了1万字以上的交接文档,能讲的都讲了,万明说新同事看了我的文档完全看不懂,接手不了,我调试过的接口全部都重写了(服,接口不都是你家沈华杰写的?我只是来调试和维护的)),不发工资,而且是一毛不发。
狼狈为奸者,一路货色也。当初维护iBase4J写的项目,搞得我焦头烂额。现在正好记录一下,让大家共赏。
3. 从项目主页看起
首先,JAVA
四个字母用的是全大写。众所周知,Java 名字的由来是印尼的爪哇岛,是地名,不是词组的简写。作为一个合格的 Java 程序员,对于给了咱饭碗的 Java 语言,至少要尊重人家的名字吧。全大写的 JAVA
,由一个 Java 程序员拼写出来,完全是不伦不类。
然后,看 README 中的这句话
持久层:mybatis持久化,使用MyBatis-Plus优化,减少sql开发量;aop切换数据库实现读写分离。Transtraction注解事务。
文法内容先略过不表。单说Transtraction
,英文中完全没有这个词汇。事务,作为数据库的核心概念之一,相信程序员们对于这个词都熟悉得很。我当然也不例外,当初打开这个项目主页,一眼就瞅到这个不三不四的单词,二话没说Fork下来改正拼写,然后提交Pull request
。我好心好意帮你修正这低级错误,为了不伤你自尊,提交信息我还是用的纯英文的Update readme.md
。结果,到现在都没改过来。没有任何反馈,就在二十多天后悄悄把这个Pull request
给关了。
首页的其他地方也有槽点,不过我不是来找碴的,先架起项目再说。
4. 搭建环境与运行项目
iBase4J有SpringBoot版,是在另一个git仓库(https://github.com/iBase4J/iBase4J-SpringBoot)。既然有SpringBoot版,就优先使用SpringBoot版吧。
先查查文档怎么介绍的。结果只能在 README 里头找到这两句有点用的:
启动方法:
SysServiceApplication.java
SysWebApplication.java
具体的文档还需要加QQ群才能下载:
加入QQ群538240548
交流技术问题,下载项目文档和一键启动依赖服务工具。
既然没有文档,就直接导入IDE执行吧。
先把项目源码克隆到本地,再用 Jetbrains IDEA
打开。IDEA 会在后台自动下载 Maven 依赖。
依赖下载完成后,先启动 SysServiceApplication.java
,控制台一屏的报错。
先不说这报错,先看看日志的打印。SpringBoot默认情况下,打印的是彩色的日志,报错信息红色显示,十分醒目。但这个 ibase4J
放着 SpringBoot
精心设计好的日志格式不用,非要在 resources
目录创建一个 log4j2.xml
,打印了满屏的黑色。还有一堆乱码日志 [main] DEBUG [DefaultVFS:102] - Reader entry:
查看评论 回复