简历的重要性相信大家都是清楚的,简历的好坏直接决定了面试机会的多少,以及是否有面试机会。
例如,上周我这把一个 92 院校的同学推荐给朋友表哥了,他表哥是某知名电商公司 Leader 级别的人物,他去这个 PDD 已经 5 年了,是位不折不扣的大佬,但推荐的结果却令人感到失望,不出意外的挂掉了,这是他的反馈:
0.如何写好简历?
在一份简历中,HR 和面试官最关注的点有以下 3 个:
- 学校/学历。
- 专业技能。
- 项目经验。
其中,学校/学历是不可变的,所以几乎没有优化空间可言,那作为 Javaer 的我们就只能在专业技能和项目经验上下足功夫了。
1.专业技能
什么样的专业技能才是面试官想要看到的?
我想应该是这样的:
- 分布式/微服务技术:各种微服务组件的使用,如 Spring Cloud Gateway、Spring Cloud LoadBalancer、Spring Cloud Openfeign、Spring Cloud Alibaba Nacos/Sentinel/Sentinel、Skywalking 等。
- 消息中间件:消息中间件目前三分天下,Kafka、RocketMQ、RabbitMQ,建议学习前两个。
- 分库分表:Sharding-JDBC、MyCat。
- 分布式锁:Redisson、Zookeeper 实现分布式锁。
- 并发编程技术:线程池、虚拟线程等。
- 安全组件:Spring Security、JWT、OAuth 2 等。
- 数据库存储:MySQL、Redis、Mongodb、TiDB 等。
- 其他:Spring Boot、Mybatis/Mybatis-Plus、XXL-Job、MinIO、Canal、Spring Validation、Swagger、JVM 调优、网络、基础数据结构和常见算法等。
2.项目经验
相比于人人都写的差不多专业技能之外,项目经验会显得更为重要,因为项目的深浅和好坏是拉开简历差距的主要模块。
好的项目格式是这样的:
项目模块划分要清晰,且项目的技术栈和项目亮点一定要出众,否则很难拿到面试机会。
3.项目推荐
那去哪里找符合面试官要求的项目呢?
为了解决这个问题,所以最近一段时间,我想到了一个 AI 相关的微服务项目:AI Cloud。
3.1 什么是AICloud?
AI Cloud 一键式生成所有大模型结果的项目,支持近百种大模型调用,还有社区交流和讨论功能。
这个项目除了是热门的 AI 方向之外,他还使用了众多主流的 Java 技术,例如 Spring Cloud、并发编程、分布式锁、分库分表等。
AI Cloud 是 AI 方向的微服务项目,包含 19 个主流技术和 10 大项目亮点,主要解决的痛点是一键式生成 AI 大模型答案的工具,支持对话和画图功能,还有社区讨论,以及评论、点赞功能。
AI Cloud 项目包含以下主要功能:
- AI 工具:一键式提问生成所有大模型的答案,在没有 AI Cloud 之前,我们在查询一个复杂问题时,需要复制粘贴到每个大模型查询答案,根据这些答案才能汇总自己需要的信息;而有了这个系统之后,一键发送问题就能收获所有大模型的答案了,方便快捷。AI 工具目前提供的功能有:
- 对话功能
- 绘图功能
- 话题讨论功能:除了 AI 工具可以使用之外,还有话题讨论板块,可以分享 AI 技术和聊天吹水两不误,工具和娱乐都有了。
- 用户体系和历史记录:用户登录之后才可以使用大模型,这样也能更好的记录用户(使用 AI 工具的)历史信息。
- 用户使用次数限制:因为大模型接口的调用是付费的,所以需要限制每个用户的使用次数,每晚 00 点重置限制次数。
支持近百种 AI 模型:本项目支持的 AI 大模型有:ChatGPT、通义千问、讯飞星火、文心一言、豆包(字节旗下),还有自己本地部署的 AI 模型(近百种大模型的支持)。
3.2 使用技术
AI Cloud 使用的技术列表如下:
Spring Boot
- Spring Cloud Alibaba
- MySQL
- Mybatis-Plus
- Redis
- Kafka
- Spring Cloud Alibaba Nacos
- Spring Cloud Alibaba Sentinel
- Spring Security
- XXL-Job
- JWT
- MinIO
- 并发编程
- 分布式锁
- Sharding-JDBC(分库分表)
- Canal
- Hutool
- Spring Validation
Swagger
3.3 项目亮点
使用并发编程技术保证项目的执行效率。
- 使用分布式锁保证大模型接口调用的安全性和稳定性,其中分布式锁实现了锁重入、锁(自动)续期、锁误删、单点分布锁故障等问题。
- 前、后端在关键操作上添加了幂等性判断(关键实现技术为:自定义注解 + Redis),保证系统的稳定性和安全性。
- 使用责任链设计模式保证系统访问安全。
- 使用 MQ 实现系统的削峰填谷,以及保证整个程序流程执行的完整性。
- 通过监控 MySQL 的 Binlog 和 Canal 解决数据库和 Redis 的数据一致性问题。
- 项目中使用了分库分表技术增加数据库的并发处理性能。
- 高并发场景稳定的稳定性设计,例如自定义拒绝策略保证任务不丢失和及时通知到负责人进行手工补偿处理。
- 支持云端大模型和本地大模型的调用,近百种大模型的支持和调用。
- 使用最新的 JDK 长期支持版和最新版的 Spring Boot 框架和组件完成程序的开发。
最后
大家可以仿照上面的思路来实现一个 AI 相关的微服务项目,使用以上技术点和项目亮点,当然也可以自行扩展和添加更多技术和功能实现。