我的梦想是后端都不用写 curd,正在开发能大幅度减低 curd 甚至让前端来写 curd 的框架,希望大家多多关注与支持

2019-03-03 11:19:37 +08:00
 qiuxiaojie

经历了从模板渲染到前后端分离的时代,一直在苦苦思考,怎么样才能少干点活(大笑).在某天与前端对接接口时,突然顿悟,既然数据都是从 json 回去的,为什么不能直接使用类似 json 这样的语法来查询呢.在大胆的设想下,设计并实现了一套查询语法,给它起名为 orql(Object Relational Query Language 关系对象查询语言缩写).

就以 V2EX 举例说明一下它的用法

查询首页帖子列表,包括帖子标题 发布时间 回复数量 发帖人名称和头像以及节点名称:query post: [id, title, createAt, commentNum, user: {id, name, avatar}, node: {id, name}].

查看某帖子,包括帖子标题 内容 回复和回复人信息:query post(id = $id): [*, comments: [id, content, createAt, user: {id, name, avatar}], user: {id, name, avatar}]

发布一个帖子:add post: {title, content, user}

当然还支持其他的操作 update delete count 等,在模型方面支持 1:1 1:N N:M N:M 关联,更多的用法也可以通过在 github 中查看 https://github.com/orql/orql-mapper .如有兴趣者可以私聊,加微信大家交流,希望大家可以点一个 star 支持.

我的梦想是做一个可以让编程也自动化的程序员,擅长代码抽象和生成,希望有共同兴趣的人大家能一起交流.

10079 次点击
所在节点    Node.js
121 条回复
binux
2019-03-03 11:21:18 +08:00
GraphQL
qiuxiaojie
2019-03-03 11:23:22 +08:00
@binux 是的呢,在写的时候也参考了 graphql,做了一些简化
Tomotoes
2019-03-03 11:25:31 +08:00
GraphQL
apijson
你可以去 Github 上看一下
和你的需求很像
0ZXYDDu796nVCFxq
2019-03-03 11:27:29 +08:00
每个注册用户分配一个 MySQL 账号就行了
没有中间商赚差价,DBA: 前端后端你们都失业了,让我来
xianxiaobo
2019-03-03 11:27:51 +08:00
之前有个人天天打广告推荐 apiJson,跟你的想法一模一样,你跟他讨论一下?
qiuxiaojie
2019-03-03 11:28:53 +08:00
@Tomotoes 是的,你可以比较一下与它们的门槛或者语法简洁度,我的更胜一筹(自信脸)
alamaya
2019-03-03 11:29:30 +08:00
后端不用写 CRUD,那感觉大部分后端都可以下岗了
Cooky
2019-03-03 11:29:40 +08:00
你的梦想 = 失业(
qiuxiaojie
2019-03-03 11:29:41 +08:00
@gstqc 正在计划在这个基础上开发一个 baas 系统
lihongjie0209
2019-03-03 11:33:10 +08:00
一个软件是复杂度守恒的,你后端简单了, 那么前端的复杂度就增加了。
随便说几个问题:
事务怎么控制?
后续需要拓展怎么办?添加一个帖子的时候同时建立搜索索引?
改一个 BUG 前端发一个版本?小程序, 安卓,IOS 怎么办?
limingjie138
2019-03-03 11:35:08 +08:00
还没实习的我即将感受到失业的压力
winglight2016
2019-03-03 11:36:04 +08:00
这想法太多重复了,做出成品的也有很多,发展到很大然后倒掉的也有,比如:parse-server。前端、后端、前后端、纯配置、配置加代码生成、拖拽 UI、拖拽 SQL,我都试过了,最终结论是,并不能省下多少时间,除非你的项目全部就是 CRUD,只要还想跟别的 feature 集成,那就准备好填坑吧
qiuxiaojie
2019-03-03 11:36:57 +08:00
@lihongjie0209 在我自己的项目应用中目前来说,api 还是在后端,事务有默认查询不走,其他走,或者用调用函数来控制事务.复杂需求另外编写函数实现即可,一般来说一个项目中只有不到 5%的 api 需要另行编写函数支持.
bumz
2019-03-03 11:37:10 +08:00
每当新技术出来的时候,都有失业论云云,然而事实往往是新技术导致对人力资源的需求反而增加了
qiuxiaojie
2019-03-03 11:40:37 +08:00
@winglight2016 没有往可视化这方面,目前项目都是通过将这个作为 orm 来使用,但是后端云化和轻量化是一个必然的趋势
sunorg
2019-03-03 11:43:01 +08:00
脚手架概念了解一下,连界面都生成了
php01
2019-03-03 11:44:46 +08:00
要有多简单,就有多复杂
msg7086
2019-03-03 11:47:45 +08:00
后端拿掉就等于没有了后端权限控制,拿到 ORM 就等于可以往数据库里随意写数据了。不知道这个怎么解决。
Junn
2019-03-03 11:48:48 +08:00
某天,“ XXX,没什么事,学一下前端,看前端最近挺忙的,到时候可以帮一下!”
Cbdy
2019-03-03 11:48:59 +08:00
小心成为 IT 民科

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/540508

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX