很多的后端CRUD开发任务都是毫无意义的, 如果使用firebase/supabase/pocketbase这些工具快速应付这些任务才是重要的.

如果是一位研究生, 在面对导师的垃圾横向的时候, 这种工具会起到很好的帮助.(我们的目的是让代码可以正常运行)

如果希望快速开发DEMO, 展示项目效果也可以使用.

面对全栈开发者, 我想学***xbase是很好的一个提升效率的过程.

supabase

由微软开源的firebase替代方案, 项目地址是 https://github.com/supabase/supabase/

采用typescript编写实现, 支持的SDK种类丰富, 稳定适合企业使用. 功能稳定, 文档丰富.

pocketbase

由非盈利开发, 使用GO编写的, 项目地址 https://github.com/pocketbase/pocketbase/ . 核心是单个文件实现需要的后端CRUD功能(也就是简单易用, 但是面对大项目可能存在问题)

这已经是一个拥有40+k stars的项目, 具有规模

数据集采用sqlite(并且没有计划适配别的数据库)

  • 目前支持的SDK较少, 只有JS和Dart的支持.
  • 模板版本还是0.xxx, 还没有到1.0正式版本, 也就是说, 功能不够稳定, 不适合企业使用.

使用pocketbase解决CRUD任务

pocketbase的核心是一个可执行文件使用全部功能, 小巧(但是目前还没有稳定版本, 所以谨慎使用, 目前不适合生产环境)

即使是docker image也只有50MB大小

构建镜像

使用docker build -t pocketbase .构建镜像

FROM alpine:latest

ARG PB_VERSION=0.26.6

RUN apk add --no-cache \
unzip \
ca-certificates # download and unzip PocketBase
ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip
RUN unzip /tmp/pb.zip -d /pb/ # uncomment to copy the local pb_migrations dir into the image
# COPY ./pb_migrations /pb/pb_migrations # uncomment to copy the local pb_hooks dir into the image
# COPY ./pb_hooks /pb/pb_hooks EXPOSE 8080 # start PocketBase
CMD ["/pb/pocketbase", "serve", "--http=0.0.0.0:8080"]

这是官方提供的dockerfile, 可以去官方的文档里面查看

运行

使用docker run -it --rm -p 8080:8080 pocketbase:latest运行项目

注册管理员

点击日志中出现的网址, 注册对应的管理员账号

注册成功之后会自动跳转管理界面

目前在管理用户界面, 不存在用户

创建用户

在管理面板就可以创建用户.

使用SDK

注册用户

这里使用JS的SDK为例子进行演示.

import PocketBase from 'pocketbase';

const pb = new PocketBase('http://0.0.0.0:8080');

// example create data
const data = {
"password": "12345678",
"passwordConfirm": "12345678",
"email": "test@example.com",
"name": "test"
}; const record = await pb.collection('users').create(data); // (optional) send an email verification request
// await pb.collection('users').requestVerification('test@example.com');

注册用户的本质是增加一个新的记录

成功增加一个

登陆

为什么需要登陆? 因为有些操作需要在鉴权的基础上进行.(例如对于用户的查询操作)

import PocketBase from 'pocketbase';

const pb = new PocketBase('http://0.0.0.0:8080');

...

const authData = await pb.collection('users').authWithPassword(
'YOUR_EMAIL',
'YOUR_PASSWORD',
); // after the above you can also access the auth data from the authStore
console.log(pb.authStore.isValid);
console.log(pb.authStore.token);
console.log(pb.authStore.record.id); // "logout"
pb.authStore.clear();

查询

以下是一个针对用户的查询操作

  • 注意这个操作需要先登陆用户.
// fetch a paginated records list
const resultList = await pb.collection('users').getList(1, 30, {
filter: 'name="test"',
}); console.log(resultList);



查询成功

这就是数据表的规则

可以设置仅超级用户可用

更新和删除

都需要使用record id进行操作.

使用supabase解决CRUD任务

这里使用supabase作为样例来解决增删查改的任务, 因为supabase生态完善, 功能稳定, 更加适合.

  • 开摆了, supabase是怎么做到光代码就有1G的, 我都不敢想下载了node_modules黑洞之后会变成什么样, 有那么一点点歧视TS后端了.

总结

针对简单的CRUD任务, 并且如果只需要能跑, 这是真的好用.

FQ&A

Q: 使用这些工具进行开发的时候, 开发的自由度是否存在问题?

A: 明显存在问题, 但是, 自由度换来了90%任务开发的便捷

Q: 是否存在性能问题? 例如supabse是使用TS编写的后端服务.

