履历

我的职业生涯、经历和技能.

章黎明

Java高级开发工程师 @ 东方福利网

总结

  • 计算机数学专业毕业,9年以上java开发经验
  • 技术栈包含:Java 、GoLang、Mysql 、Ubuntu、SpringBoot、SpringCloud、MQ、JDK8 等常用开源框架
  • 能画图(MysqlBench--ER图 ; Markdown--时序图、流程图 ; Visio--泳道图、系统架构; xmind--脑图案例 等)
  • 会沟通(xy-problem )
  • 会执行(设计文档先行,良好代码习惯,熟悉实践设计模式,规范命名,注释到位)
  • 熟悉方法论

专业领域

编程语言平台 / 框架 / 库
JavaJDK8、Spring全家桶、微服务、 MQ 、Redis 等常用开源库
MysqlMybatis、索引优化等
Golang,TypeScript, Express, Koa.js, Mongoose, JWT, GraphQL
JSjQuery, Bootstrap, Tailwind CSS, SCSS, Semantic UI
Flask (Python), Java Swing
版本控制外语等级
Git英语四级

工作经历

东方福利网(2021年5月 - 至今)

项目: 东方福利网商品中心 - http://www.dongfangfuli.com/mall?city=145)

  • 描述: 中国领先的数字化弹性福利管理平台,专业向企业提供一站式员工激励及弹性福利解决方案。产品横跨:健康保障福利、员工关怀福利、传统佳节福利、员工激励福利、文化娱乐福利等五大福利板块,助力企业打造“幸福职场”,通过优化员工福利品质,降低采购成本,扩大员工福利选择自由度来提升员工对企业的满意度。大供应链运营后台是整个公司电商平台的各个部分系统功能的中台,内部包含商品中心、订单中心、供应链中心、主数据中心、供应商对接中心、礼包中心等各个系统。
  • 团队规模: 6
  • 技术栈: - SpringCloud +Consul + Apollo + Mybatis+Maven + Mysql+ RabbittMq + 阿里 RocketMQ + 泛微审批流 + 阿里DataV可视化 + 阿里schedulerx任务+阿里DataWork 数仓
  • 职位: Java开发工程师

商品中心系统:东方福利网是一家数字化的弹性福利平台,为企业以及工会员工发送节日福利卡、电影券。福利卡券需要进行兑换,所以公司也是一家面向企业员工的在线商城,公司有独立的商品中心。公司与大量的知名品牌供应商入驻,另外对接京东、天猫、网易等大型电商平台。商品中心模块包含商品引入(提报分档)、商品管理(商品3档数据以及仓库数据维护等)、商品运营管理(商品分类,商家档案,配送范围,运费,配送范围管理等)、价格管理等大量功能。

商品的业态模型 包含实体( 自有提报商品、三方对接商品)以及虚拟商品(本地生活电子券、餐饮、文娱活动商品、在线课程) 等模型

本人职责:

  • 负责商品中心的所有商品审批流程(对接泛微) 类型包含 临时进售价、永久进售价、上下架、SPU SKU信息修改、各类型商品提报 等。包含创建审批流程,画审批页面,以及各个审批节点的审批回调的业务操作
  • 针对商品发起审批流、消费审批 都设计了 通用的预警和重试机制
  • 优化商品中心的 分档逻辑设计(主档、供应商档、商家档 对应的SPU、SKU)
  • 商品售价维护,商品商家档、供应商档、主档数据的批量编辑
  • 对接 各个业务中台和搜索中心,功能包含: 商品查询(B端和C端) 和 消息变更通知 等
  • 独立对接 天猫、唯品会 、奈雪等三方供应商的商品模块,包含 商品分类、商品提报引入、商品的消息变更通知、商品主动更新,商品C端详情,商品下单预检验(渲染)、商品下单等 接口
  • 对接各类蛋糕供应商,设计了 蛋糕免费配件以及付费配件的商品类型,同时蛋糕商品与配件的关系模型
  • 使用datawork 分析商品各个仓库的日均销量DMS,通过一系列公式 计算商品的补货点 和建议捕获量
  • 负责 实体商品的DataV看板建设

本地生活中心:本地生活包含了公司的所有电子券商品,是东福不可或缺的一环,业务类型 包含衣食住行,吃喝玩乐购等方面的电子券和门店消费,这里面又涵盖了餐饮、商超便利、休闲娱乐、亲子母婴、出行打车、家电维修等多个业务板块。本地生活业务基础模型主要 包含 商家、门店、品牌(开放城市)、电子券商品、电子券券码、上架频道 等。电子券商品 涉及 超市便利、生日汇、电影、员工食堂、线下美食 等频道。最早的时间本地生活服务 都是PHP 语言开发的,在23年10月份 统一翻译为Java 语言了。迁移的节奏是 商品中心先迁移,然后再是 供应商端、各业务中台、搜索 逐步迁移

