当前位置: 首页 > news >正文

作业帮基于明道云开展的硬件业务数字化建设

在这里插入图片描述

今天由我代表作业帮来介绍公司在低代码平台应用的一些经验和心得。我今天分享的内容包含两部分,一个是作业帮硬件的介绍,另一个是基于明道云的系统能力建设,也是我们自己总结的经验,希望能给大家带来一些启发。

一、关于作业帮

作业帮成立于2014年,在整个业务周期至今,其实已经做了很多业务线。其中两个点是涉及到硬件部分:第一个是2018年,作业帮收购了喵喵机。喵喵机是一个以热敏打印机产品为切入点,切入到错题打印,也就是学生这个场景下的硬件产品。第二个是2021年,作业帮自己做了一套硬件产品生态。在2021年双减政策出台之后,作业帮更多地倾斜到硬件产品上。目前,作业帮以作业帮硬件和喵喵机作为硬件的双品牌战略。
在这里插入图片描述

二、需求背景

我们实际业务线是在2021年底才正式上线,面临两个比较大的问题。左边是我们的业务量,右边是我们的业务场景。大家能看到业务量是一个爆发式增长的状态。随着业务增长,我们需要做的系统支持的内容也会越来越多。所以就面临了这两个核心的业务问题,一个是高速增长,一个是场景膨胀。
在这里插入图片描述

三、基于明道云的业务系统能力建设

1.建设方案

基于这两个问题,我们其实一直在思考到底如何快速支持业务的发展,以及如何满足复杂的业务需求。在使用明道云低代码平台之前,我们主要有两种产品形态,一种是自研,另一种是SaaS服务。

但是低代码引入之后,我们面临了三个业务点。我们基于这三个业务场景做了一些分析:我们认为低代码更适用于产品的复杂程度不是特别高,并且需要有一个非常大的灵活属性的这种产品方向。然后SaaS的话,因为是行业内的比较标准的产品服务,经过了很多年的验证,我们认为可能更多地去满足复杂的业务场景。现在这个阶段,自研是一个非常高成本,但是能满足比较个性化需求的开发方式。
在这里插入图片描述

2.建设框架

我们画了一个四象限,把业务复杂度以及行业服务标准这两个坐标作为评估依据。基于复杂度低、无行业标准的这种场景,以及复杂度低、有行业标准,这两个场景下,还有一部分复杂度高、无行业标准的场景,用低代码建设,保证低代码的产品特性能充分发挥起来,解决高效、低成本做系统建设的能力。

剩下的是业务复杂度高,但是无行业标准的这部分,我们选择了自研。另一部分就是相对比较复杂的,比如说ERP、仓库管理系统,我们可能更多地用SaaS服务。这是我们大概的选品标准。
在这里插入图片描述

3.协作方式

我们总结了3种自研方式,一种是自研+网关+低代码,其实网关代表自研的一种衔接方式,第二种是低代码+网关+低代码,第三种是低代码+网关+SaaS。

第一种链路的话,我们认为它能满足特殊场景,对产品交互要求比较高。剩下两种,我们认为依赖SaaS服务以及自研能力,能快速支持业务定制化的场景。所以这三种链路其实在我们的开发过程中是并行的。
在这里插入图片描述

4.流程提炼

基于刚才的三个场景,我提炼了一个流程给大家简单介绍一下。因为我们是做硬件的,所以会涉及到一个售后的过程,它和传统电商的售后过程不一样。传统电商可能依赖于客服能力就做了,但我们有一些硬件产品,需要实际做售后服务。

在这套链路里面其实已经拆解出来了:用户售后服务发起之后,我们的客服人员以及售后人员进行服务受理,坏品会在售后仓进行管理,有可能会报废掉,有可能会进行这个工厂的翻新,也有可能会进行仓内的翻新。
在这里插入图片描述

这套流程里面有3个点,第一部分的话是用户端,这个是映射到之前体验的场景上;第二部分是服务端,就是我们自己内部流程的一个转化;另外一个是仓储作业,也是内部的操作作业的一个工作。

