校招毕业生简历怎么写项目经验?这么写才厉害!

Java面试 潘老师 9个月前 (08-12) 275 ℃ (0) 扫码查看

之前有些朋友向我反映,他们在写简历时遇到了一个问题,就是自己的项目经历相对较少,这给他们找工作带来了一些困扰。尤其是对于即将毕业的大学生和工作经验不到三年的同学们来说,这个问题更加突出。今天,我想分享一些关于如何将技术派项目写入简历的经验,希望能够帮助到大家。

01 校招毕业生

校招毕业生对于项目的考察,主要还是偏基础和应用。

1.1 如何写简历

技术栈:Spring Boot、MyBatis-Plus、MySQLRedis、ElasticSearch、RabbitMQ、MongoDBDocker

项目描述:技术派社区是一个前后端分离的项目,包括PC端和管理后台。它是一个专注于帮助互联网技术人员成长的社区,提供内容分享和交流的平台。

责任描述:作为核心研发人员,我主要负责以下工作:

  1. 登录认证:实现用户登录认证功能,包括验证码验证和与前端保持半长链接映射关系,通过扫码关注公众号并输入验证码后自动登录系统。
  2. 消息通知:利用RabbitMQ实现消息的异步解耦,将消息发送到消息队列,提高系统效率和服务稳定性。
  3. 文章模块:开发文章模块,包括文章的发布、编辑、删除等功能,确保用户可以方便地进行内容分享和交流。
  4. 管理后台:完成管理后台的二次开发,借助开源组件,支持日常的运营配置工作。

核心技术:

  • 登录认证:通过验证码和前端保持半长链接映射关系,实现用户扫码关注公众号并输入验证码后自动登录系统。
  • 消息通知:利用RabbitMQ实现消息的异步解耦,提高系统效率和服务稳定性。
  • 用户活跃度统计:利用Redis实现计数统计和用户活跃度排行,通过Redis与MySQL的结合,提高系统并发能力。
  • 图片处理:借助开源的Markdown文本编辑器和OSS图片服务器,实现图片自动转链和上传功能。
  • 管理后台:借助开源组件,完成管理后台的二次开发,支持日常的运营配置工作。

1.2 核心面试点

考点1:微信公众号自动登录

在技术派社区项目中,为了实现微信公众号的自动登录功能,我参与了以下关键步骤:

  1. 在前端页面上展示公众号二维码和待输入的验证码,并与前端构建一个半长连接,并保存验证码和半长连接之间的映射关系。
  2. 当用户向公众号发送验证码时,微信公众平台会将用户发送的信息转发给技术派的服务器。我们通过验证码来识别请求登录的用户身份。
  3. 由于保存了验证码和半长连接的映射关系,我们可以根据验证码找到对应的半长连接,从而实现用户的自动登录跳转。

为了保证验证码的唯一性、唯一设备和唯一用户识别,以及在刷新验证码时将之前的验证码置为失效,我们在系统设计中采取了相应的策略。具体的实现细节可以参考技术派的教程。

在登录后,我们通过使用Cookie和Session机制来实现登录鉴权。这样,用户在登录后的访问请求中会携带相应的Cookie信息,服务器通过验证Cookie的有效性来判断用户的登录状态。

考点2:通过RabbitMQ实现消息异步解耦

为了实现消息的异步解耦,我们选择了RabbitMQ作为消息队列中间件。以下是一些关键点:

  1. 异步解耦的目的是避免同步消息发送时可能出现的异常影响主流程,以及减少消息过多对服务性能的影响。
  2. RabbitMQ被选择的原因是它具有活跃的社区支持,并提供了易用的用户界面,方便用户监控和管理消息。
  3. RabbitMQ支持消息路由和自动恢复功能,即使发生宕机,消息也能够得到恢复。

需要注意的是,作为应届生,面试官一般不会过多考察消息队列的选型,但如果被问到,可以简要介绍RabbitMQ的优势和适用场景。

考点3:MySQL + Redis 相关知识点

问题1:如何提高系统并发性能?

