陈抒迪

前端开发工程师

基本信息

姓名
陈抒迪
性别
年龄

联系方式

手机
主页
微信
csd758371536

教育经历

成都东软学院
软件工程 / 本科 / 2013.09 - 2017.06

技能清单

前端基础
  • 能够使用 HTML5 和 CSS3 进行符合Web标准的语义化开发,具有像素级还原设计稿的能力
  • 熟悉 JavaScript / TypeScript 语言,掌握 ES6+ 语法,持续关注 ECMAScript 标准
  • 熟悉 AJAX 相关知识,了解 HTTP 协议,能熟练运用 Promise 优化项目中的各种异步逻辑
前端模块化
  • 了解 CMD / AMD / UMD / ES6-Modules 等常见的模块化规范
前端自动化构建工具
  • 在项目中使用过 WebPack / Parcel / Gulp 等打包工具,熟悉前端工程化构建流程
  • 熟悉 Babel 的使用方法,能配合打包工具实现代码、资源的编译处理
前端JS框架
  • 熟悉 Vue / React 相关技术栈,并了解一部分框架的底层原理,能在自己的代码中借鉴其思想和风格
前端JS库
  • 熟悉 jQuery / Lodash 等工具库的使用,能够运用其封装的API简化项目中的业务逻辑
前端UI框架
  • 能熟练使用 Element / iView / AntDesign / Bootstrap 等UI框架完成业务组件,并能配合需求进行一定程度的二次封装
前端CSS工具
  • 熟悉 Less / Sass / Stylus / PostCSS 等CSS预处理、后处理工具
  • 熟悉 styled-components 库的使用,在项目中实践过CSS IN JS的开发模式和思想
前端数据可视化
  • 能熟练使用 ECharts / D3 等库完成一些简单的数据可视化需求
后台技术
  • 熟悉 Node.js 常用模块,能用 Express / Koa 等框架搭建基础的Web服务
其他
  • 熟悉PC与移动端的开发与适配,了解微信小程序开发
  • 熟悉版本管理工具 Git,文档工具 apiDoc / gitbook 等的使用
  • 熟悉 Markdown 语法,能用其编写技术文档
  • 熟悉 LocalStorage / SessionStorage / Cookie 等数据存储技术
  • 熟悉 Canvas / Svg / WebSocket 等新特性的使用
  • 了解前端单元测试、持续集成服务 Travis 相关知识;能使用 easy-mock 等工具进行简单的接口数据模拟

工作经历

成都斯沃茨科技有限公司
2016.12 - 2018.02
  • 深度参与公司法禅产品的业务开发,该产品目的是零成本完成纸质案例电子化,为律师、律所提供先进的人工智能案例库解决方案
  • 独立承担并完成了案例列表、案例管理、办案笔记等页面的开发,其中涉及到的重难点技术包括富文本编辑、动态表单等
  • 前端项目基于 AngularJS 开发,运用框架的各种特性完成了页面的用户交互及数据对接,并实现了前后端的完全分离
  • 使用 Gulp 工具打包项目并部署上线,后期使用 Webpack 完成了项目的自动化构建
  • 使用 ECharts 等可视化技术开发了系统中的数据图表,实时展现了各种后台数据及系统中用户数据的变化情况
  • 配合UI和后端,根据产品需求,开发移动端页面,移动端页面使用 flexible.js 适配,前期基于 rem 伸缩布局方案,后期过渡到 vwflex 布局方案
  • 后期维护并解决了系统的各种功能性bug及浏览器兼容问题