以售后服务端发起这个动作来说,它的场景用了“自研+网关+低代码”这种能力。用户需要在手机端发起售后服务,然后由我们的客服人员以及服务工程师去进行后续的服务受理。在这个场景下,用户侧对于体验的要求非常高,目前低代码平台其实无法完全达到我们对于用户场景下的使用诉求,所以我们是通过自研的方式,然后用自研的内容去和网关衔接传递到电话平台上,通过传递的结果去获取到用户诉求。在服务过程中会通过服务公式的处理返回给用户,从而打通这套链路的执行流程。

在这里插入图片描述

在这种执行方式下,我们能在保证用户体验的前提下,把系统落地的时效提高70%。正常搭一个售后系统的话,没有两到三个月的时间其实是很难完成的,而我们大概用了20个工作日左右。所以,整个项目下来,我们对于低代码是有一定感触的,而且项目成果在后面也直接帮助我们更好地在公司内部推广低代码平台。

下一部分是服务受理,这部分其实是用低代码+网关+低代码的这种方式解决了数据获取的问题。明道云提供了在流程以及页面中通过API方式获取数据的能力。我们本身有一些自研的表控能力,以及作业帮内部的系统,这些都需要通过API或者网关的形式连接到明道云。

第三种方式是低代码+网关+SaaS。对于我们来说,其实WMS服务相对复杂,除了商品本身的管理以及出入库以外,还涉及到调拨、盘点、库位以及正常销售场景下的链路打通。在这个场景下,我们将WMS的SaaS服务与低代码衔接,完成了这套链路的执行。

我们在实际使用过程中发现,这三种方式能帮助我们更快地建设系统,也保证我们能相对灵活地进行业务迭代。

在这里插入图片描述

接下来我会基于售后系统,介绍一下我们的产品结构。我们目前业务场景是退、换、修,基于这三个业务场景,涉及到销售平台的信息引入,OMS订单系统的一些信息引入。除了外部的OMS以及我们自研的OMS以外,还有一些CRM的SaaS,这些场景都会由明道云承接,来保证我们内部的工作流的流转。

标绿的部分是我们现在已经在使用明道云做售后业务场景的支持模块,标黄的部分是我们在尝试依据明道云能力去建设的服务能力。其他部分直接复用了作业帮自研的能力模块。

在这里插入图片描述

5.产品建设思路

其实我们是有一定产品建设思路的。明道云本身是以应用表单和工作流为载体的开发工具,但是对于我们一个相对传统的互联网公司来说,我们希望通过让系统结构、系统边界足够清晰的方式,来保证后续数据使用过程的稳定高效,避免重复迭代,重复地做重置动作。所以,我们用系统去对应应用场景、表单,业务流对应工作流。

举个简单的例子,还是以售后场景举例,因为我们有客服人员在做服务受理,有售后的工程师在做后续的执行动作,所以对于客服系统和售后系统来说的话,其实是相对解耦的一套系统,但是工作流又是相互串联的。

在这种情况下,我们通过工作流保证两边系统的数据一致性。各个角色在自己的系统下闭环,使得应用不会因为工作流内部的串联,导致各个岗位的工作内容解耦了。
在这里插入图片描述

6.产品结构

我们虽然是互联网公司,但也是一个制造型企业,包含产品设计、生产制造、服务履约和用户服务。在这个业务场景下,我们包含前、中、后台。前台可能更偏向于用户体验,会有很多的用户通过前台的端口来去获取硬件的一些服务内容;中台会有一些分发逻辑;后台是内部员工用的一套系统流程。

在整个流程过程中,我们用明道云进行很大部分的中后台系统建设,还有一些我们在验证中的方案,也是希望将来通过明道云来实现。
在这里插入图片描述

7.研发架构

明道云在我们的研发体系中,更偏向于底层的一些服务能力。它会通过网关的形式,和前中后台的系统做衔接。这种设计结构保证了我们的业务动作都能进行高速迭代。
在这里插入图片描述

8.建设建议

最后,我们希望给大家一些建议。我们认为:相对体验性的内容更适合自研或者使用SaaS服务,中后台的模块里,如果没有特别好的外部SaaS能满足的,以及相对复杂、变动较大的业务线,就很适合使用低代码建设。当然,我们对于低代码平台抱有很高的期望,希望后边能进行不断拓展它的应用边界。

