目录
3.定义一个新闻实体类,包含新闻的标题、内容和发布时间等属性
6.创建一个新闻的Controller类,设置api接口进行使用
7.这样的接口就设计好了,可以通过postman对接口进行测试
前言:
在学习软件工程实务这门课程的过程中,我收获了很多知识和经验。通过实践项目,我深入了解了软件工程的整个开发流程,并学到了很多实用的技能。在这篇博客中,我将总结我在学习软件工程实务中的收获和体会。
一、软件开发流程的实践经验 :
在软件工程实务的学习中,我通过实践项目,深入了解了软件开发的流程。我学会了如何进行需求分析,通过与客户的交流和讨论,明确软件系统的功能和性能需求。在设计阶段,我学会了使用UML(统一建模语言)进行系统设计,包括用例图、类图、时序图等。在编码阶段,我熟悉了常用的编程语言和开发工具,并学会了良好的编码规范和代码管理。在测试阶段,我学会了编写测试用例和进行单元测试、集成测试和系统测试,以保证软件的质量和稳定性。在维护阶段,我学会了如何对软件进行版本管理和bug修复,以及如何与用户进行良好的沟通和反馈。
在软件工程实务课程中,我学到了很多实用的技能。比如,我学会了如何使用版本控制工具,如Git,来管理项目的代码版本。这使得多人协同开发变得更加高效和方便。我还学会了如何使用项目管理工具,如JIRA,来跟踪和管理项目的进度。这使得我能够更好地组织和安排我的工作。此外,我还学会了如何使用自动化测试工具,如Selenium,来进行自动化测试。这使得测试过程更加快速和准确。
在软件工程实务课程中,我还学到了团队合作的重要性。在实践项目中,我与其他同学一起合作完成了一个完整的软件项目。在这个过程中,我学会了如何与团队成员进行有效的沟通和协作。我们每个人都有自己的任务和责任,但我们必须密切合作,确保项目按时完成。通过团队合作,我学会了如何倾听和尊重他人的意见,并提出自己的建议和想法。这个经验对我今后的职业发展将非常有帮助。
我学习了一些常用的开发工具和框架。比如,我学习了如何使用Git进行代码管理和版本控制,如何使用Maven进行项目构建,以及如何使用SpringBoot进行单元测试。这些工具和框架可以大大提高开发效率和代码质量。另外,我还学习了一些常见的设计模式和软件架构,比如MVC和RESTful API,这些知识对于设计和开发一个可扩展和可维护的软件系统非常重要
二、案例
分享一个简单的新闻管理系统的小案例(框架是Springboot加MybatisPlus实现的)
注意的是需要自己先创建好数据表
CREATE TABLE news (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
author VARCHAR(100) NOT NULL,
publish_date DATE NOT NULL
);
步骤如下:
1.需要创建一个Spring Boot项目
也可以在创建项目的时候自动引入
2.添加MyBatis Plus和MySQL的依赖
在您的项目的pom.xml文件中,添加MyBatis Plus,mysql的依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>最新版本</version>
</dependency>
您可以在Maven仓库中找到最新版本
3.定义一个新闻实体类,包含新闻的标题、内容和发布时间等属性
// 新闻实体类
@Data // 省略getter和setter方法
public class News {
private Long id;
private String title;
private String content;
private Date publishTime;
}
4.创建一个新闻的Mapper接口
并使用MyBatis Plus提供的注解来定义一些常见的数据库操作,比如插入、更新和删除等
// 新闻Mapper接口
@Mapper
public interface NewsMapper extends BaseMapper<News> {
}
5.创建一个新闻的Service类
通过Impl调用Mapper接口中的方法来实现对新闻的增删改查操作
public interface NewsService extends IService<News> {
}
@Service
public class NewsServiceImpl extends ServiceImpl<NewsMapper, News> implements NewsService {
}
6.创建一个新闻的Controller类,设置api接口进行使用
@RestController
@RequestMapping("/news")
public class NewsController {
@Resource
private NewsService NewsService;
//查询所有新闻
@GetMapping()
public Result findAll() {
return Result.success(NewsService.list());
}
//查询单条新闻
@GetMapping("/{id}")
public Result findById(@PathVariable Integer id) {
return Result.success(NewsService.getById(id));
}
//新增和修改新闻
@PostMapping()
public Result save(@RequestBody News news) { //@RequestBody接收前端数据
//新增或者更新
return Result.success(NewsService.saveOrUpdate(news));
}
//删除新闻
@DeleteMapping("/{id}")
public Result delete(@PathVariable Integer id) {
return Result.success(NewsService.removeById(id));
}
//批量删除新闻
@PostMapping("/deleteAll")
public Result deleteBatch(@RequestBody List<Integer> ids) {
return Result.success(NewsService.removeByIds(ids));
}
}
7.这样的接口就设计好了,可以通过postman对接口进行测试
这段代码演示了如何使用Spring Boot和MyBatis Plus来实现一个简单的新闻管理系统。通过调用Mapper接口中的方法,我们可以实现对新闻的增删改查操作。这样,我们就可以方便地管理新闻的数据了。这只是一个简单的例子,实际的开发过程中可能会涉及到更多的功能和复杂的业务逻辑。但是通过这个例子,我们可以看到使用Spring Boot和MyBatis Plus来实现一个简单的新闻管理系统是非常容易的。
三、单元测试
1.概述:
当我们编写好代码,少不了就是要对代码进行检测。单元测试是软件工程中的一种测试方法,用于验证软件系统中最小的可测试单元(通常是函数或方法)的正确性。单元测试是在开发过程中的早期阶段进行的,目的是尽早发现和修复代码中的错误,以确保软件系统的质量和稳定性。
2.单元测试的概述包括以下几个方面:
-
目标:单元测试的主要目标是验证单元的行为和功能是否符合预期。通过编写和运行一系列测试用例,可以检查单元在各种输入情况下的输出是否正确。
-
范围:单元测试的范围通常是一个函数或方法,或者是一个类中的某个功能模块。单元测试的设计应该尽可能简单和独立,以便能够快速执行和调试。
-
测试框架:为了方便编写和执行单元测试,通常会使用专门的测试框架,如JUnit、pytest等。测试框架提供了一组功能和工具,可以简化测试用例的编写、执行和结果分析。
-
测试用例:测试用例是单元测试的基本单位,它描述了一个或多个输入值和对应的预期输出。测试用例应该覆盖各种边界情况和异常情况,以确保单元在各种情况下都能正确处理。
-
断言:在单元测试中,断言用于验证单元的实际输出是否与预期输出一致。常用的断言方法包括判断相等、判断不等、判断异常等。
-
自动化:为了提高测试效率和准确性,单元测试通常是自动化执行的。通过编写测试脚本或配置文件,可以自动运行一组测试用例,并生成测试报告和日志。
3.进行测试的步骤
在这个文件夹进行编写
编写好测试方法
这样就完成一个单元测试啦
四、总结:
学习软件工程实务这门课程是一次非常有价值的经历。通过实践项目,我不仅学到了软件开发的基本流程和技能,还培养了团队合作和沟通能力。这些知识和经验将对我今后的职业发展产生积极的影响。它不仅让我对软件开发的整个过程有了更深入的了解,还让我学会了使用一些常用的开发工具和框架来提高开发效率和质量。通过实际的代码实现,我对Spring Boot和MyBatis Plus这两个框架有了更深入的了解,并且可以应用到实际的软件开发项目中。希望通过这篇博客的总结,能够对大家学习软件工程实务有所帮助。