Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

项目经历

在线教育平台开发

项目经历

  • 项目名称: 在线教育平台开发
  • 项目描述: 开发一个在线教育平台,提供学生登录、签到、课程浏览、互动课堂、在线学习等功能。
  • 技术架构:
    • 前端界面使用React Native框架搭建,与后端API进行数据交互,实现用户权限管理、课程播放和作业提交等功能。
    • 处理大量异步数据的加载和展示,优化页面性能和用户体验。
    • 使用懒加载和分片加载减少首屏加载时间,提高页面加载速度。
    • 使用LocalStorage缓存用户数据,减少请求次数,提高响应速度。
    • 使用防抖和节流等策略,防止用户多次提交表单或触发组件多次渲染。
  • 成果与效果:
    • 成功开发并部署了功能完善的在线教育平台,提供了学生登录、签到、课程浏览、互动课堂、在线学习等功能。
    • 通过优化页面加载速度和用户体验,提高了平台的性能和用户满意度。
  • 后续工作:
    • 持续改进平台的功能和性能,添加更多教育相关的功能模块,如在线测验、讨论区等。
    • 进一步优化前端代码和后端API,提高系统的稳定性和扩展性。
    • 收集用户反馈,不断改进平台的用户界面和功能,以满足不同用户的需求。

通过使用React Native框架搭建前端界面,并与后端API进行数据交互,该项目成功开发了一个功能完善的在线教育平台。为了提高页面性能和用户体验,采取了懒加载和分片加载策略,减少首屏加载时间,并使用LocalStorage缓存用户数据以提高响应速度。同时,使用防抖和节流等策略防止用户多次提交表单或触发组件多次渲染。这些优化措施有效提升了平台的性能和用户满意度。在后续工作中,计划不断改进平台的功能和性能,并根据用户反馈持续优化用户界面和功能,以提供更好的在线教育体验。

  1. 异步数据加载和展示优化:

    • 分页加载:对于大量数据的展示,可以采用分页加载的方式,每次加载适量数据,减少页面加载时间。
    • 虚拟滚动:对于长列表的展示,使用虚拟滚动技术,只渲染可见区域的数据,减少页面渲染时间和内存占用。
    • 数据缓存:对于频繁访问的数据,可以使用LocalStorage或IndexedDB进行缓存,减少请求次数,提高响应速度。
  2. 首屏加载性能优化:

    • 懒加载:将页面中非关键内容延迟加载,只在用户需要时才加载,减少首屏加载时间。可以使用React Suspense和React.lazy等技术实现懒加载。
    • 分片加载:将页面的代码分为多个模块,按需加载,减少首屏需要加载的代码量。可以使用Webpack的代码分割功能实现分片加载。
  3. 用户数据缓存:

    • 使用LocalStorage:对于用户的登录状态、学习进度等数据,可以使用LocalStorage进行缓存,提高用户体验和响应速度。
    • 合理缓存策略:根据数据的更新频率和重要性,制定合理的缓存策略,避免缓存过期或过多占用存储空间。
  4. 防止用户多次提交和组件多次渲染:

    • 防抖:对于用户可能频繁触发的操作,如点击按钮提交表单,可以使用防抖技术,限制触发频率,防止多次提交。
    • 节流:对于需要频繁触发的事件,如滚动事件、输入框输入事件,可以使用节流技术,限制触发频率,减少组件渲染次数。

通过采用懒加载、分片加载、数据缓存、防抖和节流等优化策略,可以提升在线教育平台的性能和用户体验,减少页面加载时间、优化数据展示,并防止用户多次提交和组件多次渲染。

手写数学公式识别

项目经历

  • 项目名称: 手写数学公式识别网络
  • 项目描述: 使用encoder-decoder结构搭建手写数学公式识别网络,将图片识别为Latex字符串。项目创新点在于将Latex串处理为树形结构,转化为子节点串、父节点串和结构串的组合,利用Latex串的特点进行识别。
  • 技术架构:
    • encoder部分采用ResNet提取图像特征。
    • decoder分为两个子层:
      • 第一层采用TransformerDecoder的结构,计算图片和父节点串之间的对应关系。
      • 第二层采用两个TransformerDecoder结构的解码器:
        • 第一个解码器计算第一层的输出与子节点串的对应关系。
        • 第二个解码器计算图片与第一个解码器得到的结果的对应关系。
    • 将得到的输出映射到字典空间,预测Latex串与结构串,并根据这两个串得到原始的Latex串。
  • 成果与效果:
    • 在CHROME2014、2019 HME100K等公开数据集上分别取得61%、55%的良好效果。
  • 后续工作:
    • 使用Yolov8对图片的公式部分与中文部分进行分割。
    • 分别使用不同的网络识别中文与数学公式,实现数学主观题图像到文本的识别。

通过使用encoder-decoder结构和创新的Latex串处理方法,该项目实现了手写数学公式的识别。采用ResNet提取图像特征,并通过TransformerDecoder结构的解码器进行多层解码,最终将输出映射到字典空间以预测Latex串与结构串。该方案在公开数据集上取得了良好的识别效果。在后续工作中,使用Yolov8对图片进行公式和中文部分的分割,并使用不同的网络进行中文和数学公式的识别,进一步提高数学主观题图像到文本的识别能力。

以下是对项目经历的优化建议:

  1. 项目描述简化:

    • 将项目描述中的具体技术细节进行简化,突出项目的创新点和成果。
  2. 结构化描述:

    • 将项目的整体结构进行清晰的描述,包括encoder-decoder结构和各个子层的功能。
  3. 技术细节优化:

    • 在描述技术细节时,可以提供更具体的信息,如具体使用的ResNet版本、TransformerDecoder的参数设置等。
  4. 数据集效果描述:

    • 描述数据集的名称和规模,并提供更具体的效果指标,如准确率、召回率等。
  5. 后续工作展望:

    • 提供项目的后续工作展望,如使用Yolov8进行公式和中文部分的分割,进一步提高数学主观题图像到文本的识别效果。

通过优化项目经历的描述,可以更清晰地展示项目的创新点、技术细节和成果。这样能够更好地突出个人的能力和项目的价值,给招聘者留下深刻的印象。同时,建议在简历中提供更多具体的项目细节和成果,以便招聘者更好地了解您的能力和经验。

自我评价

我是一个热爱前端开发的工程师,熟悉HTML,CSS,熟悉Sass预处理语言,具有扎实的JS基础,熟悉ES6+语法,TypeScript语法,熟悉Vue技术栈(Vue2/Vue3,Vue router,Pinia),了解webpack,vite前端工程化工具,了解git项目管理工具,了解nodejs框架。

评论