为了提高系统的并发性能,我们在MySQL上游引入了Redis缓存。具体做法包括:

  • 将热点数据放入Redis缓存,例如文章分类和标签等,这些数据使用频率高且不经常变动。后台配置完毕后,会实时存入缓存中,成为热点缓存。同时,为热点缓存设置失效时间,例如30分钟,以兜底策略解决Redis和MySQL不一致的问题。
  • 对于计数和排行榜等功能,我们也可以利用Redis来实现,因为Redis具有高性能和存储能力,并且支持原子性操作。我们可以使用INCR或INCRBY等命令来实现实时计数功能。

问题2:如何解决MySQL和Redis缓存的一致性问题?

在实际开发中,MySQL和Redis之间的一致性问题是需要考虑的。一种常见的解决方案是使用缓存更新策略,即在数据更新时,同时更新MySQL和Redis中的数据。

具体做法可以是在更新MySQL数据后,同步更新Redis缓存。例如,在文章发布或编辑时,我们可以先更新MySQL中的数据,然后再更新Redis中的缓存,确保两者的数据保持一致。

考点4:图片自动转换等其他知识点

为了实现图片自动转换功能,我们对技术派社区项目进行了以下处理:

  • 识别文章中的图片链接,并将这些图片批量上传到OSS图片服务器,实现图片链接的自动转换。
  • 对于使用Markdown格式的图片链接,我们可以直接识别并转换。而对于用户手动上传的本地图片,我们也提供了相应的功能,以满足不同用户的需求。

考点5:管理后台相关知识点

管理后台是基于React框架的开源系统进行二次开发的。它采用前后端分离的方式,主要用于PC端的日常运营和配置工作。

管理后台包括多个模块,如运营配置、文章管理、教程配置、数据统计、标签和分类管理以及用户权限管理等。作为核心研发人员,我主要负责后台的开发工作。

虽然后台的功能开发并不复杂,但通过参与这一部分的开发,我得到了很好的编程能力锻炼。

02 工作 0-3 年

工作 3 年的同学对于项目的考察,主要还是技术点,会问的相对深入。

2.1 如何写简历

项目名称:技术派社区项目(2022.7-2023.1)

项目描述:技术派社区是一个前后端分离的项目,旨在帮助互联网技术人员成长,提供内容分享和交流的平台。项目包括前端PC端和管理后台。

责任描述:作为项目负责人,我承担了系统设计和核心模块的开发工作。主要职责包括登录认证、文章模块、教程模块等的开发。

核心技术:

  1. 构建可扩展和高可用的后端服务:基于主流技术栈,结合异步、分布式缓存、集群和多线程等技术,实现后端服务的高可用性、可扩展性和伸缩性。
  2. 微信公众号自动登录:通过验证码和前端保持半长链接映射关系,实现用户扫码关注公众号并输入验证码后的自动登录功能。
  3. MySQL + Redis实现高吞吐和高可用:利用MySQL和Redis的组合,通过将热点数据缓存到Redis中,提高系统的吞吐量和可用性,并保证两者之间的数据一致性。
  4. RabbitMQ实现消息的异步解耦:通过RabbitMQ实现消息的异步解耦,提升系统的并发处理能力和效率,并提高消息的容错性和可观测性。
  5. 图片自动转链和上传:借助开源的Markdown文本编辑器和OSS图片服务器,实现图片自动转链和上传功能,提升用户在文章编辑中的便利性和体验。

通过以上核心技术的应用,我们成功地构建了一个功能完善、高性能和可靠的技术派社区项目,为互联网技术人员提供了一个优质的内容分享平台。

2.2 核心面试点

考点1:架构和方案设计

该技术派社区项目采用前后端分离的架构,包括前端PC和运营后台。前端涵盖登录鉴权、用户中心、文章教程、评论、消息通知等五大模块,围绕用户和文章展开。运营后台用于文章、教程、标签、广告位、用户权限的管理。

登录鉴权方面,主要依托微信公众号,用户通过扫描二维码完成自动登录,同时使用Cookie和Session机制实现登录鉴权。

在文章教程模块中,借助开源的Markdown文本编辑器和OSS图片服务器,实现图片自动转链和上传功能。

为了处理高并发、异步、提高效率等需求,采取了多项设计。使用RabbitMQ实现消息的异步解耦,提升系统的并发处理能力和效率;利用Redis处理高并发流量,解决MySQL和Redis之间的一致性问题;通过Elasticsearch实现文章搜索功能,提高搜索效率;使用MongoDB实现高效计数等功能。

