• cube.js 开发说明


    主要是关于如果进行cube.js 开发以及参与的(同时也可以方便的学习cube.js 项目结构)
    主要说明关于client && driver 的开发

    cube.js client

    • 流程
     
    1. clone 代码 yarn  && yarn lerna bootstrap 安装依赖
    2. 使用yarn link 添加包link
    3. 进行代码修改
    4. yarn build  构建 commonjs 以及umd 模块
    5. 使用yarn link @cubejs-client/core  或者yarn link @cubejs-client/react 到自己项目
    6. yarn test 
    • 快速命令
    cd packages/cubejs-client-core && yarn && yarn link && cd ../.. && cd packages/cubejs-client-react && yarn && yarn link && cd ../..

    cube.js server

    • 参考流程
    1. clone 代码 yarn  && yarn lerna bootstrap 安装依赖
    2. yarn tsc:watch 开发ts 的watch 编译
    3. packages 目录yarn link 需要的包
    4. 进行相关修改
    5. yarn link @cubejs-backend/cubejs-<pkg>
    6. yarn dev 启动测试(自己的创建的测试项目)

    实现driver

    • 参考流程
    1. copy 相关项目,比如mysql 的driver 实现,命名为@cubejs-backend/<db-name>-driver
    2. 不能copy changelog.md
    3. 命名驱动类以及readme.md 信息完善
    4. 推荐使用纯js 的依赖
    5. 典型的实现query 以及testConnection 其他的可以通过BaseDriver 类继承
    6. 如果需要连接池,可以实现`generic-pool` 其他语言包可以借鉴
    7. 确保驱动实现了`release` 确保资源的释放
    8. 使用yarn 进行依赖的管理
    9. 添加驱动的实现到packages/cubejs-server-core/src/core/DriverDependencies.js

    jdbc 驱动实现

    推荐参考cubejs-jdbc-driver/driver/JDBCDriver.js ,因为jdbc 的驱动还是比较规范的

    sql 方言实现

    • 参考流程
    1. @cubejs-backend/schema-compiler/adapter 找到可借鉴的参考实现
    2. copy && 调整自己的代码
    3. 添加`static dialectClass()` 到自己实现的需要返回BaseQuery 的驱动(不是必须的,实现了可以保证正确的sql 处理,否则使用默认的)
    比如druid 驱动就实现了

    参考

    const { BaseDriver } = require('@cubejs-backend/query-orchestrator');
    const FooQuery = require('./FooQuery');
     
    class FooDriver extends BaseDriver {
      // ...
      static dialectClass() {
        return FooQuery;
      }
    }

    schema compiler 测试

    文档上说的是基于docker 运行测试在packages/cubejs-schema-compiler 运行 npm test(依赖了testcontainers 进行真实db操作)

    cubejs-server-core 测试

    • 参考流程
    1. npx cubejs-cli create 创建项目
    2. 安装yarn (全局)
    3. link core `packages/cubejs-server-core` 包内执行yarn link
    4. link 依赖core 的包(driver 以及其他依赖)
    5. packages/cubejs-playground 中运行yarn build 
    6. 安装依赖 yarn
    7. link core 到自己的项目`yarn link @cubejs-backend/server-core`

    说明

    以上是一个参考说明,可以方便学习以及了解cube.js 的开发

    参考资料

    https://github.com/cube-js/cube.js/blob/master/CONTRIBUTING.md

  • 相关阅读:
    解决编程开发时候文件命名的苦恼(规范代码 提高可读性)
    react的this.setState没有触发render
    动态修改JS对象的值及React setState
    Antd Select组件结合使用出现must set key for <rc-animate> children问题
    antd Select进阶功能 动态更新、函数防抖
    前端性能优化之重排和重绘
    ES5 map循环一大坑:循环遍历竟然出现逗号!
    Monent.js:强大的日期处理类库
    Docker概览
    Spring boot 集成hessian
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14321619.html
Copyright © 2020-2023  润新知