全栈⼯程师实战:从0开发云笔记
专栏亮点
⽆死⾓全栈开发:数据库设计、服务端开发、Web 前端开发,三⼤板块,⽆死⾓学习,弥补你的技能短板;
真实项⽬实战:基于真实项⽬的实战开发,即学即⽤,不再迷茫;
规范化开发流程:每个功能,都严格遵循⽅案选择、接⼝⽂档设计、数据库设计、流程图设计、代码实现、单元测试的流程;
完整的知识体系:全程按照⼀个项⽬的开发过程进⾏,对涉及到的知识点完整讲解并在项⽬中真实使⽤,形成⼀套完整的知识体系。为什么要成为全栈⼯程师?
技术⼈最怕的就是只关注⾃⼰的「⼀亩三分地」,成为项⽬中的螺丝钉。
长此以往,这类⼯程师的技能将变得越来越狭窄,他们得到的机会和选择也将越来越少。对于有经验的⼯程师来说,虽然他们参与的项⽬越来越多,积累的却是同质化的经验;对于在校⽣或初级⼯程师来说,由于视野狭窄,他们⽆形中错过了很多好机会。
拓展⾃⼰的技术能⼒,对于求职、晋升,乃⾄创业来说都⾄关重要。⽽成为⼀位全栈⼯程师,将为你带来更好的发展机会。
在实战中融会贯通
本专栏为有志于成为全栈⼯程师的你量⾝打造,带你进⾏⼀次 Spring Boot + MyBatis + Vue + Element 全栈项⽬开发实战。我们选⽤当下主流的技术,带你从零开始实现⼀个完整的云笔记应⽤,实现前端、后端、数据库设计与开发流程。
专栏的每篇⽂章都有对应的完整代码在 GitHub 上托管。⼤家既可以参考项⽬的代码风格规范⾃⼰的书写习惯,也可以从中学习到合适的技术知识和设计思想,还可以基于此项⽬开发⾃⼰的系统和应⽤。
如果你是没有开发经验的在校⼤学⽣,想从事开发⼯作⽽⼜不知道选择哪个⽅向;通过本专栏的学习,可以使你真正参与到前后端分离开发的项⽬中去,轻松⼊门全栈开发,在项⽬的实际开发过程中选择感兴趣的技术⽅向,并积累⾜够的项⽬经验。
如果你是有⼯作经验的前端开发⼯程师,对后端开发感兴趣;通过本专栏的学习,可以使你对 Java 后端开发全流程有深⼊了解,扩展你的知识领域。
如果你是有⼯作经验的 Java 开发⼯程师,希望在技术上进⼀步提升;通过本专栏的学习,不仅可以使
你对 Java 各种技术有重新的认知,获取到各种有助于快速开发的⼯具和设计结构,还可以使你对前端开发全流程有深⼊了解,并通过快速搭建前端项⽬、灵活运⽤各种 Vue.js 组件及 Element UI 控件来完成你想要的功能和页⾯布局。
专栏结构
本专栏分为 7 个部分,由浅⼊深,循序渐进,带你⼀步步开发出完整完善的属于⾃⼰的项⽬。
第 1 部分项⽬简介
介绍专栏内容及专栏内的项⽬内容,完成项⽬需求分析,正式⽴项。
第 1 篇:导读,对本专栏要讲述的内容做简单说明
第 2 篇:需求分析,明确项⽬⽬标及产品功能树,作为后续项⽬开发的依据
第 2 部分项⽬前期准备
进⾏项⽬正式开发前的所备⼯作:架构选择、数据库设计、接⼝⽂档设计等,以严谨的思想和正式的开发流程对待我们的项⽬,保证整个项⽬开发过程有法可依、有据可查。
第 3 篇:数据库设计,透过现象看本质,从⼀款产品的界⾯中分析出它底层的数据结构,并将其整理成⽂档
第 4 篇:接⼝⽂档设计,从不同的⾓度对功能树进⾏分析,将其拆分成接⼝,并整理成⽂档,作为前后端分离开发的依据
第 5 篇:前端结构设计,选择 Vue.js + Element UI 做为项⽬的前端架构,完成前端项⽬搭建,并保证功能的可⽤性
第 6 篇:后端结构设计,选择 Spring Boot + MyBatis 做为项⽬的后端架构,完成后端项⽬搭建,选择 Postman 做为 RestFul 接⼝测试⼯具,完成测试接⼝的测试⼯作
第 3 部分核⼼功能开发
进⾏云笔记项⽬后端核⼼功能的开发,以登录注册功能为引,将项⽬后端的基⽯打牢,为后续的快速开发做准备。在这⼀部分的学习中,你会对 Java 深⼊了解,⾃⼰动⼿设计安全易⽤的服务端架构、发送邮件、开发通⽤⼯具、存取⽂件、压缩图像……
第 7 篇:MyBatis 通⽤ Mapper,利⽤ Java 反射机制、泛型机制完成轻量级 MyBatis ⼯具的开发,使后续的开发免除⼿写 SQL 的烦恼
第 8 篇:MyBatis ⾃动建表,利⽤ Java ⾃定义注解,在 通⽤ Mapper 的基础上完成⾃动建表,后续开发过程中不⽤再⼿动创建数据表
第 9 篇:统⼀的 HTTP 应答格式,按照接⼝⽂档要求,定义统⼀的应答格式,避免多⼈协作及前后端分离开发过程中数据格式的不统⼀引起的沟通成本
第 10 篇:统⼀的 HTTP 请求处理,通过对 HttpServletRequest 的深度解析及 RestTemplate 的灵活运⽤,实现 HTTP 请求的统⼀解析和转处理,为后端接⼝布置上天然屏障
第 11 篇:注册 1,在 Spring Boot 中使⽤ JavaMail 发送邮件验证码,完成注册接⼝开发
第 12 篇:注册 2,在 Vue 中,使⽤ Element UI 进⾏页⾯布局,并使⽤ axios 发送 HTTP 请求,完成注册功能
第 13 篇:登录 1,在 Spring Boot 中使⽤ JWT 做为⽤户⾝份认证机制,完成登录接⼝的开发
第 14 篇:登录 2,⽣成 HTTPS 证书,并在 Spring Boot、Vue 及 Postman 中进⾏配置,使其均⽀持 HTTPS,保证 JWT 在⽹络传输过程中的安全性;同时在 Vue 中完成登录功能
第 15 篇:⽤户名⽚1,在 Spring Boot 中实现图⽚的上传及压缩功能,⽤来保存⽤户头像原图和缩略图,完成⽤户头像上传和名⽚设置与读取接⼝
第 16 篇:⽤户名⽚ 2,通过搭建 Nginx ⽂件服务器来为前端提供⽂件服务,使 Spring Boot 免受⽂件访问的压⼒;同时补充图⽚元数据解析与定位图⽚拍摄地点的知识,形成完整的图⽚处理知识体系
第 17 篇:⽤户名⽚ 3,在 Vue 项⽬中,完成⽤户名⽚设置和头像上传功能
第 18 篇:修改密码,梳理⽤户修改密码的两种场景和三种⽅式,使⽤ JavaMail 配合 JWT 通过发送重置密码链接邮件的⽅式修改密码
第 4 部分业务功能开发
这⼀部分重点讲述云笔记项⽬前端页⾯的设计,完成云笔记项⽬的业务功能,带你对 Vue.js 深⼊了解,掌握 Vue 路由配置、组件化开发、灵活运⽤各种开源组件。
第 19 篇:笔记本列表,在 Spring Boot 中快速实现笔记本相关接⼝,在 Vue 中通过组件化的思想来展⽰⽤户的笔记本列表
第 20 篇:笔记列表,在 Spring Boot 中快速实现笔记相关接⼝,在 Vue 中使⽤ vuedraggable 组件实现笔记列表的拖拽排序功能
第 21 篇:富⽂本笔记 1,使⽤ wangeditor 组件实现富⽂本笔记的保存和编辑功能
第 22 篇:富⽂本笔记 2,使⽤ base64 对笔记内容进⾏加密,以保证在传输过程中不会出现乱码
第 23 篇:MarkDown 笔记 1,使⽤ mavon-editor 组件实现 MarkDown 笔记的编辑和展⽰功能
第 24 篇:MarkDown 笔记 2,对 HTTP 传输⼤⼩和速率进⾏分析,通过对保存和获取笔记内容的接⼝进⾏改造来⽀持⾜够长的笔记内容
第 5 部分后台管理功能开发
这部分介绍云笔记项⽬的后台管理功能,从功能设计到前后端功能实现,带你完成⼀个完整的后台管理系统。
第 25 篇:⽤户管理 1,在 Spring Boot 中快速开发出⽤户管理接⼝,使⽤ Element UI 搭建起经典的后台管理功能能界⾯,实现⽤户管理功能
第 26 篇:⽤户管理 2,使⽤ file-saver + xlsx 组件实现将⽤户数据导出到 Excel 中
第 27 篇:⽤户统计 1,在 Spring Boot 中添加⽤户注册⽇志和登录⽇志,形成⽤户统计的数据源,并实现新增⽤户数、活跃⽤户数等⽤户统计接⼝
第 28 篇:⽤户统计 2,在 Vue 中,使⽤ echarts 组件⽣成直观的⽇增长⽤户曲线图、活跃⽤户直⽅图等,将数据可视化
第 29 篇:权限管理,在 Spring Boot 和 Vue 项⽬中添加完整的权限控制逻辑,实现权限管理功能
第 6 部分项⽬升级
这⼀部分介绍如何将该项⽬改造能⽀撑起千万级的⽤户量⼤型分布式项⽬,通过这部分的学习,让你对⼤数据和⾼并发产⽣亲近感:原来你就在这⾥。
第 30 篇:分布式部署,通过 Sping Cloud 的使⽤,将云笔记项⽬快速修改为微服务架构,实现分布式部署,从⽽使系统⽀撑起庞⼤的访问量
第 31 篇:缓存,在系统分布式部署的基础上使⽤ Redis 做为缓存,并对数据库进⾏分库、分表等优化设计,从⽽使数据库⾯对庞⼤的⽤户⽽毫⽆压⼒
第 32 篇:异步请求,为⾯对庞⼤的⽤户体,对系统内部进⾏优化,使⽤ RabbitMQ 将⽇志记录等⾮核⼼业务做异步请求处理,缩短单个业务的系统响应时间
第 7 部分总结
对本专栏的学习内容总结与回顾,查漏补缺,深⼊思考,同时也是⼀个项⽬完成后对项⽬进⾏中的经验与教训的总结。
第 33 篇:对整个专栏内容进⾏回顾和总结
作者简介
你将获得什么
项⽬业务功能的独⽴分析能⼒
接⼝⽂档、数据库结构的独⽴设计能⼒
Spring Boot / MyBatis / Vue / Element 等框架的结构与⽤法
Java 反射 / 泛型 / ⾃定义注解等基础知识
Java 发送邮件 / ⽂件上传 / 图⽚压缩 / 图⽚解析等应⽤场景
MyBatis 通⽤ Mapper / ⾃动建表等深度使⽤场景
拖拽组件 vuedraggable / 富⽂本编辑器 wangeditor / MarkDown 编辑器 mavon-editor / 图表 echarts / Excel ⽂件保存 file-saver + xlsx 等 Vue.js 组件的使⽤
Http 请求测试⼯具 Postman 的使⽤
JWT / HTTPS / Nginx 在前后端的应⽤
Redis / RabbitMQ / js-base64 / @vue/cli / 逆地理编码等其他知识的应⽤
⽬标⼈
计算机/软件专业⼤学⽣
前端开发⼯程师
Java 开发⼯程师
对开发⼯作感兴趣的 UI 设计师、测试⼯程师
编程爱好者
购买须知
本专栏为图⽂内容,共计 33 篇。每周更新 2 篇,预计 6 ⽉初更新完毕。
本专栏为虚拟产品,⼀经付费概不退款,敬请谅解。
本专栏可在 GitChat 服务号、App 及⽹页端 上购买,⼀端购买,多端阅读。
订阅福利
订购本专栏可获得专属海报(在 GitChat 服务号领取),分享专属海报每成功邀请⼀位好友购买,即可获得 25% 的返现奖励,多邀多得,上不封顶,⽴即提现。
提现流程:在 GitChat 服务号中点击「我-我的邀请-提现」。
订阅本专栏后,服务号会⾃动弹出⼊⼆维码和暗号。如果你没有收到那就先关注服务号「GitChat」,或者加我们的⼩助⼿「Linmicc」咨询。(⼊⽅式可查看第 4 篇⽂末说明)。
课程内容
导读
前⾔ For what
本专栏为⼴⼤开发者量⾝打造,带你进⾏⼀次 Spring Boot + MyBatis + Vue + Element 全栈⼯程师的项⽬开发实战,选⽤当下主流的技术,带你从零开始实现⼀个完整的云笔记应⽤,实现前端、后端、数据库设计与开发流程。
本专栏的每篇⽂章都有对应的完整代码,在 GitHub 上托管。⼤家可以参考项⽬的代码风格规范⾃⼰的书写习惯,可以从中学习到合适的技术知识和设计思想,也可以基于此项⽬开发⾃⼰的系统和应⽤。
由于我们期望将更多的⼲货和完整的项⽬开发流程带给⼤家,在专栏中涉及到的⼀些基础知识我们将不再⼀⼀赘述,因此我们来做⼀个约定:
假定你懂得 Java 基础语法、JDK 安装⽅法
假定你懂得 SQL 基础语法、MySQL 安装⽅法
假定你懂得 HTML、CSS、JavaScript 基础语法
在专栏中涉及到这些内容,我不会再讲⼀遍 JDK 如何安装、MySQL 如何配置、某个 HTML 标签是什么意思等等类似的问题。如果有不懂的,欢迎沟通,我会及时为⼤家解答疑惑。
专栏介绍 What is it
本专栏精⼼选择了⼀个简单易⽤的云笔记项⽬,将专栏重点放在项⽬设计思想和通⽤的硬核代码设计上。从项⽬需求分析、架构选择、数据库设计、接⼝⽂档设计,到功能实现、页⾯效果设计前后端联调,能让你掌握完整的项⽬分析、设计、优化能⼒。
前端分别使⽤ Vue.js 和 Element UI 作为 核⼼框架和 UI 框架,使⽤ HBuilderX 作为开发⼯具;后端使⽤ Spring Boot + MyBatis 作为核⼼框架,数据库选⽤ MySQL,向前端提供标准的 RESTful 接⼝。主流的技术、⼤众化的开发⼯具,让你在使⽤中带有亲切感,收获满满。
本专栏中完成的项⽬,界⾯简洁⼤⽅、代码清晰优雅、注释完善简明、基础功能完备。后端代码扩展性强,可轻松升级为分布式架构和Spring Cloud 微服务架构,从⽽满⾜各种⽤户量级的并发需求。
技术栈 What can you learn
前端
开发环境:HBuilderX,核⼼架构:Vue.js + Element UI,涉及到的 Vue.js 插件如下:
vue-cli:Vue.js 脚⼿架,快速搭建标准的 Vue.js 项⽬
vue-router:Vue.js 路由管理,实现清晰明了的页⾯访问
axios:轻巧简便地实现 Http 访问
零基础学java编程echarts:以图表的形式将数据可视化展现
base64:在适当的时候对 HTTP 请求传输的数据进⾏加密
vuedraggable:实现页⾯元素的拖拽功能
wangeditor:轻量级的富⽂本编辑器
mavon-editor:简洁灵活的 MarkDown 编辑器
file-saver + xlsx:实现将页⾯数据保存为 Excel ⽂件的功能
后端
开发环境:IntelliJ IDEA,核⼼架构:Spring Boot + MyBatis,项⽬管理⼯具:Maven,主要⽤到的依赖包有:
spring-boot-starter-web:Spring Boot ⽀持 RESTful 的包
mybatis-spring-boot-starte:Spring Boot 整合 MyBatis 的依赖包
mysql-connector-java:MySQL 驱动包
javax.mail:Java 发送邮件依赖包
fastjson:处理 JSON 数据的 fastjson 包
thumbnailator:处理图⽚压缩和图⽚解析的依赖包
jjwt:封装解析 JWT 的依赖包
spring-boot-starter-amqp:Spring Boot 整合 RabbitMQ 的依赖包
spring-boot-starter-data-redis:Spring Boot 封装的 Redis 的驱动包
数据库
MySQL:关系型数据库,⽤来做数据的存储
Redis:⾮关系型数据库,⽤来做缓存和临时存储
专栏⽬录 Let's preview
本专栏分为 7 个部分,由浅⼊深,循序渐进,带你⼀步步开发出完整完善的属于⾃⼰的项⽬。
第 1 部分项⽬简介
介绍专栏内容及专栏内的项⽬内容,完成项⽬需求分析,正式⽴项。
第 1 篇:导读,对本专栏要讲述的内容做简单说明
第 2 篇:需求分析,明确项⽬⽬标及产品功能树,作为后续项⽬开发的依据
第 2 部分项⽬前期准备
进⾏项⽬正式开发前的所备⼯作:架构选择、数据库设计、接⼝⽂档设计等,以严谨的思想和正式的开发流程对待我们的项⽬,保证整个项⽬开发过程有法可依、有据可查。
第 3 篇:数据库设计,透过现象看本质,从⼀款产品的界⾯中分析出它底层的数据结构,并将其整理成⽂档
第 4 篇:接⼝⽂档设计,从不同的⾓度对功能树进⾏分析,将其拆分成接⼝,并整理成⽂档,作为前后端分离开发的依据
第 5 篇:前端结构设计,选择 Vue.js + Element UI 做为项⽬的前端架构,完成前端项⽬搭建,并保证功能的可⽤性
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论