项目目前采用多机部署,数据库采用分库分表加集群模式,Redis也采用了集群模式,进一步提升系统的稳定性、容错性和吞吐量。

考点2:微信公众号自动登录

用户在前端点击登录时,会展示微信公众号二维码和待输入的验证码,并与前端构建一个半长连接,同时保存验证码和半长连接之间的映射关系。

当用户向公众号发送验证码时,微信公众平台会将用户发送的信息转发给技术派的服务器,然后通过验证码来识别请求登录的用户身份。

由于保存了验证码和半长连接的映射关系,可以通过验证码找到对应的半长连接,实现用户的自动登录跳转。

保证验证码的唯一性、唯一设备、唯一用户识别,以及刷新验证码时将之前的验证码置为失效,可以在系统设计中采取相应的策略。具体的实现细节可以参考技术派的教程。

登录后,通过使用Cookie和Session机制实现登录鉴权。用户在登录后的访问请求中携带相应的Cookie信息,服务器根据验证Cookie的有效性来判断用户的登录状态。

考点3:通过RabbitMQ实现消息异步解耦

为了实现消息的异步解耦,选择了RabbitMQ作为消息队列中间件。

异步解耦的目的是避免同步消息发送时可能出现的异常影响主流程,以及减少消息过多对服务性能的影响。

选择RabbitMQ的原因是它具有活跃的社区支持,并提供了易用的用户界面,方便监控和管理消息。对于该项目的并发要求不高,消息通知也可以无序,同时RabbitMQ支持消息路由和宕机后的消息自动恢复,因此选择了RabbitMQ作为消息队列。

需要注意的是,作为应届生,面试官一般不会过多考察消息队列的选型,但如果被问到,可以简要介绍RabbitMQ的优势和适用场景。

考点4:MySQL + Redis 相关知识点

问题1:如何提高系统并发性能?

为了提高系统的并发性能,可以在MySQL上游加一层Redis缓存。

实现方式主要是将热点数据放入Redis缓存,例如文章分类和标签等使用频率高且不经常变动的数据。在后台配置完毕后,热点数据会实时存入缓存中,作为热点缓存。同时,为热点缓存设置失效时间,例如30分钟,以兜底策略解决Redis和MySQL不一致的问题。

对于计数和排行榜等功能,也可以利用Redis实现。

问题2:如何解决MySQL和Redis缓存的一致性问题?

对于MySQL和Redis缓存的一致性问题,没有完全解决的方法,只能尽量规避。

一种常见的解决方案是使用缓存更新策略,即在数据更新时,同时更新MySQL和Redis中的数据。

具体做法可以是先写入MySQL,再删除Redis中的缓存数据。这种方式在缓存未失效的情况下可能存在一定的数据不一致性,但在实际应用中可以接受。

如果面试官进一步询问一致性方案,可以提及一些其他解决方案,如使用分布式缓存锁、数据库级别的一致性保证等。

考点5:图片自动转换等其他知识点

为了实现图片自动转换功能,我们会识别文章中的图片链接,并将这些图片批量上传到OSS图片服务器,实现图片链接的自动转换。

除了Markdown格式的图片链接自动转换,用户也可以手动上传本地图片,以满足不同用户的需求。这样可以方便那些习惯在文章编辑器直接写文的用户,同时支持多样性的功能。

03 写在最后

这篇文章旨在帮助“校招毕业生”和“工作0-3年”群体了解如何将技术派项目整合到自己的项目经历中,并在简历中突出展示。上述项目内容可以直接复制到简历中,以展示自己在技术派项目中的经验和技能。

针对面试官提问环节,我准备了大量的高频考点,旨在为大家提供问题解答的思路和参考答案。

除了上述考点外,技术派项目还涉及许多其他的考点,例如ES查询、数据库版本管理、配置中心、大厂的项目管理和方案设计等。根据个人的兴趣和擅长领域,可以在这些考点上进一步加强学习,以展示自己的专业知识和能力。

最后,强调对于项目中的知识点,一定要深入理解和掌握。例如微信公众号自动登录,面试官可能会深入提问,如果没有深入学习,可能会无法回答。因此,建议大家结合技术派的教程,全面学习项目内容。

总之,这篇文章旨在帮助大家充分准备面试,展现自己的技术实力和项目经验。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/javainterview/8059.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】