在这里插入图片描述

四、从提供系统工具到提供工作模式

明道云已经能把用户的本质诉求,提炼成一套低代码能力。我们非常认可“人人都是开发者”这种观念,但是前提是做到了“人人都是产品经理”。

至于赋能,我觉得不只是工具层面的赋能。低代码平台其实是一个革命者,它颠覆了传统的开发逻辑,我们希望从整个公司的运营环境下去考虑低代码对公司的发展或者迭代有什么样的助力。

我例举了四个点,当然肯定不止这些:

  • 在传统互联网公司环境下,我们如何配置团队来使用低代码能力?
  • 系统建设的标准是什么样的?
  • 如何完成一套低代码的履约过程,以及后续的运维方案?
  • 在传统的运维基础上,我们怎么进行转化?

在这里插入图片描述

本文来自作业帮高级产品经理翟宇,在明道云北京开放日的分享,经校对编辑后整理为演讲精华。

相关文章:

作业帮基于明道云开展的硬件业务数字化建设

今天由我代表作业帮来介绍公司在低代码平台应用的一些经验和心得。我今天分享的内容包含两部分,一个是作业帮硬件的介绍,另一个是基于明道云的系统能力建设,也是我们自己总结的经验,希望能给大家带来一些启发。 一、关于作业帮 …...

位图及布隆过滤器的模拟实现与面试题

