简历

基本信息

个人信息: 肖畅 - 男 - 2021 届本科生

本科专业: 重庆邮电大学 - 网络工程

GitHub: https://github.com/RetroAstro

学习年限: 高考完的暑假开始自学前端至今

求职意向: 前端工程师

实习经历

腾讯(深圳)PCG · 社交平台产品部 · QQ 小程序 (2019.7 - 2019.8)

业务上参与腾讯相册、看图相册等小程序的开发与维护。基于小程序云开发,完成了上传过程优化、消息列表、回收站等功能,优化了产品的用户体验。

技术上实践了导师布置的课题 - 小游戏性能分析工具。其基本原理是在开发者扫码上传代码时通过 AST 层插入打点代码,并在真机调试时收集函数耗时、函数名以及函数对应行列号等数据,通过 chrome 的 performance 面板可以将收集到的数据以函数调用帧栈的形式展示,并且可对原始代码直接进行调试。最终本人完成了基于该工具的 Babel 插件,并总结出了相关文章与代码实现。

项目经历

音悦 ~ PWA(2018.4 - 2018.5)

一款 PWA 版的在线音乐应用,前端使用原生 JavaScript 编写基础功能与交互逻辑,使用 CSS (3)、Sass 进行 UI 样式编写,配合 rem 与 vw 并采用 flex 布局进行移动端页面的开发。基于 PWA 中的 Manifest、Service Worker、cacheStorage 等技术实现了应用添加至桌面、静态资源缓存、加载性能优化、离线保存歌单与音乐等功能。后端使用 Koa 搭建简易的 API 服务,将原始的音乐接口数据进行裁剪、过滤,使请求路由与返回数据一致。

重邮 2018 新生专题网(2018.7 - 2018.9)

基于 vue + vue-router + webpack 开发的 UI 与交互都较为复杂的移动端 SPA 。手动搭建单页应用的 webpack 脚手架,并使用 eslint + stylus + postcss 作为前端开发工作流。使用一系列的动画库、图表库、移动端常见功能库实现了渐变图片预览、移动端平滑滚动、学生信息数据可视化等功能,最终的线上应用有着较好的用户交互体验。性能优化方面使用了图片压缩、代码分割、CDN 加速、引入开场动画等。

领奖工具后台管理系统(2018.11 - 2019.2)

基于 react + react-router + react-spring + unstated + event-bus 实现的一套方便日常活动奖品领取的后台管理系统。基于 session 并采用对称加密的方式,结合动态路由实现的前端身份鉴权机制。配合 unstated 与 localStorage ,将用户输入与后端返回数据进行统一管理。利用自己编写的 event-bus 实现跨组件通信,方便了奖品创建数据的聚合与暂存。结合相关库实现了 Excel 的导入与导出、转换页面元素为图片并保存等复杂功能。

重邮圈 ~ QQ 小程序(2019.4 - 2019.6)

一款 UI 干净简洁且面向校园的社交类小程序。利用 Gulp 搭建小程序工作流,使用 eslint + stylelint + prettier 对代码进行质量检查。遵循 standard 代码规范且在项目开发中使用了一定的代码复用与重构技巧。采用了大量前端常见的性能与用户体验优化技巧,如骨架屏、图片预加载、图片懒加载、小程序页面数据的局部加载等。使用 redux + redux-thunk 作为全局状态管理工具,利用数据库中关联表的知识,设计出范式化的 state ,编写出可维护且可扩展的 reducers ,真正贯彻了单一数据源的理念。抽离下拉刷新、上拉加载以及 redux 注入小程序页面等公共逻辑,从而达到代码复用的效果。整个项目中几乎没有任何注释,但重视了每一个变量及函数的正确命名,以达到代码即注释的重构理念。

擅长技能

前端基础

能够使用语义化的 HTML ,模块化的 CSS ,完成对 PC 端以及移动端单页应用的样式布局、交互动效等功能的开发。

了解小程序基本的业务开发流程,懂得如何针对小程序进行调试与性能优化。

熟悉原生 JavaScript 、ES6+ 语法规范。

了解 TypeScript 类型系统,能够使用 TypeScript 进行项目开发。

熟悉模块化编程、异步编程等概念,了解 OOP、AOP、FP 等编程范式理念。

了解常见的设计模式、基本的数据结构与算法。

前端框架

能够基于 React 全家桶构建常见的前端应用。

了解前端 MV* 框架,掌握 React 的基础知识,了解该框架的部分原理。

前端工程化

了解且使用过 Gulp、Parcel、Webpack 等前端构建工具来搭建常见的前端工作流。

了解基本的单元测试与重构技巧,关注代码质量与风格规范,并在项目中有所实践。

熟悉基础的 Git 操作,了解常见的 Git 工作流。

其他属性