悟空-三年-前端工程师

微信:shanyue-bot | 18334567890 | me@shanyue.tech | shfshanyue | https://shanyue.tech

教育经历

  • 山西⼤学 硕士 2012-2015
  • 山西大学 本科 2008-2012

个人技能

  • 熟练使用 JavaScript ES6+, TypeScript, 熟悉函数式编程和面向对象编程范式
  • 熟练使用现代前端工程化工具, 如 Webpack, Rollup, Vite, 能够优化构建过程和开发体验
  • 熟练编写单元测试, 集成测试和端到端测试, 熟悉 Jest, Mocha, Cypress 等测试框架
  • 了解持续集成和持续部署 (CI/CD) 的概念和实践
  • 熟悉代码质量工具, 如 ESLint, Prettier, 能够配置和使用这些工具提高代码质量

工作经历

水风科技 2019-2023

山月科技 2016-2019

项目经历

XXX 组件库和公共函数库

技术栈: react/typescript/storybook/jest/rollup/lerna/pnpm

职责以及难点:

  1. 设计并实现一套符合公司 UI 规范的 React 组件库,包含 50+ 基础组件和 20+ 业务组件。确保组件的可复用性、可扩展性和一致性,支持自定义主题,并提供详细的设计文档和使用指南,方便团队快速开发和维护统一风格的用户界面。
  2. 使用 TypeScript 编写所有组件,提供 100% 的类型覆盖率和完整的类型定义。实现严格的类型检查,减少运行时错误,提高代码质量。编写详尽的 TypeScript 文档,包括接口定义、泛型使用和高级类型技巧,帮助开发者更好地理解和使用组件。
  3. 利用 Storybook 搭建交互式组件展示和文档系统,包含 200+ 用例。实现自动化文档生成,支持实时编辑和预览,提供组件 Props 表格、使用示例和最佳实践。集成 Accessibility 插件,确保组件的可访问性。方便其他开发者快速上手使用和贡献代码。
  4. 编写详细的单元测试和集成测试,实现 90% 以上的代码覆盖率。使用 Jest 进行单元测试,React Testing Library 进行组件测试,确保组件在各种场景下的正确性。实现端到端测试,模拟用户操作,保证组件库的质量和稳定性。设置持续集成流程,自动运行测试。
  5. 使用 Rollup 构建工具,优化打包输出,支持 ESMCommonJSUMD 等多种模块规范。实现 Tree-shaking,减小打包体积。配置代码压缩、CSS 提取和资源内联等优化措施。生成 Source Map 便于调试。支持不同环境 (开发、生产) 的构建配置,提高开发效率和生产性能。
  6. 实现组件库的按需加载机制,支持基于 ES moduletree-shaking 和按需引入。开发 Babel 插件,实现自动导入样式文件。优化组件引入方式,如支持 import { Button } from 'components/button' 的导入方式。减小业务项目的最终打包体积,提升应用加载速度。
  7. 使用 pnpm 管理多包项目,优化版本控制和发布流程。实现组件库的模块化管理,将核心组件、业务组件和工具函数分别管理。配置 workspace,优化依赖管理。实现统一的版本发布流程,自动化更新 changelog、打 tag 和发布 npm 包。支持独立版本管理和统一版本管理。
  8. 实现完整的组件生命周期管理策略,包括组件的创建、测试、文档、发布和废弃流程。制定严格的代码审查和合并规范,确保代码质量。建立组件更新和废弃机制,包括版本兼容性保证、Breaking Changes 管理和迁移指南,方便用户及时更新和升级。
  9. 优化组件库的性能,实现关键组件的延迟加载和虚拟化渲染。使用 React.memouseMemo 等优化手段,减少不必要的重渲染。实现大数据量下的高性能表格和列表组件,支持虚拟滚动和分页加载。提供性能分析工具,帮助开发者诊断和解决性能问题。
  10. 设计并实现组件库的国际化 (i18n) 解决方案,支持多语言切换和本地化。集成 react-intl,提供统一的翻译管理机制。实现 RTL (从右到左) 布局支持,适应不同语言环境。提供完整的国际化文档和最佳实践指南,方便开发者快速实现应用的多语言支持。
  11. 实现组件库的主题定制系统,支持灵活的样式覆盖和动态主题切换。设计可扩展的 CSS-in-JS 解决方案,如集成 styled-componentsemotion。提供预设主题和自定义主题能力,支持深色模式。开发主题设计工具,方便用户可视化配置和预览主题。
  12. 建立组件库的可访问性 (a11y) 标准,确保所有组件符合 WCAG 2.1 AA 级别要求。集成 axe-core 进行自动化可访问性测试。实现键盘导航、屏幕阅读器支持和高对比度模式。提供可访问性最佳实践指南和培训材料,提高团队的可访问性意识。
  13. 开发组件库的插件和扩展系统,支持自定义组件和功能的快速集成。设计插件 API 和生命周期钩子,允许第三方开发者扩展组件功能。提供插件开发文档和示例,建立插件市场,促进组件生态系统的发展。实现插件的版本管理和兼容性检查。
  14. 实现组件库的服务端渲染 (SSR) 支持,确保所有组件在服务端和客户端表现一致。解决 样式注入动态组件加载 等 SSR 相关问题。提供 SSR 性能优化方案,如组件预渲染和流式渲染。编写详细的 SSR 集成指南,帮助开发者在 Next.js 等框架中使用组件库。
  15. 建立组件库的性能基准测试系统,持续监控和优化组件性能。使用 Lighthouse 和 Web Vitals 指标评估组件性能。实现自动化性能测试流程,在 CI/CD 中集成性能检查。提供性能优化建议和工具,如组件懒加载、代码分割等,帮助用户构建高性能应用。
  16. 开发组件库的在线演示和实验平台,类似 CodeSandbox。支持实时编辑和预览,提供组件示例和模板。集成版本选择和依赖管理,方便用户尝试不同版本的组件。实现代码分享和协作功能,促进社区交流和问题解决。定期收集用户反馈,持续改进组件设计。
  17. 实现组件库的自动化文档生成和维护系统。使用 TypeDoc 等工具从源码注释生成 API 文档。开发 Markdown 增强工具,支持交互式代码示例和实时预览。实现文档版本控制和多语言支持。集成搜索功能和文档分析工具,优化文档结构和内容,提高文档的可用性和完整性。