位图 模拟实现 namespace yyq {template<size_t N>class bitset{public:bitset(){_bits.resize(N / 8 1, 0);//_bits.resize((N >> 3) 1, 0);}void set(size_t x)//将某位做标记{size_t i x / 8; //第几个char对象size_t j x % 8; //这个char对象的第几个比特…...

在 Python 中将天数添加到日期

使用 datetime 模块中的 timedelta() 方法将天数添加到日期中&#xff0c;例如 result_1 date_1 timedelta(days3)。 timedelta 方法可以传递天数参数并将指定的天数添加到日期。 from datetime import datetime, date, timedelta# ✅ 将天数添加到日期 my_str 09-24-2023 …...

vue3知识点

一、vue3带来了什么&#xff1f; 1.性能的提升 打包大小减少41% 初次渲染快55%&#xff0c;更新渲染快133% 内存减少54% 2.源码的升级 使用Proxy代替defineProperty实现响应式 重写虚拟DOM的实现和Tree-shaking 3.拥抱TypeScript Vue3可以更好的支持TypeScript 4.新的特性 4.1.…...

一行代码生成Tableau可视化图表

今天给大家介绍一个十分好用的Python模块&#xff0c;用来给数据集做一个初步的探索性数据分析(EDA)&#xff0c;有着类似Tableau的可视化界面&#xff0c;我们通过对于字段的拖拽就可以实现想要的可视化图表&#xff0c;使用起来十分的简单且容易上手&#xff0c;学习成本低&a…...

链表——删除元素或插入元素(头插法及尾插法)

目录 链表的结点由一个结构体构成 判断链表是否为空 键盘输入链表中的数据 输出链表中的数据 返回链表的元素个数 清空链表 返回指定位置的元素值 查找数据所在位置 删除链表的元素 插入元素 建立无头结点的单链表 建立有头结点的单链表&#xff08;头插法&#xff…...

oracle容器的使用

oracle容器的使用 1.下载oracle容器 1.1拉取容器 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g拉取国内镜像&#xff0c;该镜像大小为2.99G&#xff0c;已经集成了oracle环境&#xff0c;拉取完可以直接用&#xff0c;推荐使用这款oracle镜像 1.2查看…...

基于springboot会员制医疗预约服务管理信息系统演示【附项目源码】

基于springboot会员制医疗预约服务管理信息系统演示开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea M…...

GoogleAdsense国内加载慢怎么解决?

一淘模板 56admin.com 发现GoogleAdsense&#xff08;谷歌广告联盟&#xff09;国内加载慢拖网站速度怎么解决&#xff1f;GoogleAdsense是谷歌旗下的站长广告联盟系统&#xff0c;如果站长没有好的变现渠道&#xff0c;挂谷歌联盟是最好的选择&#xff08;日积月累&#xff09…...

【MySQL专题】03、性能优化之读写分离(MaxScale)

在我们了解了MySQL的主从复制的性能优化之后&#xff0c;紧接着《【MySQL专题】02、性能优化之主从复制》中&#xff0c;我们提及的读写分离&#xff0c;来进行读操作和写操作分散到不同的服务器结构中&#xff0c;同时希望对多个从服务器能提供负载均衡&#xff0c;读写分离和…...

Redis7高级之BigKey(二)

1.MoreKey案例 往redis里面插入大量测试数据key 生成100W条redis批量设置kv的语句保存在redisTest.txt for((i1;i<100*10000;i)); do echo "set k$i v$i" >> /tmp/redisTest.txt ;done; # 生成100W条redis批量设置kv的语句(keykn,valuevn)写入到/tmp目录下的…...

flex弹性盒子

概念 弹性盒子是一种用于按行或者按列布局的一维布局方法&#xff0c;元素可以膨胀以填充额外的空间&#xff0c;缩小以适应更小的空间 以下属性是给父元素添加的 1.flex-direction --改变轴的方向 row 默认值 默认沿着x轴排版(横向从左到右排列&#xff08;左对齐&#xff…...

[Java Web]Cookie | 一文详细介绍会话跟踪技术中的Cookie

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Java Web 目录Cookie1、工作原理2、如何使用2.1、发送Cookie2.2、获取Cookie3、Cookie的存活时间4、中文错误Coo…...

这可能是2023最全的Java面试八股文,共计1658页,Java技术手册的天花板

前两天有个小伙伴在后台留言&#xff0c;最近的面试越来越难了&#xff0c;尤其是技术面&#xff0c;考察得越来越细&#xff0c;越来越底层&#xff0c;庆幸的是最终顺利找到了工作。 一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识 比如果这样的问题…...

字节流及存放本地文件上传和下载文件

前言 之前的文章有写过 vuespringboot使用文件流实现文件下载 实现如何通过 D:\file\文件名.文件格式的形式进行下载文件 但是它对于很多业务场景相对适用性不是很广泛。 以及 elementUI加springboot实现上传excel文件给后端并读取excel 也只能是通过elementui的元素类型进行…...

【翻译】下一步:Go 泛型

原文地址&#xff1a; The Next Step for Generics - The Go Blog https://blog.golang.org/generics-next-step 介绍 自从我们上次写下关于在Go中加入泛型的可能性的文章以来&#xff0c;已经快一年了。现在是该更新的时候了。 设计的更新 我们一直在继续完善泛型设计草案。…...

如何简单实现ELT?

在商业中&#xff0c;数据通常和业务、企业前景以及财务状况相关&#xff0c;有效的数据管理可以帮助决策者快速有效地从大量数据中分析出有价值的信息。数据集成(Data Integration)是整个数据管理流程中非常重要的一环&#xff0c;它是指将来自多个数据源的数据组合在一起&…...

细思极恐,第三方跟踪器正在获取你的数据,如何防范?

细思极恐&#xff0c;第三方跟踪器正在获取你的数据&#xff0c;如何防范&#xff1f; 当下&#xff0c;许多网站都存在一些Web表单&#xff0c;比如登录、注册、评论等操作需要表单。我们都知道&#xff0c;我们在冲浪时在网站上键入的数据会被第三方跟踪器收集。但是&#x…...

Java基础之==,equal的区别(温故而知新)-----点点滴滴的积累

1. 为运算符&#xff0c;equal 为String数据类型的比较方法&#xff1b;相同内容的对象地址不一定相同&#xff0c;但相相同地址的对象内容一定相同&#xff1b; 比较的是值是否相等&#xff0c;equal比较的是是否是同一个对象。 2.基本概念不同 1&#xff09;对于&#xff0c…...

SpringBoot项目使用切面编程实现数据权限管理

springBoot项目使用切面编程实现数据权限管理什么是数据权限管理如何实现数据权限管理什么是数据权限管理 不同用户在某页面看到数据不一致&#xff0c;实现每个用户之间数据隔离的效果。 如以下场景&#xff1a; ● 页面期望展示当前登录人所在部门的数据。 ● 页面期望展示当…...

亚马逊测评是做什么的,风险有哪些?

自养号测评顾名思义就是自己养国外的买家账号给自己店铺提升销量和评论&#xff0c;做过多年的跨境卖家都知道测评可以快速提高产品的排名、权重和销量&#xff0c;&#xff08;国内某宝一样的逻辑&#xff09;但随着测评需求日益增大&#xff0c;卖家在寻求真人测评时也很容易…...

安科瑞导轨式智能通讯管理机

安科瑞 李亚娜 一、概述 AWT200 数据通讯网关应用于各种终端设备的数据采集与数据分析。实现设备的监测、控制、计算&#xff0c;为系统与设备之间建立通讯纽带&#xff0c;实现双向的数据通讯。实时监测并及时发现异常数据&#xff0c;同时自身根据用户规则进行逻辑判断&…...

vs2010下 转换到 COFF 期间失败: 文件无效或损坏

因为同一个电脑上安装多个VS&#xff0c;有多个cvtres.exe。按照下面的操作如果还是不行就在C盘搜索cvtres.exe&#xff0c;然后挨个重命名&#xff0c;看看是调用的哪个&#xff0c;然后修改就可以了。 用VS2010编译C项目时出现这样的错误&#xff1a; LNK1123: 转换到 COFF …...

托福高频真词List19 // 附托福TPO阅读真题

目录 3.28单词 3.29真题​​​​​​​ 3.28单词 legitimately/properlyadv.正当地likewise/similarlyadv.同样地reveal/showv.揭示substantiate/confirmv.证实suppress/stop by forcev.镇压trend/tendencyn.趋势empirical/based on observationa.凭借经验的illuminate/li…...

Go语言项目标准结构应该如何组织的?

这里写自定义目录标题Go项目本身的目录结构Go语言项目典型目录结构GO语言项目最小标准目录结构可执行的Go语言项目目录结构库的Go语言项目目录结构关于internal目录总结参考文章每当我们写一个非hello world实用程序的Go程序或库时&#xff0c;我们都会在项目结构、代码风格和标…...

设计模式简介

设计模式简介 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错…...

#详细介绍!!! 线程池的拒绝策略(经典面试题)

本篇单独讲解线程池的拒绝策略&#xff0c;介绍了当线程池任务满了之后&#xff0c;线程池会以什么样的方式来响应添加进来的任务 目录 一&#xff1a;理解线程池拒绝策略的触发情况代码理解 二&#xff1a;线程池的四种常见的拒绝策略 1.ThreadPoolExecutor.AbortPolicy 2…...

正则表达式作业

利用正则表达式完成下面的操作: 一、不定项选择题 能够完全匹配字符串"(010)-62661617"和字符串"01062661617"的正则表达式包括&#xff08;A &#xff09; A. r"\(?\d{3}\)?-?\d{8}" B. r"[0-9()-]" C. r"[0-9(-)]*\d*&qu…...

《扬帆优配》交易拥挤度达历史极值 当前A股TMT板块性价比几何?

上周&#xff0c;A股商场企稳&#xff0c;但盘面风格分歧再度加深&#xff1a;很多资金涌入以ChatGPT、数字经济为代表的TMT板块&#xff0c;而新能源以及前期强势的“中字头”种类都呈现了回调。兴业证券计算显现&#xff0c;3月24日&#xff0c;TMT及电子板块的商场成交金额占…...

C/C++开发,无可避免的IO输入/输出(篇三).字符串流(内存流)IO处理

目录 一、字符串流 1.1 字符串流继承体系 1.2 字符串流本质-类模板std::basic_stringstream 1.3 字符串流缓冲-std::stringbuf 1.4 stringbuf与序列缓冲 1.5 字符串流的打开模式 二、字符串流的运用 2.1 格式转换是其拿手好戏 2.2 字符串流仅提供移动赋值 2.3 std::basic_str…...