Skip to content

XiaoDHuang/XiaoDHuang.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

个人信息

联系方式

个人优势

6年Web前端开发,参与过大型中后台系统开发及架构演进方案,参与过面向C端多端业务场景技术体系建设,带领过7-8人前端团队,负责过微前端体系建设,并落地编程猫中心化系统,实现公司70多应用,两千多个页面业务调度能力。落地可视化搭建平台的建设,实现面向移动端可视化页面搭建服务,并借助前端微服务能力,尝试在搭建系统中实现业务功能可视化配置。参与过公司工程化体系建设,优化升级脚手架基础库,monorepo工程管理方案。

技能优势

  • 前端技能

    • 具备JavaScript语言核心基础概念,值类型系统、对象类型系统、规范引用类型系统, 掌握JavaScript运行时组件(环境、上下文)、语法组件表达式语句执行、面向对象、函数式、结构化编程。

    • 掌握Chrome浏览器底层工作原理,多进程架构、渲染流水线、事件调度机制,垃圾回收机制等。

    • 掌握前端各种调试技能,移动端web调试、PC端web调试、http抓包等。可以在web端有效进行,页面性能分析、页面内存泄漏、追踪分析页面各种问题。

    • 了解熟悉前端图形技术,svg、canvas、webGl, 并使用过d3、echarts 构建可视化大屏, 以及利用canvas开发高性能地图组件。

    • 熟练使用前端框架技术Vue及React, 并在实际生产项目中大量运用, 实现各种开发需求。

    • 掌握React工作基本原理,熟读并调试相关源码的实现过程。

    • 掌握Reduxjs相关实现细节,熟悉官方相关库具体实现如:reudux-toolkit

    • 掌握TypeScript基本用法,并在实际React项目使用。

    • 负责前端团队管理,角色前端leader, 有一定的业务架构能力,团队管理能力,组件设计能力,代码抽象能力,项目工程化能力。

  • 运维技能

    • 熟练Linux平台基本命令,Linux平台下各种应用及服务搭建(如帮助公司搭建低代码平台,部署相关服务)。
    • 熟练vi编辑器基本用法
    • 熟练git版本管理工具,基本命令行使用,如:stash、回滚、变基、编辑合并commit、等...
  • 其他:

    • 有过服务端开发经验, 负责APP API开发。
    • 掌握基本数据结构与算法,对动态规划、DFS、BFS、分治回溯、位运算基本的理解。(曾经利用相关算法为公司实现编程积木树比对纠错,为用户提供积木搭建引导)。

工作经历

深圳点猫科技有限公司(2020年12月 ~ 2021年 至 至今)

  • 负责的相关业务:《探月少儿编程》、《编程猫APP》、《海外版RokRok》
  • 角色:前端组长
  • 公司技术栈: React为主、少数系统为Vue
  • 主要职责:
    • 负责公司课程管理系统相关业务的开发工作。
    • 负责编程猫小程序相关开发工作。
    • 负责教师直播客户端及制课工具相关业务开发工作。
    • 负责落地编程猫低代码平台搭建,尝试在低代码平台落地微前端, 对现有业务功能做可视化配置。
    • 负责公司监控系统搭建,业务端可视化埋点的落地。
    • 负责维护公司脚手架工具, 解决常见编译问题。
    • 负责维护公司基础类库。
    • 负责APP侧H5业务功能的开发工作。
    • 负责团队日常业务开发管理工作。
    • 负责落地编程猫中后台微前端架构体系建设,整合公司70多个应用,两千多个页面系统调度复用问题。 实现系统与应用分离的业务架构解决方案。
    • 负责落地编程猫monorepo项目工程管理的方案。
    • 落地中后台可视化配置表单,节省大量手工运营配置及人工出错问题。

编程猫微前端调度体系

  • 项目背景:完成对公司70应用,2k多个页面梳理调用能力,对页面进行复用,对应用进行整合, 对系统进行统一导航及鉴权,对工程进行合理分拆,面向业务的动态系统管理的能力。
  • 架构思考:系统与应用概念分开, 系统负责调度业务, 应用负责提供服务。 中心化微前端调度体系。
  • 遇到挑战:
    • 如何实现老旧系统的0成本接入、跨域资源、样式、路由匹配等问题。
    • 如何实现一个多实例,监听各种资源style、script、link等标签加载方案。
    • 实现一个多应用加载,样式隔离CssScoped及JsSandbox方案。
  • 技术实现
    • 服务发现import-html
    • JsSandBox基于proxy\with脚本劫持处理方案(script、style、linK)
    • CssSandBox 基于shadowDom实现独立子应用DOM隔离方案。
    • 系统管理
    • 应用管理
    • 基座调度器

课程管理后台及运营管理系统

  • 项目背景:主要业务侧提供课程管理及APP日常运营管理的配置工作
  • 技术栈: React + Typescript + AntDesign
  • 负责的内容:
    • 负责云端素材库管理功能开发, 为老师配置课程,题库管理,提供在线素材, 简化老师上传管理素材难题。
    • 负责配置课程管理功能开发,涉及多个拖拽模块开发工作,如:把云端素材拖入课程配置模块中,自动完成相关课件配置工作,简化操作流程。
    • 负责交互答题管理配置功能开发。
    • 运营配置后台,引入可视化拖拽表单,后端、产品、运营常见配置表可视化生成表单页面,节省大量前端可重复开发成本。解决业务侧填写大量excel, 后端同学修改配置文件或脚本文件,带来易出错问题。