成都网思科平科技有限公司
2018.07 - 至今
  • 负责EDR威胁响应平台、IDC流量检测系统、ROBIN文件扫描系统项目前台与后台管理系统相关开发
  • EDR威胁响应平台主要用于展示威胁信息,并以内网部署的方式来实现对用户终端进程、文件等恶意代码实时监控,实现预测和预警
  • 威胁中心运维平台是部署在内网的管理系统,用于统一管理内网各子项目中前端的用户权限,项目跳转,及展示用户操作、日志数据等
  • 根据需求及原型,完成项目各个页面的开发,以及项目技术选型、架构搭建到打包、部署的完整流程
  • EDR前台与后台项目均以 Vue 为核心技术栈,基于 vue-cli 脚手架,配合 iViewElement 等UI框架进行业务开发,并使用 Webpack 完成打包构建
  • 负责项目前端架构,整理开发文档与需求,确定相关技术栈和开发规范
  • 将公共组件、方法、样式与非业务模块等进行封装,在开发过程中不断完善公共依赖库,并在项目各个组件中得以复用,提升开发效率
  • Redux 的思想来管理 Vuex,保持状态结构扁平;使用 vue-i18n 实现平台多语言国际化
  • 项目业务代码的编写、迭代与上线后的持续维护与功能扩展;从用户角度出发,来验证业务逻辑,并添加相应细节交互、动效、提示等
  • 后台对采集到大量数据过滤后,在前端进行图形界面展示,并且完成了大屏页面的数据可视化,基于 EChartsD3 等第三方库实现
  • 复杂交互、查询的优化,通过 WebSocket 实时通信接受终端数据实现持续的可视化数据监控

项目经历

TinyWheels —— 组件库 源码 演示
一套基于原生JavaScript开发的组件库,无依赖、体积小、简单易用
  • 这个组件库的名字我命名为“tiny-wheels”,顾名思义,就是一些比较简单、轻量的轮子
  • 开发目的主要是个人对于技术的学习、研究、总结,其次是探索使用原生 JavaScript 实现一些常用组件的方法
  • 使用最新语法编写,纯原生 JavaScript 代码
  • 无任何第三方依赖,源码非常精简,可以自由拓展组件功能
  • 基于 WebpackBabel 的最新版本构建,采用 UMD 的模块化规范打包,兼容多种引入方式
  • 完成了《手把手教你用原生JavaScript造轮子》的系列教程,对项目中每个组件的开发、踩坑过程进行了详细的记录与讲解,现已发布在个人博客掘金Segmentfault等平台
Moni —— 记账器 Vue源码 React源码 演示
一个移动端记账应用,实现了账单添加、账单编辑、账单统计等功能
  • 这个记账应用的特点是一键极速记账,为了满足自己的日常需求而开发
  • 使用 VueReact 分别实现了一遍,让自己熟悉两个常用框架的使用,并对比它们的差异和优缺点
  • Vue版本技术栈:VueVueRouterVuexTypeScript
  • React版本技术栈:ReactReactRouter自定义HooksTypeScript
  • 在Vue版的项目中熟悉了TypeScript的基础语法,以及 Class 风格的Vue组件编写
  • 在React版的项目中使用了 Styled Components 插件,尝试用 CSS IN JS 的风格编写函数组件
  • 在两个版本中使用Vuex、自定义Hooks分别实现了组件数据的全局管理
  • 使用 LocalStorage 实现了应用数据的本地存储功能
  • 界面使用 Figma 设计,极简风格,采用黑白灰配色
Gobang —— 五子棋 源码 演示
一个五子棋AI,使用原生JavaScript开发
  • 这个项目来源于本人的毕业设计,想尝试在这个 AI 的开发过程中去检验自己关于 算法 的学习成果与能力,并巩固一些关于 JavaScript 的基础知识
  • 界面使用 Canvas 绘制,可以根据各种设备的屏幕尺寸动态调整棋盘大小,根据 dpr 的适配原理将画布等比例放大,解决了在 retina 屏幕下绘制模糊的问题
  • 项目架构基于模块化的开发思路,AI核心算法基于 Alpha-Beta 的搜索树思想,并在此基础上实现了 PVS 搜索算法的优化,搜索深度最高可达6层,棋力尚可
  • 实现了棋型判断评估函数等核心逻辑,以及启发式搜索迭代加深置换表等优化算法
  • 通过这个AI的开发,让我学会了如何使用算法、数据结构去解决实际项目中的复杂问题,以及分析问题的方法与思路