1.熟练掌握 JavaSE 基础知识,熟悉多线程与并发编程;有较好的系统设计及面向对象分析和设计能力;熟悉常用设计模式;熟悉常用数据结构、
常用算法以及代码实现。
2. 代码能力过硬。手写过 Spring 的 IOC、事务、MVC、连接池等;研读过 Spring、Mybatis、Tomcat、JDK 等部分相关的源码。
3. 熟练掌握 Eclipse/IDEA、Maven、等开发及版本控制工具;熟练掌握 Web 开发流程,具备独立开发能力。
4. 熟练使用 Spring、Mybatis、SpringBoot 等开源框架
5.熟练使用Vue框架和前端三大件(HTML/HTML5、CSS/CSS3、LESS/Javascript
我最擅长的是独立完成前后端分离项目,前后端分离的核心思想是前端 HTML 页面通过 ajax 调用后端的 RESTful API 接口并使用 json 格式进行数据交互。
1)可以实现真正的前后端解耦,前端服务器使用nginx,前端/web服务器放的是css,js,图片等一系列静态资源(甚至你可以将css,教js,图片等资源放在特定的文件服务器,例如阿里云的oss,并使用cdn加速),前端服务器腹足鳄控制页面引用&跳转&路由,前端页面异步调用后端的接口,后端/应用服务器使用toomcat(把tomcat想象成一个数据提供者),加快整体响应速度。(这里需要使用一些前端工程化的框架,比如nodejs,react,router,redux,webpack)
2)发生bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。页面逻辑,跳转错误,浏览器兼容性问题,脚本问题,页面样式问题,全部由前端工程师负责。接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。双方互不干扰。
3)在大并发情况下,可以同时水平扩展前后端服务器
4)减少后端服务器的兵法/负载压力。处理接口以外的其他所有http轻轻全部转移到前端nginx上,接口的请求调用tomcat,参考nginx反响带来tomcat。且除了第一次页面请求外,浏览器会大量调用本地缓存
5)即使后端服务暂时超时,前端页面也会正常访问,只是数据刷不出来。
6)页面显示的东西再多也不怕,因为是异步加载
7)nginx支持页面热部署,不用重启服务器,前端升级更无缝。
8)增加代码的维护性&易读性(前后端耦合在一起的代码读起来相当费劲)
9)提升开发效率,因为可以前后端并行开发,而不是像以前的强依赖。
10)在nginx中部署证书,外网使用https访问,并且只开放443和80端口,其他端口一律关闭(防止黑客口扫描),内网使用http,性能和安全都有保障。
11)前端使用大量的组件代码得以复用,组件化,提升开发效