京东猎户座发布开源,配置化一键生成cms系统_猎户座管理系统-程序员宅基地

技术标签: 架构  猎户座  京东开源  

猎户座核心配置化功能开源啦!

在降本提效的大环境下,猎户座系统为了扩展更多应用场景,近期完成了第一阶段的开源工作。此次开源的代码内容涉及两个代码库,内容为CCMS管理系统核心配置化功能以及包含表格列与表单项在内的常用组件。   
    配置化核心业务逻辑(开源地址
    UI实现代码库(开源地址

 

希望通过开源吸引更多贡献者参与共建,完善对各类表单项、列表项的展示、校验需求的覆盖,促进产品的长期发展。收集Issue以及社区的反馈,不断优化功能的同时全面掌握用户诉求。

开源介绍
1、简介
猎户座是一套完善、通用的可配置化中后台一站式解决平台,包含快速创建系统、可视化搭建、配置界面、权限控制等能力。本次开源内容为核心配置化功能(CCMS),通过配置化自动生成中后台(CMS)界面,可将内容管理系统页面抽象为若干API进行流转,并对后台API的请求按照逻辑类型划分为表单提交、列表展示、查询数据等,通过JSON描述各API请求的接口信息以及常见校验和简单逻辑,动态渲染前端页面,最终实现零开发搭建内容管理系统。
 
2、特点
通过配置文件自动生成CMS后台管理界面。  
1.核心配置化功能包含5种步骤,超过15种包含表格列与表单项在内的各种组件等内容。   
2.通过组合式配置步骤。可覆盖16种以上不同中后台系统功能与页面交互形式。   
3.规范:面向对象的方式对基类统一管理;项目目录与代码统一标准化、规范化。   
4.文档:提供了完善的使用文档(https://oriondoc.jd.com/),便于开发者参与贡献与快速使用。   
5.质量:核心组件的单元测试覆盖率达到100%,确保核心组件的开发质量。

 

3、架构
1)整体架构
基于猎户座接入的业务应用场景,以用户为中心,进行调研,收集实际的业务需求,扩展项目的功能。主要目的是让产品配置更灵活、更便捷、易上手、功能覆盖更全面。我们首先对整体架构进行分层。下图是开源代码的整体架构思路
2)组件设计
以面向对象的方式在基类实现业务逻辑,通过继承基类实现UI的快速切换和接入。
 
3)数据流转
每个页面步骤提供对输入、输出数据的传输与存储,在不同页面步骤中实现各自的业务逻辑。最终在页面中通过对步骤排列组合实现完整的业务功能。
 
4)无缝对接外部系统
以中间件的形式抽离权限配置,配置文件存储,UI框架等模块实现在不同系统间的快速切换。
 
4、接入与使用
完整demo可参照(http://coding.jd.com/publicdemo/ccms-demo/)   
 
快速使用:安装`ccms` 和`ccms-antd`
 
npm install ccms-antd ccms
 
在项目中引入和及配置
```
import { CCMS } from 'ccms-antd';
 
const App = () => (
<>
  <CCMS
   checkPageAuth={async () => true}
   loadPageURL={async (id) => `/url?id=${id}&type=page`}
   loadPageFrameURL={async (id) => `/url?id=${id}&type=open`}
   // 界面操作更新CCMS config
   loadPageConfig={async (page) => newConfig }
   sourceData={ {}}
   callback={() => {
    if (window.history.length > 1) {
     window.history.back()
    } else {
     window.close()
    }
   }}
   //config的demo 详见api文档
   config={config}
  />
</>
);
```

用户反馈
如有任何疑问与产品功能建议,欢迎与我们交流与反馈。     
也期待研发同事加入我们一起共建。1022076494(咚咚群)

猎户座系列文章  
——  京东零售-平台业务中心-平台业务研发部-基础业务研发部  ——
 
 
 
 
 
 
 
 
 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tianyaleixiaowu/article/details/115752780

智能推荐

Linux常见基本指令合集及其效果展示_linux 展示-程序员宅基地

文章浏览阅读268次,点赞2次,收藏6次。首先先问大家一个问题:在磁盘上建一个空文件,这个文件会占据磁盘的储存空间吗?实践出真知,我们发现新建一个文本文档,它的大小是0kB,这时有小伙伴就会认为既然它的大小是0KB,那么它当然也就不会占用磁盘空间咯。然而真的是这样吗?我们打开这个文件的属性来一探究竟:我们发现系统不仅记录了这个空文件的大小,同时还有它的文件名、文件类型、所在位置、创建时间等信息,难道这些信息不要占用系统空间吗,当然要!一个空文件同样会占用系统空间文件 = 文件内容 + 属性路径的本质就是这颗多叉树的搜索路径。_linux 展示

iTOP-3588开发板快速启动手册Windows安装串口终端调试串口常见问题(二)_windows 调试串口-程序员宅基地

文章浏览阅读140次,点赞10次,收藏3次。问题二:非旺玖原装PL2303,请联系供货商或PL2303TA不支持WINDOWS11及后续版本问题。进设备管理器,找到端口COM,有问题会提示“非旺玖原装的PL2303,请联系您的供货商”。更多内容可以B站搜索迅为RK3588开发板;2.4.2 驱动问题。_windows 调试串口

python怎么输出_Python如何输出整数-程序员宅基地

文章浏览阅读7.7k次。Python输出整数的方法:先使用str()函数将数字转换成字符串赋值给变量i,再用“if i.count('.') == 0”语句判断字符串中是否没有小数点,如果是则输出这个字符串,这样输出的数字就都是整数了示例代码如下:x = [23.5, 45.6, 987, 698, 123, 654]for i in x:i = str(i)if i.count('.') == 0:print(I)执行..._python的print整数

js中好用的方法(复制剪贴板、时间转换、大数字单位转换)_js 粘贴板时间-程序员宅基地

文章浏览阅读146次。js中好用的工具方法复制内容到手机剪贴板:/** * 拷贝数据到剪贴板 */ public static CopyToClipBoard(str){ let copyDom = document.createElement("input"); // 获得需要复制的内容 copyDom.setAttribute("value",str); //不需要让他displaynone // copyDom._js 粘贴板时间

FTP上传下载工具类_vsftp下载工具类-程序员宅基地

文章浏览阅读419次。记录一篇将图片等静态资源上传至vsftpd服务器的工具类package com.zhouym.baiwei.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.i..._vsftp下载工具类

php 得到ashx,ASP.NET-C# Post 一般处理程序(ashx)并得到返回值-程序员宅基地

文章浏览阅读166次。var postUrl = "http://xxx.com/xxp/LoginInfo.ashx";var postString = "method=CheckPW&id=4454556289&pwd=&checkword=8888&sign=";HttpWebRequest httpRequset = null;HttpWebResponse httpRespon..._ashx处理实现响应post请求示例代码

随便推点

UI自动化测试之5大常见问题(建议收藏)(1),2024年最新从青铜到王者的路线-程序员宅基地

文章浏览阅读722次,点赞10次,收藏19次。1)UFT即原来的QTP与ST合并而来,由HP公司开发,是一个企业级的商业自动化测试工具,提供了强大易用的录制回放功能,同时兼容对象识别模式与图像识别模式,支持B/S和C/S两种架构的软件测试;一款基于python语言编写的自动化测试框架工具,具备良好的扩展性,支持关键字驱动,支持多种类型的客户端和接口,可进行分布式测试;3)Selenium自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