本人职责:

  • 在迁移PHP为JAVA的过程中,主要负责电子券商品模型改造的部分功能,以及电子券 库存模块(供应商导码、券码过期、作废、转移)等开发工作

  • 在电子券中台的迁移建设过程中,独立对接所有业务中台 。围绕着门店和电子券商品,提供电子券商品和门店 详情页的 各类C端接口

  • 独立对接搜索中心,在电子券商品、门店、商家、品牌变更时候,提报构建搜索索引的查询接口 (主动构建和被动通知构建)

  • 对接财务中心,同步 券码 采购、导码、售出、核销、作废 、过期等场景的 数据

  • 拆分C端接口 和B端接口,提高服务健壮性。将rabbitMQ逐步迁移到RocketMQ,解决顺序消费问题

  • 导码过程中,对接阿里文件服务Oss ,加密Bucket,优化电子券券码文件的数据安全,同时对券码进行脱敏

  • 负责 本地生活的DataV看板建设

标准三方供应商对接:引入三方供应商的商品可以极大的丰富公司的商品池,增加卖点,帮忙销售打单。三方商品的引入通常有2种,一种是直接内嵌 三方供应商的页面,商品不落库,搜索、列表、商品详情接口、定价等都使用合作方接口。 第二种是:落下所有三方商品数据,进行双边的商品映射 提报,后面还有对接商品更新 的信息。两种方式各有利弊。像 京东、天猫企业购、网易严选、唯品会 都是使用的第二种方式。 各个供应商的商品不太一样,但是东福的商品标准已确定,需要按照东福的标准来售卖。

本人职责:

  • 三方商品分类 引入以及映射
  • 三方商品的模型与 东福商品的模型映射,并进行提报、 上架。 比如唯品会是3层结构(good_full_id,skuId,sizeID),天猫是2层结构(lmItemId, skuId)
  • 对接 商品各类消息变更通知 (有的三方没有消息通知)
  • 商品的 主动变更(基础信息 SPU商品主图 轮播图、SKU基础信息、商品上下架、改价、增加商品、删除商品)等

主数据中心系统:主数据模块主要维护整个商品的各类的基础数据,如财务、采购、成本、利润、公司档案、商家档案、地点档案等组织架构信息),又包含各类物流管理,客商档案基本信息管理,是一个公司基础数据的统一维护平台

本人职责:

  • 负责财务主数据的基础税率信息维护,后台分类与税率的关系 ,供应商进项税,商品的进、销项税的变更维护等
  • 负责客商档案模块的crud等功能
  • 负责电子券商家、门店的编辑变更通知 等

定制礼包系统: 销售人员在外约见客户,了解到大型的企业客户有金额巨大的定制礼包需求,销售人员整理客户的需求数据,提交到系统。礼包部门工作人员对客户的大而泛的模糊需求进行详细拆解成为N个子需求,然后将礼包部门人员将各个子需求分配给公司的采购人员,采购人员将子需求转达给供应商。供应商给出自己的礼包方案,再向上提报经过采购审核到达礼包部门。礼包部门组合供应商提交的方案,生成多个组合方案的文档交给销售人员,销售人员给客户挑选,再确认中标的方案 本人职责:主要负责对接公司的移动办公部门,接收销售部门的主需求、供应商方案的审核、组合方案的生成上传导出,以及 外部系统对组合方案的审核中标结果通知

系统管理中心:是一个公司的公共中心,主要维护公司的公告管理、消息管理、账号管理以及数据下载中心

本人职责:负责数据异步下载中心的开发, 各个系统都会有批量下载数据的公共需求,各个系统通过rocketmq发送下载数据req,然后到异步下载中心异步生成下载数据,如excel 、pdf等

商品中心老项目的拆分迁移: 随着公司的逐渐壮大,原来的商品中心和交易中心的代码变得无法划清领域职责,边界模糊,代码臃肿,一个项目存在10多个数据源,系统内接口数量多且杂乱,因此也是公司系统性能的瓶颈所在,迁移工作刻不容缓。 公司架构部门主导进行该2个项目的拆分迁移工作。 首先是进行从职责功能角度对项目接口调研,将项目的接口划分给各个部门产品线,然后通过Cat埋点的方式进行接口流量统计,理清楚上下游系统,优先迁移调用高的接口。最后就是分多个版本不断的迭代,迁移接口到各个系统的各自领域

本人职责:主要负责供应链部门的接口迁移工作,辅助架构部门分析cat埋点日志,动态生成表格,每日统计接口流量