A: 首先, 一般项目不会面对高并发的场景, QPS撑死不超过10的情况下, 性能问题无关紧要, 开发便捷才重要, 先完成任务. 实际上也不存在性能问题, 这些工具由各位大佬实现, 面对绝大多数场景不存在性能问题.(性能问题不重要)

使用xxxbase应付CRUD后端任务的更多相关文章

  1. 【Netcore】使用 Magic生成器 ,零代码实现CRUD - HTTP REST 之接口

    软件介绍: Magic是一个CRUD后端生成器,内置于ASP.NET内核中.它的目的是让你“神奇地”做一些无聊的事情,通过使用自动化技术,创建80%的CRUD端点,自动包装MySQL或MS SQL S ...

  2. Elemen ui&表单 、CRUD、安装

    ElementUI表单 Form表单,每一个表单域是由一个form-item组件构成的,表单域中可以放置各种类型的表单控键,有input.switch.checkbox 表单的绑定form 内容分别是 ...

  3. AppFuse3.5对接oracle数据库

    AppFuse是一个使用Java语言开发web应用系统的集成框架.java开发人员最头痛的事情就是面对大量的框架不知该如何选择.这些框架性能如何,兼容性如何等等都需要筛选比较.Appfuse作者Mat ...

  4. 一系列令人敬畏的.NET核心库,工具,框架和软件

    内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...

  5. Github上优秀的.NET Core项目

    Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:htt ...

  6. 【转载】Github上优秀的.NET Core项目

    Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...

  7. Github上优秀的.NET Core开源项目的集合

    内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/ ...

  8. 若依管理系统RuoYi-Vue(三):代码生成器原理和实战

    历史文章 若依管理系统RuoYi-Vue(一):项目启动和菜单创建 若依管理系统RuoYi-Vue(二):权限系统设计详解 本篇文章将会讲解ruoyi-vue系统下代码生成器的使用.原理分析以及将这部 ...

  9. 前后端分离crud(跨域问题)讲解

    1 前后端分离 1.1 后端 ssm+maven 多模块 swagger 文档描述(代码拷贝过来,就可以生成了,https://www.cnblogs.com/wings-xh/p/11991511. ...

  10. Web前后端分离开发(CRUD)及其演变概括

    今天学习了前后端分离开发模式又从网上查了一些资料就写了一篇博客分享: 一.为什么分离前后端 1.1早期开发 1.2后段为主mvc模式 1.2.1Structs框架介绍 1.2.2Spring mcv开 ...

随机推荐

  1. VuePress 博客搭建系列 33 篇正式完结!

    前言 VuePress 博客搭建系列是我写的第 6 个系列文章,前 5 个系列分别是 JavaScript 深入系列,JavaScript 专题系列.underscore 系列.ES6 系列.Type ...

  2. Q:oracle如何查询表和视图的等修改时间和创建时间?

    要查询表的修改时间,可以使用以下SQL语句: SELECT object_name, object_type, created, last_ddl_time FROM user_objects WHE ...

  3. iceberg调研-查询Iceberg表流程

    1.查询表结构 show create table data_lake_ods.dws_service_subclazz_lesson_user_learn_stat_rt_v2 CREATE TAB ...

  4. JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的?

    JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的? 最近要做一个项目升级,因为之前的项目中有用到ElasticSearch 7.10.1版本,在之前的漏扫环节时会出现Tomcat渗透为问题 ...

  5. kvm virtio window server2003

    https://www.linux-kvm.org/page/Downloads 这是kvm官网对virtio讲解 http://www.linux-kvm.org/images/d/dd/KvmFo ...

  6. 本地一键运行大模型神器Ollama + DeepSeek R1尝鲜指南

    本地一键运行大模型神器Ollama + DeepSeek R1尝鲜指南 作为AI领域的弄潮儿,你是否苦恼于云端大模型API的高昂成本?想在本机零门槛体验顶尖开源模型?这篇保姆级教程将带你解锁「Olla ...

  7. Python - 程序体验

    CASE:输入某年某月某日,判断这一天是这一年的第几天? # 输入某年某月某日, 判断这一天是这一年的第几天? import datetime dtstr = input('Enter the dat ...

  8. C#/.NET/.NET Core技术前沿周刊 | 第 27 期(2025年2.17-2.23)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  9. 【论文随笔】基于会话的推荐系统构建方法调查(Survey On Methods For Building Session-Based Recommender Systems)

    前言 今天读的论文为一篇于2023年发表在国际开放信息技术杂志(International Journal of Open Information Technologies)的论文,文章是关于构建基于 ...

  10. JSON驱动的vue可视化表单设计器组件

    form-create-designer 是基于 @form-create/element-ui 实现的表单设计器组件.可以通过拖拽的方式快速创建表单,轻松帮你搞定表单. 源码地址: Github | ...