关于我
Hi,我是施艳春,23 届本科毕业于北京理工大学,前端开发者。
工作联系: 1901177100@qq.com
技能自述
- 熟练使用HTML、CSS、JavaScript,对JS的原型链、闭包、作用域,及ES6新特性有一定了解,掌握TypeScript开发,掌握Less、Sass等CSS预处理工具。
- 熟悉Vue技术栈(Vue3+Vuex+Vue Router+Vue Cli),并有实际项目开发经验,了解Vue核心原理。
- 熟悉Webpack配置以及打包过程;熟练使用Git进行代码版本控制,使用git flow、git submodule管理项目。
- 熟悉原生微信小程序开发。
- 掌握基本的数据结构与算法分析能力;了解HTTP以及浏览器缓存。
- 了解Node.js、Koa框架及MySQL。
教育经历
- 北京理工大学
- 经济学 本科
- 2019 年 09 月 - 2023 年 06 月
- 荣誉奖项:校优秀学生、优秀书生、一等奖学金、二等奖学金、全国大学生英语竞赛三等奖
- 相关课程:互联网创业实践(100)/计算机基础 /微积分(98)/线性代数 /概率论与数理统计
- 证书:CET6(581)
实习经历
医渡云(北京)技术有限公司
前端开发实习生 数据平台业务部
2022年08月 - 2023年04月
技术栈:Vue+Element-ui+Sass+Echarts
- 负责大屏可视化开发,适配大屏,gsap展示动画效果,vue-seamless-scroll插件实现无缝滚动。
- 封装Echarts,与后端统一数据返回格式,图表数据及类型可由后端动态配置,实现后端数据驱动前端页面视图,减少后期维护成本。
- 使用虚拟滚动重构病历详情页面,提升首屏加载速度。
- 后台管理系统中业务组件如table、modal、form封装,利用配置项进行动态渲染;利用slot、mixin、组件通信等技术对组件进行抽取和封装,提高项目可维护性。
项目经验
1.音乐播放器(小程序)
2023年01月 - 2023年01月
项目介绍:使用网易云公开接口,模拟QQ音乐小程序,包含首页、推荐歌曲、推荐视频、歌单展示、歌曲播放等页面。
技术栈:WXML+WXSS+JavaScript+Vant
- 小程序分包加载、手动删除Vant中用不到的组件、手动封装防抖函数,包体积优化60%。
- 使用WXS,可以在WXML使用类似vue中过滤器、计算属性,实现时间格式化处理、字符串转数组、字符串剪切。
- 借助swiper组件实现歌曲播放页面的歌曲与歌词横向切换。
2.基于JSON Schema的表单生成器(PC端)
2022年11月 - 2022年12月
项目介绍:基于 Vue.js、JSON Schema,只需给定 JSON Schema,即可生成对应的form表单,基础组件包含单选、下拉框、日期选择、文件上传、邮箱、网址输入等。支持自定义组件,支持自定义错误提示配置和校验规则。
技术栈:Vue3+TypeScript+Ajv.js+JSS+Vite+Vitest
- 使用Ajv完成表单数据校验,ajv-i18n转换错误提示语言,ajv-errors自定义错误信息。
- 使用JSX搭配JSS开发,类型支持佳、灵活性强。
- provide、inject跨组件层级传递信息,解决组件循环引用问题。
- 通过eslint、prettier规范代码风格,进行代码检测。基于Vitest 进行单元测试,提升代码稳健性。
- 演示地址:https://vue3-json-schema-form.vercel.app/
3.阿里巴巴前端练习生计划
web前端、项目经理
2022年09月 - 2022年10月
项目介绍:E-live Data直播电商数据后台,对直播电商后台数据进行可视化有效分析,获得优秀项目称号。
PC端技术栈:Vue3+Element Plus+Axios+Pinia+Vite+Echarts
- 开发权限功能,使用token进行身份验证,通过路由守卫来实现路由拦截;根据权限的映射关系实现不同角色对应不同的菜单目录,动态生成路由映射。
- 基于Axios对基础请求过程及拦截器封装;基于Element plus二次封装组件,统一风格。
- 作为项目经理,基于开发日程,制定阶段计划,实现PC端、安卓app、小程序的顺利交付。
About Me
Hi, I’m Yanchun Shi, a front-end developer who graduated from Beijing Institute of Technology in 2023.
Contact: 1901177100@qq.com
Skills
- Proficient in HTML, CSS, and JavaScript, with a good understanding of JS prototype chain, closures, scope, and ES6 features. Experienced in TypeScript development and proficient in CSS preprocessors like Less and Sass.
- Familiar with the Vue technology stack (Vue3+Vuex+Vue Router+Vue Cli) and have practical project experience. Understanding of the core principles of Vue.
- Familiar with Webpack configuration and the bundling process. Proficient in using Git for version control, using git flow and git submodule to manage projects.
- Proficient in native WeChat mini-program development.
- Possess basic data structure and algorithm analysis skills. Familiarity with HTTP and browser caching.
- Familiarity with Node.js, Koa framework, and MySQL.
Education
Beijing Institute of Technology
Bachelor’s Degree in Economics
September 2019 - June 2023
- Honors and Awards: Excellent Student, Outstanding Scholar, First-class Scholarship, Second-class Scholarship, Third Prize in National College English Competition
- Relevant Courses: Internet Entrepreneurship Practice (100), Computer Fundamentals, Calculus (98), Linear Algebra, Probability Theory and Mathematical Statistics
- Certificate: CET6 (581)
Internship Experience
Yidu Cloud Technology Co., Ltd. (Beijing)
Front-end Development Intern, Data Platform Business Unit
August 2022 - April 2023
Tech Stack: Vue + Element-ui + Sass + Echarts
- Responsible for developing large screen visualizations, adapting to large screens, using gsap to display animation effects, and implementing seamless scrolling with the vue-seamless-scroll plugin.
- Packaged Echarts, unified data return format with the backend, and allowed dynamic configuration of chart data and types by the backend. Achieved backend-driven frontend page views, reducing maintenance costs.
- Refactored the medical record details page using virtual scrolling to improve initial loading speed.
- Packaged business components such as table, modal, and form in the backend management system, dynamically rendered using configuration options. Extracted and encapsulated components using techniques such as slots, mixins, and component communication to improve project maintainability.
Project Experience
1. Music Player (Mini Program)
Simulated QQ Music mini program using the Netease Cloud public API. It includes pages such as home, recommended songs, recommended videos, and playlist display, as well as song playback.
Tech Stack: WXML + WXSS + JavaScript + Vant
- Optimized package size by utilizing subpackage loading, manually removing unused components from Vant, and manually encapsulating debounce functions. Achieved a 60% reduction in package size.
- By using WXS, similar to filters and computed properties in Vue, we can achieve functionalities like time formatting, string-to-array conversion, and string truncation in WXML.
- Leveraging the swiper component, we implemented horizontal switching between songs and lyrics on the song playback page.
2. JSON Schema-based Form Generator (PC)
A form generator based on Vue.js and JSON Schema. With a given JSON Schema, it can generate corresponding form fields. Basic components include radio buttons, dropdowns, date pickers, file uploads, email inputs, URL inputs, etc. Supports custom components, custom error message configuration, and validation rules.
Tech Stack: Vue3 + TypeScript + Ajv.js + JSS + Vite + Vitest
- We utilized Ajv for form data validation, ajv-i18n for converting error messages to different languages, and ajv-errors for custom error messages.
- Development was done using JSX combined with JSS, providing excellent type support and flexibility.
- The provide and inject pattern was used to pass information across component hierarchies, resolving circular reference issues.
- Code style was enforced using eslint and prettier for code formatting. Unit tests were conducted using Vitest to ensure code reliability.
- Demo: https://vue3-json-schema-form.vercel.app/
3. Alibaba Front-end Internship Program
Web Front-end, Project Manager
September 2022 - October 2022
E-live Data, a live e-commerce data backend, visualizes and analyzes data from live e-commerce platforms. Rewarded as an excellent project.
PC Tech Stack: Vue3 + Element Plus + Axios + Pinia + Vite + Echarts
- Implemented authorization functionality using tokens for identity verification and route guards for route interception. Different roles were mapped to different menu directories to generate dynamic route mappings.
- We encapsulated the basic request process and interceptors based on Axios. Customized components were developed using Element Plus to maintain a consistent style.
- As a project manager, I created development schedules and milestone plans to ensure the successful delivery of the PC version, Android app, and mini-program according to the project timeline.