在前端技术栈方面,我熟练掌握HTML和CSS,可以编写结构化的网页内容并实现页面布局和美化。使用Vue.js进行前端开发,掌握Vue的组件化思想,并通过Vue CLI脚手架工具快速构建项目,熟悉Vuex状态管理,能有效管理复杂应用的状态。同时,使用Arco Design组件库提高开发效率和用户体验,利用ELint和prettier保证代码质量,并用TypeScript提高代码的可维护性和可读性。此外,掌握Axios用于前后端数据交互。
在后端技术栈方面,我精通Java编程语言,能够编写高效的后端代码。熟悉Spring Framework,包括Spring Boot、Spring MVC、Spring Cloud和Spring Security。使用Spring Boot快速构建微服务应用,掌握Spring Boot的自动配置和简化开发的特点;熟悉Spring MVC的请求处理机制,通过DispatcherServlet分发请求;熟悉Spring Cloud微服务架构,能够使用Spring Cloud Alibaba组件进行微服务开发,并通过Nacos进行服务注册和发现,确保微服务之间的高效通信。使用MyBatis-Plus简化数据库操作,减少冗余代码,提高开发效率,使用Swagger生成API文档,方便前后端联调。
此外,我熟练使用Docker容器化应用,确保开发、测试、生产环境的一致性,并通过Docker Java库与容器进行交互,实现代码沙箱功能。掌握Redis用于实现分布式session管理,提高系统的可扩展性和性能。使用RabbitMQ进行消息队列处理,实现系统模块间的异步通信。在数据库技术方面,熟悉MySQL,能够进行库表设计和索引优化,使用Redis进行数据缓存,提高系统响应速度和吞吐量。
在项目管理和构建工具方面,熟练使用Maven进行项目构建和依赖管理,确保项目的可维护性和扩展性,使用Tomcat服务器进行应用部署,熟悉其配置和优化。
项目描述:
学享云校管理系统:主要是以年级、班级为单位,进行老师和学生信息记录和统计功能。项目采用前后端分离架构思想,前端采用HTML+CSS+VUE来实现页面效果展示,后端采用SpringBoot+MybatisPlus框架实现数据存储等服务。存储层使用高性能的MySQL,服务器使用SpringBoot内置的Tomcat9.x,项目构建工具使用Maven来管理jar包和项目构建。
技术选型:
前端技术栈:HTML、CSS、VUE、Axios
后端技术栈:Spring、SpringBoot、Swagger
数据层:Mysql、MybatisPlus
工具:Maven、Tomcat
项目模块:首页、学生管理模块、教师管理模块、班级管理模块、管理员管理模块、个人信息管理模块
项目亮点:
使用渐进式框架VUE,使项目的分工更加明确:后端:负责处理、存储数据. 前端:负责显示数据 前端和后端开发人员通过 接口 进行数据的交换。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切,在项目中以粘合剂的形式存在。
SpringMVC在项目中拦截用户请求,核心是Servlet,即DispatcherServlet承担中介或前台的职责,将用户请求通过HandlerMapping匹配Controller。
MyBatis-plus为Mapper接口,Service层提供一些比较全面的CURD的业务逻辑功能,使程序员可以减少在Mapper和Service层的代码编写。
项目描述:
基于Spring Boot + Spring Cloud 微服务 + Docker( + Vue 3 + Arco Design)的编程题目在线评测系统。在系统前台,管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。在系统的后端,能够根据管理员设定的题目测试用例在自主实现的代码沙箱中对代码进行编译、运行、判断输出是否正确。其中,代码沙箱可以作为独立服务,提供给其他开发这使用。
技术选型:
前端:
Vue 3 + Vue-CLI脚手架 + Vuex状态管理
Arco Design 组件库 + 前端工程化:ELint + prettier + TypeScript
后端:
Java Spring Cloud + Spring Cloud Alibaba 微服务 + Spring Boot
Nacos注册中心 + Gateway + Docker
MySQL + Mybatis-Plus + Redis分布式session + RabbitMQ
主要工作:
系统架构:根据功能职责,将系统划分为负责核心业务的后端模块、负责校验结果的判题模块、负责编译执行代码的可复用代码沙箱。各模块之间相互独立,并通过API接口和分包的方式实现协作。
库表设计:根据业务流程自主设计用户表、题目表、题目提交表、并通过给题目表添加userId索引提升检索性能。
自主设计判题机模块的架构,定义了代码沙箱的抽象调用接口和多种实现类(比如远程/第三方代码沙箱),并通过静态工厂模式+spring配置化的方式实现了对多种代码沙箱的灵活调用。
使用代理模式对代码沙箱接口进行能力增强,统一实现了对代码沙箱调用前后的日志记录,减少重复代码。
由于判题逻辑复杂、且不同题目的判题算法可能不同(比如Java题目额外增加空间限制),选用策略模式代替if-else独立封装了不同语言的判题算法,提高系统的可维护性。
为了保证沙箱宿主机的稳定性,选用Docker隔离用户代码,使用Docker Java库创建容器隔离执行代码,并通过tty和Docker 进行传参交互,从而实现了更安全的代码沙箱。
为保证项目各模块的稳定性,选用Spring Cloud Alibaba 重构单体项目,(使用Redis分布式session存储登录用户信息)并将项目划分为用户服务、题目服务、判题服务、公共模块。
根据这两个项目总结个人会的技术点
项目描述: 基于Spring Boot + Spring Cloud 微服务 + Docker( + Vue 3 + Arco Design)的编程题目在线评测系统。在系统前台,管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。在系统的后端,能够根据管理
项目描述: 学享云校管理系统:主要是以年级、班级为单位,进行老师和学生信息记录和统计功能。项目采用前后端分离架构思想,前端采用HTML+CSS+VUE来实现页面效果展示,后端采用SpringBoot+MybatisPlus框架实现数据存储等服务。存储层使用高性能的MySQ
项目描述: 学享云校管理系统:主要是以年级、班级为单位,进行老师和学生信息记录和统计功能。项目采用前后端分离架构思想,前端采用HTML+CSS+VUE来实现页面效果展示,后端采用SpringBoot+MybatisPlus框架实现数据存储等服务。存储层使用高性能的MySQ