成就收获:

  • 升级商品中心的历史接口(解偶商品中心 与泛微流程系统,商品流程使用策略模式,简化纯粹各个接口),提高商品中心稳定和健壮性
  • 将本地生活服务从PHP迁移为JAVA,并对接各业务中台
  • 对接 jd 、天猫、网易、奈雪、蛋糕等平台或者商家

上海维恩贝特科技有限公司(2017年2月 - 2021年5月)

Project: 平安银行-消费金融催收项目组 - https://www.pingan.com/official/ques-5034-18067963

  • 项目时间:2020年12月 - 2021年5月

  • 项目描述: 平安银行汽车消费金融中心多年来专注个人汽车消费贷款业务,坚持“专业、快捷”的贷款服务理念,致力于成为全国汽车金融专家。 近年来汽车消费金融中心业务规模实现跨越式发展,市场份额全国领先。目前汽车消费金融中心已在全国大部分城市设立了分部,并与主流汽车品牌厂家建立了总对总的战略合作关系;汽车贷款全流程控制镶嵌于自行开发的车贷系统中,专业化的运营团队,高效集中的风险控制体系,实现了客户网上实时申请,高时效审批和放款。资产规模、风险控制、赢利能力、流程控制等方面都得到不断提升。未来,汽车金融事业部将紧紧围绕平安银行的五年战略发展规划,重点开发中、高端汽车和二手车市场,确保市场份额绝对领先。加快综合金融模式探索和产品研发,建立以客户为中心的综合金融模式,助推银行业务发展。

  • 团队规模: 6

  • 技术栈:

  • Spring + Dubbo + Redis+ RocketMq + Maven + Oracle

  • 职位: Java后端开发

数据报表展示模块 : 贷款生命周期分贷前、贷中、贷后。催收平台主要处理贷后的逾期借据的催收工作。逾期的借据会打包并委派给外部合作厂商机构。催收平台按照用户性质维度分两大类:行内人员(Inner)催收平台和委托外部机构(Outer)催收平台。分类外部机构按照机构维度分类分:催收机构和律所机构。 催收平台每天接收各个贷款产品条线 多渠道的业务部门(消费金融、汽车金融、信用卡等)推送的逾期借据,使用规则引擎将借据分配(分案)给各个各类外部厂商进行催收。 所以催收平台会存在 借据、催收记录等的各类性质数据。

本人职责: 负责催收平台的催收上传记录的列表查询以及催收记录的上传下载

数据隔离权限:催收平台分行内用户和外部催收厂商用户,行内人员又分 总行用户和分行用户,所以各个分行、各个外部催收厂商的数据 都是互相隔离的。

本人职责:负责外部厂商用户的数据查看请求的权限判断。通过新增统一请求切面类,拦截委外催收平台请求,校验单次请求的 数据安全校验,防止数据越权

用户模块:催收平台需要维护(新增、编辑、查看、删除)行内用户和外部机构用户(催收员)的用户数据 本人职责:维护委外催收厂商用户

厂商合作关系模块: 外部厂商会与分行建立绑定合作关系,当然银行也可以解除合作关系。 本人职责:增加、编辑合作厂商关系

异步任务模块:平台中存在很多耗时的任务,比如逾期借据的指定分配厂商(分案)任务,以及各类数据报表的上传、生成以及下载任务。 因为需求人员提出需要检查 每条业务数据的数据格式、权限判断等一系列校验,并给出任务生命周期状态。还需要给出每条异常数据校验不通过的原因,并收集生成excel文件供业务人员下载。 本人职责:设计并开发统一异步任务模块,将各类耗时的异步任务统一维护,如各类报表生成,文件上传,透明监控任务的生命周期,并列表展示

测试模块:集成测试的时候需要启动外围项目服务和基础服务,用于连通性以及功能性测试。但是基础服务项目启动需要注册大量的dubbo接口,导致基础服务启动非常耗时。通过debug找到并修改行内封装的dubbo注册功能的代码,让其只注册自己开发的接口的dubbo接口,就可以大大优化项目的测试启动时间

  • 成就收获 :
  • Good knowledge of all server side stuff (APIs, authentication, session, middleware, database...)
  • Good knowledge of Shopify platform, Shopify APIs, Shopify themes

Project: 供应链金融 - https://fintech.webank.com/scf/

  • 项目时间:2017年8月 - 2020年12月

  • 项目描述: 与各财团渠道合作,依托前沿的的IT技术及商业模型,向中国五百强企业为主体的核心客户提供供应链项下的应收账款融资、票据融资、委托贷款、对公理财、资产管理及增值服务于一体的金融服务;向五百强企业上游众多供应商客户提供低成本快捷的融资及增值服务;面向银行以及非银金融机构为主体的投资机构,提供风控、资产整合和信息增值服务。

  • 团队规模: 20

  • 技术栈:

  • spring + SpringBatch+Squirrel State Machine+ RocketMq + Maven + TDsql

  • 职位: Java后端开发工程师

