【腾讯犀牛鸟开源人才培养计划】开始啦!加入我们开源共建吧~
TommyLemon opened this issue · 2 comments
腾讯犀牛鸟开源人才培养计划
Tencent Rhino-bird Open-source Training Program
为响应国家十四五规划的开源战略,腾讯于2021年5月发布“首届腾讯犀牛鸟开源人才培养计划”,希望企业界和教育界形成合力,打造面向高校学生的开源课程和开源实践培养方案,培育开源人才,普及开源文化,助力开源人才生态的发展。
首届项目由教育部计算机教学指导委员会、教育部软件工程教学指导委员会、**信息通信研究院作为联合指导单位,包括开源基础培训、开源进阶研学、开源项目实战三个环节,项目涉及云原生、微服务、容器、AI、大数据、前端、物联网/边缘计算等多项技术热点。
各位同学报名即可参加线上开源系列课程,学习开源知识,对话学界及产业界大咖。其中入选开源项目实战的学生将在导师的一对一指导下,利用暑假开展编程实战,并有机会获得腾讯开源贡献者证书(目前全球只发出了10+张)。
更多项目信息请看官网:https://opensource.tencent.com/summer-of-code
项目简介
APIJSON 是后端的一个零代码接口和文档 ORM 库,赋能前端(客户端)定制返回JSON的数据和结构。可大幅提振开发效率、强力杜绝联调扯皮、巧妙规避文档缺陷、非常节省流量带宽等。
荣获腾讯 IEG 开源协同奖、开源** GVP 奖等,目前 GitHub 1W+ Star 在腾讯所有后端项目中 Star 第一,在 Java 语言排名前 150
远超 BAT, FLAG 等国内外各大公司的大部分开源项目。曾连续两天登顶 GitHub Java 周榜,在国内外 350W Java 项目中排名第一。
腾讯内部用户包含互娱、音乐、云与智慧,外部用户包含 500 强上市公司、数千亿资本国企等。
APIJSON 中文官网:http://apijson.cn
APIJSON 项目主页:https://github.com/Tencent/APIJSON
APIJSON说明文档:
https://github.com/Tencent/APIJSON/blob/master/%E8%AF%A6%E7%BB%86%E7%9A%84%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
项目导师
周作彪,APIJSON, ZBLibrary等热门开源项目的作者、开源布道师
https://github.com/TommyLemon
导师寄语
APIJSON 是一个业内颇具影响力的后端知名热门项目,企业案例丰富、应用场景广泛、腾讯内外获得多个奖项和多次受邀演讲,
这个零代码接口和文档 ORM 库随着 Serverless 的兴起会越来越重要。学习和使用这个前沿技术,不仅能提升自己与时俱进,
还可以作为参与腾讯开源的一个切入点,为日后的工作打下坚实基础。
编程任务(任选一个)
1.完善入门介绍视频(清晰展示对应的操作步骤,从下载源码到跑起来项目完成接口测试,可参考宣传视频)
https://lexiangla.com/teams/k100046/classes/a4eba9f4b6d711eba2ec268dd73d15f1?type=0&company_from=79350bd4d06911ea91f05254002f1020
2.接入 presto/hive/clickhouse/db2 任意一个(能跑起来项目进行接口测试,起码简单的分页排序搜索等查询功能可用)
https://github.com/Tencent/APIJSON#%E8%A7%84%E5%88%92%E5%8F%8A%E8%B7%AF%E7%BA%BF%E5%9B%BE
理论上所有支持 SQL 与 JDBC/ODBC 的软件,都可以用本项目对接 CRUD,待测试:
ClickHouse, Hive(延伸支持 Hadoop, Spark), DB2, Presto
可依赖它们的 JDBC 驱动(jar/maven/gradle 方式都行)并在 DemoSQLConfig 中配置,参考以下步骤
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
及对应的 Demo(建议用最简单的初级上手 Demo 项目 APIJSONDemo)
https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONDemo/pom.xml
贡献方式
GitHub 上为 APIJSON 提交 Pull Request,具体见
https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md
原文见 #2021Tencent Rhino-bird Open-source Training Program—APIJSON#
Tencent/OpenSourceTalent#2
问题答疑
1. 学习和使用 APIJSON 需要了解哪些相关的知识?
需要了解 MySQL/PostgreSQL 或其它数据库的安装、建表、记录数据写入,Java IDE(InteliJ IDEA 或 Eclipse) 的安装,JDBC 驱动的接入(maven 或 jar 依赖)
https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONDemo/pom.xml
2. 接入不同数据库时,是否需要修改相关源码?
如果在业务项目(假设为 APIJSONDemo)则需要引入 maven/jar 依赖,并修改 DemoSQLConfig.java 的源码来配置数据库。
如果在 APIJSON 生成的 SQL 后出现不兼容该数据库 SQL 语法,则需要改 AbstractSQLConfig.java 的源码。
3. APIJSON 源码需要掌握到什么程度?
能够修改 APIJSONDemo 的源码,及 APIJSON AbstractSQLConfig.java 关于 JSON 转 SQL 的过程,可以参考用户写的源码解析
https://github.com/rainboy-learn/apijson-learn
例如对接 DB2 最主要的是部署数据库,接入对应的 JDBC 把它跑起来,可以使用最简单的 Demo 来修改
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
AbstractSQLConfig.java 中 JSON 转 SQL 应该只需要把 分页 语法调整下就可以兼容低版本,
可以参考有个开发者贡献的 Oracle 分页语法(修改了 getSQL 和 getLimitString,使用 ROWNUM 和子查询)
08a3125
AbstractSQLConfig.java 中 getQuote 为字段名引号,MySQL 用的是反引号 `id` , PostgreSQL/SQLServer/Oracle 都是双引号 "id",
如果字段名和数据库关键词没有冲突,可以直接 return ""; 即不使用引号,对于大部分数据库也都没问题。
QECon 全球软件质量&效能大会分享 零代码开发和测试(APIJSON 和 APIAuto)
从包括 BAT、字节、京东、华为等几十个专家和架构师的分享中脱颖而出,
和主会场华为云副总裁等大佬的分享被 QECon 大会主办方一块先放了出来
现场录播回放视频:QECon大会-零代码开发和测试(APIJSON和APIAuto)
https://www.bilibili.com/video/BV1yv411p7Y4