后端开发
目录
一、后端定义
1.百度定义:通过后台管理网站,可以有效的管理网站供浏览者查阅的信息。网站的后台通常需要帐号及密码等信息的登陆验证,登陆信息正确则验证而后进入网站后台的管理界面进行相关的一系列操作。
2.知乎看到更通俗易懂的定义:软件应用程序就像冰山一样。用户看到的只是应用程序的一部分,在大多数情况应用程序的绝大部分是不到的。这就是令人难以捉摸又神秘的“后端”。
3.个人理解:我认为后端应该是一个连接点,属于前端和数据库之间的一个重要角色。它能够链接前端,访问数据库向前端传递数据。前台完成的是单纯的网页,几乎不具有功能性,后台完成的作品可以称之为网络应用程序,它们可以实现一定的应用功能,也就是说后台人员的工作核心是通过编写程序来实现想要的结果。
二、后端学习路线
1、Java基础
2、 数据库
3、JavaWeb
4、MyBatis、Spring、SpringMVC
5、SpringBoot
6、SpringCloud
7、Redis
8、Shiro、SpringSecurity
9、消息中间件
10、工具的使用
参考https://blog.csdn.net/m0_37989980/article/details/103987924
三、项目需求
我认为后端应该起一个连接点的作用,属于前端和数据库之间的一个重要角色。它能够链接前端,访问数据库向前端传递数据。前台完成的是单纯的网页,几乎不具有功能性,后台完成的作品可以称之为网络应用程序,它们可以实现一定的应用功能,也就是说后台人员的工作是编程,主要是做交互和数据库,让用户不仅体验到了视觉和炫酷的风格,而且还要能够起到实用的功能。
做一个项目需要存储和检索数据,需要遵循业务逻辑和规则,并且需要对结果进行预测,这都要通过编写代码来实现这些功能,这肯定也是我们后端需要完成的。
上图很形象的表现了前后端与数据库之间的联系,其中业务逻辑层是我要学习的重点,也是后端的核心部分。需要根据项目中的具体需求来实现业务逻辑,制定最有效且精简的方案来进行实现。
四、职业规划
目标岗位:后端工程师
工作职责:
- 根据开发进度和任务分配,完成公司产品相关模块软件的设计、开发、编程业务
- 负责与产品经理,前端工程师,测试人员协作工作,确保产品迭代任务按时完成
- 负责模块的接口的单元测试、基本功能测试,确保产品质量
任职资格:
1.本科及以上学历,2-3年java岗位开发经验
2.良好的计算机编程基础(java语言、常见数据结构、常见算法、网络协议)
3.掌握Springboot框架与常见中间件集成式开发
4.具备良好OOD思想,掌握常见的设计模式,具备良好代码提交与协作规范
5.掌握mysql、mongoDB、redis数据库基本使用
6.掌握linux系统基本操作和项目构建工具(maven/gradle)正确使用
7.良好的表达和理解能力,良好的学习能力
通过招聘网的任职要求可以进行总结几大点:
一、必须有开发经验(跟团队做项目时中可以积累经验,学习相关知识)
二、编程基础要牢固,至少掌握一门开发语言(我使用的是Java)
三、熟悉分布式后端服务开发流程和规范,熟练掌握Spring、Mybatis等框架,熟悉SpringBoot等开发框架,掌握核心热门框架(还没开始学框架)
四、熟悉掌握Redis,MongoDB等NoSQL技术,精通MySQL的开发设计和调优(现阶段会用一些数据库基本操作)
五、近期计划:
根据学习路线和自身实际情况,其中java基础和数据库基础都已学完,平时java作业都能自己独立完成,数据库也动手实践了增删改查等基本操作。Javaweb应该现阶段我最需要去学习的。javaweb包括了jsp,servlet以及一些框架比如以及与数据库交互的知识,希望能用他们做出一个简单的增删改查项目web项目,为后面学习框架打基础。之后学习三大热门框架(Spring,SpringMVC,Mybatics),在自学过程中将理论与实践结合,多动手实战,结合网上的资源和学习路线学习,后面的学习路线中的内容会根据情况进行调整
JSP
JSP全称Java Server Pages,是一种动态网页开发技术,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
下图显示了 JSP 容器和 JSP 文件在 Web 应用中所处的位置
JSP动态网页 = Java代码(辅) + html代码(主): (在html中编写java代码)
Servlet
Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层
Servlet动态网页 = Java代码(主) + html代码(辅): (在Servlet中编写html代码)
下图显示了 Servlet 在 Web 应用程序中的位置。
Servlet擅长的事情:
接受请求参数,封装成对象,
调用业务方法,来处理请求,
控制界面跳转,跳转到某一个JSP负责做界面的输出操作,JSP擅长做页面输出而Servlet不擅长,两者相辅相成。
三大框架
①Spring
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码
特点:
- 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API
- 控制反转:IOC——Inversion of Control,指的是将对象的创建权交给 Spring 去创建。使用 Spring 之前,对象的创建都是由我们自己在代码中new创建。而使用 Spring 之后。对象的创建都是给了 Spring 框架。
- 依赖注入:DI——Dependency Injection,是指依赖的对象不需要手动调用 setXX 方法去设置,而是通过配置赋值。
- 面向切面编程:Aspect Oriented Programming——AOP
- 容器:Spring 是一个容器,因为它包含并且管理应用对象的生命周期
- 组件化:Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
- 一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上 Spring 自身也提供了表述层的 SpringMVC 和持久层的 Spring JDBC)
②SpringMVC
为解决持久层中一直未处理好的数据库事务的编程,又为了迎合 NoSQL 的强势崛起,Spring MVC 给出了方案
特点:
- 结构松散,几乎可以在 Spring MVC 中使用各类视图
- 松耦合,各个模块分离
- 与 Spring 无缝集成
③Mybatis:
在Java中操作数据库一般会用到持续层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
特点:
- 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现
- 比较灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求
- 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性
- 提供映射标签,支持对象与数据库的orm字段关系映射
- 提供对象关系映射标签,支持对象关系组建维护
- 提供xml标签,支持编写动态sql
除了要学习三大框架外,还需要了解Maven和SpringBoot的相关作用和信息。
SpringBoot:整合了常用框架Mybatis+Springmvc等,省去了复杂的配置
Maven:跨平台的项目管理工具
六、自我总结
想要快速入门后端需要做的努力:
1.先掌握一门编程语言(java)
2.学习一些前端的知识,不需要精通,能会简单使用即可,因为现在就算是做后端开发,也需要掌握前端知识,不会前端也很难找工作,比如html、js(jQuery、vue.js、ajax等)、css等(有一定基础)
3.学习web后端开发技术,比如javaweb,这里涉及到jsp、servlet、filter、listerner等(待学习)
4.掌握一种或多种关系型数据库,比如mysql、oracle等(现在学的是Mysql)
5.掌握web后端开发的流行框架,比如Spring、SpringMVC、Mybatis、Hibernate等(待学习)
6.学习了理论知识后需要做几个小项目来实践,发现和解决实际操作过程中存在的一些问题