资产模块:供应链分上下游模式,上游模式中核心企业会向平台上传本公司的采购订单、发票合同(资产订单),然后经过本公司、供应商公司、银行层层审批流审批,抽象成为 一笔 资产Asset。

本人职责:审批流中各个审批流节点的资产订单 的列表条件查询以及导出功能。在批量模块中,将资产的状态进行翻转,比如到期状态,清分状

信用金模块:资产通过第三方保理平台登记,进行保理转质押给银行,按照规则引擎给出的转换比例会成为一笔 信用金,信用金可用于融资生成借据,也可用于拆分转让。

本人职责:在批量模块中,将信用金的各类状态进行翻转,用于后续处理

借据模块:信用金作为银行认可的一笔资产,可以进行部分或者全部贷款融资。供应商发起融资订单,经过层层审批流,状态机翻转。最终会成为一笔借据。

本人职责:在批量模块中,向贷款核心系统推送 放款文件、还款文件。接收贷款核心系统的借据同步文件、借据自扣文件、借据短信提醒文件。通过借据同步文件更新系统类贷款借据信息; 通过借据扣款文件生成贷款扣款订单;通过借据提醒文件 生成短信提醒数据。 翻转借据的生命周期状态

调账模块:调账功能主要是调增(借调)或者调减(贷调)借据的利息、罚息余额成分,既可能是缓解用户的还款压力又或者是为了抵消某次异常导致的计息异常。

本人职责:对接贷款核心系统,独立负责多产品贷款借据调账功能设计、开发、测试。内容包含调账订单的申请,批量模块处理调账数据

额度模块:核心企业拥有资产额度,链属企业拥有融资额度。核心企业创建资产会扣减资产额度,链属企业融资会扣减融资额度。当核心企业针对某笔资产还款后,资金优先用于还款该资产对应的借据还款,所以核心企业的资产额度会恢复,链属企业的融资额度也会恢复

本人职责: 与授信系统交互,在联机业务或者跑批模块,进行额度恢复处理

存证模块:当借据还款成功后,需要给用户凭证,就需要调存证系统接口,生成贷款存证文件

本人职责:负责批量模块的贷款还款存证的生成

短信模块:整个系统会有各种各样场景的短信提醒,比如用户注册的验证码,资产、信用金、借据审批流中的每个审批节点操作,都需要审批流。还有当借据相关的各类还款提醒文件(提前提醒,扣款成功失败等)

本人职责:在批量模块,调短信平台接口向用户发送借据提前提醒,借据逾期,借据扣款成功,借据扣款失败短信

测试模块:项目里测试分sit测试和uat测试,项目初期时就立下标准,sit测试人员做的是白盒测试,必须要知道每个功能接口涉及的表字段的翻转变化,所以早期本项目中的sit测试基本都是总部专业测试人员带着项目中的开发人员交叉测试功能,不可能让自己测试自己开发的功能。 所以项目中的测试人员都是能看懂代码的,也能良好与开发沟通无隔阂。

成就收获:

  • 学习了做事情的方法论
  • 学会了沟通合作,岂曰无衣,与子同袍以及和不同人有不同的沟通方式。
  • 学会了markdown 编写文档,画图
  • 学会了规范的代码风格

Project: 宁波通商银行银商平台二期改造项目 - https://www.ncbank.cn/ningbosh/dzyx/index.html

  • 项目时间:2017年2月 - 2020年8月

  • 项目描述: 为了适应当前银商平台业务的现状,以及未来业务发展的方向,应该建设一套银商平台业务范围,

为企业客户提供一站式开户,出金服务的系统。需要对原有的系统进行部分的改造,修改部分原有功能和增加一些新功能

  • 团队规模: 4

  • 技术栈:

  • Back-end: Spring 、Struct2、Weblogic

  • 职位: Java Backend Developer

工作内容:

  • 主持销项模块的设计与研发 ,进项模块的运维与支持
  • 本次改造需要修改直销银行的注册流程,需要增加和修改部分接口;
  • 新增个人信息保存接口,注册进度查询接口, 卡BIN开关(查询), 视频验证开关等接口;
  • 通过weblogic在sit,uat环境的项目部署,配置测试联调

业余项目

教育信息

江西理工大学

2011年9月 - 2015年7月

  • 专业: 信息与计算科学
  • Degree grade: 良好

兴趣爱好

  • 研究美食,做饭给媳妇吃
  • 看下技术书籍 博客
  • 打篮球和英雄联盟

Last updated: 2024年3月