我为什么坚持写sqltoy-orm开源框架

开源地址:

github: https://github.com/chenrenfei/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可在market直接检索sqltoy安装): https://gitee.com/threefish/sqltoy-idea-plugins

开源项目大致有3种:

1、范例性演示开源,帮助别人快速学会一些技能。

2、小工具型开源项目,帮助用户在特定场景下快速解决问题。

3、大型或基础核心型开源框架

而sqltoy-orm则目标是代替hibernate和mybatis,属于基础核心框架,一旦使用对项目影响深远,甚至说影响项目的整个生命周期!所以说这类开源是需要极其慎重的!

个人并不鼓励做这一类开源项目,主要原因:

1、开源其实是一个极端苦逼的活,强调奉献并忍受各种冷言冷语,还要负责各种解答!

2、国内开源环境氛围极差,没有这种开源文化,如果想靠开源生活饿死在街头都没有人问你!

3、大多数国人都是索取型的,用的好未必夸你一下,甚至连点个赞假装鼓励你让你继续卖力的意思都没有。你需要不断的给自己打气,做好充当“傻子”的准备。

4、一定要做好分析,形成足够的优势和亮点,尤其类似于hibernate、mybatis、jooq这种形成事实垄断的环境下,所有用户已经被驯化、各种项目既成事实,更换框架都是政治问题!

那你为什么开源sqltoy-orm呢?

1、我们先分析hibernate、mybatis、jooq的生态以及目前市场上各种orm,他们基本上都存在两极化特征。国内的一些开源有时候更是极端化,甚至丧失了基本的理念,有的都体现出宗教式的色彩,见到xml就反对,甚至以用markdown或者模板引擎为自豪,新东西一个都没有,还是jpa+jooq+mybatis的一套!

2、国外项目不会有国内项目那么夸张,所以jooq、hibernate/jpa 在国外是够用的,因为这些框架提供了自定义sql的功能。

3、sqltoy则是在认同jpa这种模式的基础上做一些必要的补充优化,重点则针对国内项目查询较多、项目过程又不想过多做ETL,变化还比较频繁、性能慢了还要挨骂等特征,强化查询,用最小的代价实现性能的提升。

4、sqltoy最大程度肯定国外的先进成果,理性分析各种技术的场景,结合jpa+jpa特定场景的小补充+超级查询,针对不同场景采取不同策略,不片面强调代码中解决一切(jooq这种复杂查询也对象链式查询),也不绝对化sql(简单的查询可以对象链式)。

5、我相信sqltoy可以突出重围,因为到了一定阶段你会发现查询才是最苦逼的事情,你难道没有发现无论选择哪个框架其实增删改和简单查询大家都没有多大差距吗?

6、sqltoy是神来之笔,无论是极简的动态sql组织、缓存翻译、分页优化、数据旋转、同比环比等都不是我刻意而为,太多都是面对极为复杂的场景几乎在绝望的关头抓住一闪而过的灵感形成的!我觉得我应该分享给大家,而不是独享这份成果!

7、已经有不少项目在使用sqltoy,我觉得有必要进一步完善它,让大家放心使用!

8、其实sqltoy代表未来的方向,知道现在流行什么吗?低代码实施!你知道sqltoy在目前的报表平台以及我们的rainbow(快速接口配置服务)平台就是靠配置化来完成的!