编程猫小程序

  • 项目背景:主要提醒家长端课程更新服务,学习成果跟踪服务,及其他相关学习的服务。
  • 技术栈: Taro + Vant
  • 负责内容
    • 小程序项目技术选型与搭建
    • 完成手机号及一键登录相关业务开发
    • 完成首页广告位及自定义导航条业务开发工作
    • 完成小程序相关订阅服务的开发工作
    • 完成基于Jekins的小程序CI

编程猫低代码平台

  • 项目背景:主要为运营产品提供一个,可视化搭建页面平台,应对大量活动落地页面,做到快速发布快速响应能力,缩短发布流程。
  • 技术栈:Vue + node + egg-server + docker
  • 存储中间件:mysql + Elasticsearch + redis
  • 负责内容:
    • 负责基础组件开发维护工作
    • 负责相关服务搭建及部署工作
    • 在低代码平台落地微前端做可视化页面配置
    • 负责编辑器模块优化工作
    • 负责页面展示端,一些优化工作。
  • 主要能力
    • 支持团队管理、支持项目管理、支持权限管理
    • 支持页面埋点统计,比如常见访问量
    • 支持快速发布部署的能力。
    • 支持云端素材管理,云端自定义组件管理,云端逻辑脚本管理。
    • 支持自定义组件开发。
    • 支持在线脚本编辑器,在线脚本注入,并支持ES6、ES7语法转换,为组件提供类似hook及mixin的扩展能力。
    • 支持拖拽组件间全局状态管理的能力、支持拖拽组件间(面向SOA模型)进行相互调用协议。

编程猫辅助编程-学伴功能开发

  • SDK背景:公司图形化编程工具的插件,主要为老师提供一个指导学生进行可视化编程作业引导程序。
  • 负责内容:
    • 根据产品需求制定落地整套技术方案,拉通原生(Native)工具端提供JS插件的能力,C端产研来实现具体引导算法
    • 主要任务就是老师预制作业与当前学生作业进行比对,根据最终差异性引导学生,正确完成可视化编程作业。
    • 最终落地核心算法,就是根据积木类型(相当于语言词法当中语句表达式)执行顺序及类型,进行最长公共子序列匹配算法进行匹配。

内部脚手架工具

  • 背景: 公司内部各个业务线汇总下来会存在上百个应用系统,为了标准化各个系统间脚手架配置,让开发从各中繁杂配置环境解脱出来,脚手架工具应运而生。脚手架工具设计的时候被分为两个独立分包,一个负责项目模板生成及构建服务, 一个只负责构建服务, 前者依赖后者,构成整个脚手架工具。
  • 功能:
    • 支持生成多种项目生成模板,支持小程序模板、Electron模板、MPA项目模板、移动端H5项目模板、管理系统项目模板、SSR项目模板、私有化NPM项目模板
    • 内置代码检查工具及配置、构建脚本的cdn资源上传配置
    • 内置Docker镜像文件,自动化部署配置。
    • 支持项目相关工具的自定义配置文件,如webpack、stylint等工具自定义配置。
    • 支持在gitLab中私有化NPM发布流水线。
  • 负责的内容:
    • 负责脚手架动态模板拉取与生成,利用GitLab REST API数据列表,拉取相关模板数据,进行下载生成项目。
    • 解决webpack5中react-css-modules模块与babel-plugin-react-css-modules模块hash冲突问题。
    • 负责Taro小程序模板项目搭建。
    • 负责内部lint工具的维护和升级。

教师端直播客户端

  • 项目背景:为教师提供在线教育直播客户端,提供大小班级直播教学服务
  • 技术栈: Electron + Vue
  • 功能描述
    • 支持老师大班小班直播,连麦控制,摄像头控制,桌面控制。
    • 课程互动,课件管理,画板功能,发放习题和作业,远程协助学生等。
  • 负责内容:
    • 主要参与前期技术调研与选型,最终采用Electron桌面及接入第三方音视频服务实现整套的教师客户端。

教师端交互视频客户端

  • 项目背景:为老师提供一种非线性可以让学生进行交互形式的媒体视频。公司自研内部视频交互协议,通过桌面老师进行交互组件拖拽,来衔接个各个视频播放、顺序、循环、回退、上下播放内容。移动端原生播放器拿到交互协议进行视频互动的一种形式。
  • 负责内容:
    • 主要负责了后续迭代优化与bug修复。

IRIS(SDK)

项目背景:主要封装了公司平台账号图形安全校验的模块,支持多种厂商SDK接入,腾讯TCaptcha、阿里awsc、网易、极验等。 业务层区分注册、登录、更改密码场景,该SDK配和账号管理平台的下发,动态支持多种滑块及业务场景安全校验功能。

  • 负责内容
    • 该SDK日常维护,及bug修复工作。

