- Java基础:熟练掌握Java基础知识,具备面向对象思想,熟悉Stream流和Lambda表达式操作数据,熟悉集合的使用,如ArrayList、HashMap。
- 数据库:熟练使用MySQL数据库,熟悉MySQL的增删改查数据等命令。
- 框架:掌握Spring、SpringMVC、SpringBoot、MyBatis、MyBatis-Plus等开发框架进行项目开发,了解Spring的IOC、AOP的设计思想。
- Docker:理解镜像、容器、DockerFile的使用。
- 工具:能使用Git、Maven、ApiPost等工具进行开发。
- 算法:熟悉数据结构与算法,对算法有系统的学习与使用,如排序、贪心、动态规划、搜索与图论等算法。
- Linux:熟练使用Linux的各项命令,如文件的基本操作、Tmux、Vim、Docker等,能快速利用Docker部署个人项目到服务器中。
- 文档编写:熟练掌握Markdown语法进行编写文档,有良好的编写文档习惯,在CSDN上面有3w+浏览量的博客文章。
基于Docker动态调度算法的云编辑器:
该项目是基于SpringBoot+Vue+MyBatis-Plus+JWT+Docker开发的一款云编辑器。允许用户无需进行任何配置,登录网站即可进行开发项目。目前支持大部分编程语言项目的运行,如Java、C/C++、Python、SpringBoot等。
1. 每一个项目都会创建一份对应编程语言的Docker容器,通过Docker的沙箱隔离机制,保证了用户项目的安全性,同时防止了不同项目的环境影响。
2. 使用Docker动态调度算法,在用户项目每次启动时分配给该项目需要的内存大小,防止了某一个Docker容器占用大量内存而导致其他Docker容器无法使用内存崩溃,同时而保障了该Docker容器的正常运行。
3. 使用JWT token的无状态登录实现用户登录鉴权,用户访问时会在过滤器中统一进行鉴权,过滤器中会解析header中附带的token来判断用户的权限,在拦截器中带有token的过期鉴定,来保证token的安全性。
4. 在用户项目代码实时保存方面,使用WebSocket链接每一个代码编辑框,在编辑框关闭或项目运行时才进行IO读写保存代码到Docker容器文件中,将O(n*m)-(n为每秒代码修改字符数,m为代码修改时间,单位秒)的IO降低到了O(1)的IO。