Linux创建操作网桥的两种命令及持久化_bridge命令-程序员宅基地

文章浏览阅读1.4w次,点赞4次,收藏48次。1.基础介绍1.1 简述1.2 网桥配置命令及安装(CentOS系统)2. brctl和bridge命令建桥2.1 brctl命令说明及范式2.2 brctl场景使用2.3 bridge命令及范式3.ip命令建桥3.1 ip命令建桥说明4.桥的持久化1.基础介绍1.1 简述什么是网桥  网桥是一种在链路层实现中继,对帧进行转发的技术,根据MAC分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来的网络设备。它是Linux上用来做TCP/IP二层协议交._bridge命令

css3大全-程序员宅基地

文章浏览阅读153次。孔子曰:学而不思则罔,思而不学则殆。废话不多说,直接上。浅谈兼容css相较于js html来说,兼容性问题最不是事,CSS在最初设计时,就有一个协议:如果不能识别选择器属性,那么就默认不处理,不报错。这个也是CSS得以发展的非常重要的特征。下面是各个浏览器私有前缀:IE -ms-Chrome -webkit-Firefox -moz-Safari -webkit-..._css 文字后仰

Linux学习笔记 01 - Linux概况_linux 从哪个版本开始支持lvm-程序员宅基地

文章浏览阅读760次。一、操作系统的发展历程操作系统是用来=控制和管理系统资源、方便用户使用计算机的程序的集合,是人机交互的接口。大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。1. 服务器专用的 UNIX 操作系统UNIX 操作系统与1969年由美国贝尔实验室肯·汤普森(K.Thompson)和丹尼斯·麦卡利斯泰尔·里奇(D.M.Ritchie)开发完成,是真正意义上的多用户多任务操作系统。UNIX的商业版版本主要包括SUN公司(现被Oracle公司收购)的Solaris、IBM_linux 从哪个版本开始支持lvm

PS CS6安装过程中安装程序遇到错误(37).请重新启动计算机,然后重试._安装过程中安装程序遇到错误(37)。请重新启动计算机,然后重试。-程序员宅基地

文章浏览阅读2.6w次,点赞15次,收藏7次。解决方法:首先查看自己电脑是32位还是64位,计算机(我的电脑)——》右键“属性”——》系统“系统类型”。然后在自己的Photoshop安装目录找到下面对应的两个文件夹,删除即可。如果删除时提示没有系统管理员权限,可以下载一个超级文件粉碎机或者使用360文件粉碎强制删除 caps 和 oobe 文件夹。(32位系统需删除)C:\Program Files \Common Files\Ado..._安装过程中安装程序遇到错误(37)。请重新启动计算机,然后重试。

lintcode打劫房屋-程序员宅基地

文章浏览阅读310次。描述:假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。样例:给定 [3, 8, 4], 返回 8.

推荐文章

热门文章

相关标签