CDN-Uploader(SDK)

项目背景:公司内部上传库,支持视频码率转换,支持m3u8视频格式转换,支持文件切片及断点续传,内部支持文件最大chunk并发上传数量。该库结合运维管理平台,封装了,动态获取CDN上传空间、限制文件的大小以及上传类型。

  • 负责内容:
    • 支持自定义外部服务注入,主要兼容海外项目的运维管理配置。。
    • 该库的日常维护和bug修复等。

深圳布雷泽科技有限公司 (2020年3月 ~ 2020年至12月)

项目管理平台

  • 项目背景: 该项目为平安内部项目项目管理平台,
  • 技术栈: React + Ant Degin + typescript
  • 负责内容:
    • 自定义可视化看板图表功能、实现对图表功能自定义添加、可视化、编辑、删除、拖拽及每张图表自定义数据查询功能。

    • 开发甘特图组件:实现类Teamtion甘特组件, 实现日、周、月、季、年任务视图切换、时间无限滚动,实现不同日期视图下的任务拖拽、创建、编辑功能、 实现任务树形表格展开收起。

易览APP

  • 项目背景:平安内部数据可视化管理APP
  • 技术栈: webview + Vue + Mint-ui
  • 负责内容:
    • 负责项目管理平台据在移动端可视化功能开发, 主要实现可视化图表、及数据报表,在各种维度下面数据筛选,可视化功能的开发。
    • 遇到问题: 由于安卓端与IOS端webView绘制引擎webkit内核差别及JavaScript引擎(安卓V8/IOS JSCore), 在开发当中页面展示效果及JavaScript内置函数行为如会有所差别,经常需要真机及http抓包等手段调试修复。

产险费用管理系统(平安科技中心)

  • 项目背景:产险部门进行项目费用预算管理系统
  • 技术栈: Vue + ElementUI
  • 负责内容:
    • 管理系统首页开发、项目费用动支业务开发、项目费用结项业务开发、项目费用结算业务开发。
    • 管理系统页面发票打印功能
    • 遇到问题:业务要求页面打印下载的pdf,支持可编辑、可粘贴复制。
      • 方案1: 服务端通过无头浏览器对截取html进行pdf转换,会有兼容问题,如何让无头浏览器拿到UI框架CSS,渲染出正确CSSOM是个问题,无头浏览器适用UI简单且不包含css新特新,跟UI框架解耦内容。
      • 方案2:前端借助浏览器功打印进行PDF转换,会带来另一个问题IE浏览器无法支持PDF下载,还需要设计如何动态截取页面上的组件。
      • 方案3:根据 PDF API, 进行PDF绘制。效率上UI还原上都无法保证。
      • 方案4: 如果对可编辑可复制有强烈需求功能,就借助chrome浏览器能力进行转换下载。如果像发票类打印下载内容,前端对组件进行位图转换后写入(或后端)PDF文件,支持下载。

深圳甲易科技有限公司 ( 2017年1月 ~ 2020年3月 )

公安大数据分析及数据设备管理的综合平台

  • 项目背景: 公安终端设备数据采集、数据存储、设备远程管理、数据分析于一体综合管理平台。
  • 角色:前端组长
  • 主要职责: 负责前端业务方面的架构、前端工程化方面的优化、部分业务开发、公共组件封装,为小伙伴解决疑难问题。
  • 技术栈: Vue + Iview
  • 负责内容:
    • 划分业务模块、支持自定义功能集进行项目应用部署的能力。
    • 配置代码lint,统一代码风格。
    • 配置git hooks 对团队提交内容进行规范
    • 优化webpack构建速度,基本思路缩小构建范围,加入缓存组件,多个(线程)并行处理(集中在代码图片的压缩及转换)。
    • 分析可视化大屏,针对内存泄漏,解决页面崩溃问题
    • 离线百度的资源加载,源码库优化,让离线地图支持在线地图功能,如:支持一些主题地图的加载
    • 解决百度地图绘制性能问题, 分析轨迹路线的绘制,大量的设备点位在地图上展示, 来解决地图加载及拖拽的卡顿问题。
    • 页面性能分析:主要集中在地图,及数据可视化大屏。
    • 开发地图网格功能,支持各种级别参数切换 500米 公里级别切换
    • 实现数据业务关系图谱, 对采集的数据进行业务关联拓扑。
    • 组件封装:高性能点位绘制组件、地图网格、关系图谱等....

深圳峻石信远科技有限公司 ( 2016年1月 ~ 2016年12月 )

片片家庭相册(APP)

  • 角色: PHP开发工程师
  • 项目背景:该项目为移动端相册管理APP, 针对手机相册分享管理及打印功能
  • 主要职责:
    • App活动页面日志统计
    • 支付功能开发工作, 主要完成:支付宝/微信支付等功能的开发工作
    • 阿里云OSS对象存储
    • 配合IOS Android 端同学联调系统api
    • 移动端H5活动页面开发工作
    • 参与H5页面与Native应用之间调用问题

开源项目和作品

开源项目

技术文章

演讲和讲义

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •