计算机专业毕业答辩技巧

1、系统设计和架构方面的问题

1.1你的系统的架构是什么样的?可以描述一下吗?

    学生答:该系统采用了前后端分离的架构,前端使用Vue.js框架,后端使用Spring Boot框架,前后端通信采用RESTful API。通过这种前后端分离的架构,可以实现前端和后端的独立开发和部署,提高了系统的可维护性和扩展性,同时也提供了更好的用户体验和系统性能。

1.2你是如何设计数据库的?数据库的表结构是怎样的?

   学生答:该系统主要是实现家乡特产商品的展示,家乡信息的介绍、用户可以购买商品、管理自己的购物车以及订单等功能。所以系统中需要的实体包括用户、特产、订单、购物车、地址、公告、信息介绍等。每个表负责存储特定类型的数据,例如:主键可以使用长整型Long表示、价格可以用Double类型、长文本可以用Longtext、文本可以用varchar 、时间用datetiem表示等。并且这些表之间通过关系建立连接。

1.3你的系统采用了哪些设计模式或者架构模式?为什么选择这些模式?

   学生答:1、家乡特产系统可能采用前后端分离的架构模式,即前端和后端是独立开发、独立部署的。这样可以实现前后端的解耦,提高系统的灵活性和可维护性。前端使用Vue.js等现代框架来实现用户界面,后端使用SpringBoot等框架来实现业务逻辑和数据处理。2、MVC(Model-View-Controller)模式:在MVC模式中,Model负责处理业务逻辑和数据操作,View负责展示用户界面,Controller负责接收用户请求并调用Model和View。这样可以实现前后端的分离,降低代码耦合度,提高代码的可读性和可维护性。3、RESTfulAPI:家乡特产系统可能采用RESTfulAPI作为前后端通信的方式。RESTfulAPI是一种基于HTTP协议的轻量级、灵活的通信方式,可以实现前后端的解耦,支持多种客户端,提高系统的可扩展性和可维护性。4、依赖注入(DependencyInjection):在后端代码中采用依赖注入来管理组件之间的依赖关系。通过依赖注入,可以实现组件的松耦合,提高代码的可测试性和可维护性。5、单一职责原则(Single Responsibility Principle):在设计系统的各个组件和模块时,可能会遵循单一职责原则,即每个组件或模块应该只负责一项功能。这样可以降低组件之间的耦合度,提高代码的可重用性和可维护性。选择这些设计模式或架构模式的原因是为了提高系统的灵活性、可维护性和可扩展性,降低代码的耦合度,同时也能够更好地满足系统的功能需求和性能要求。

2、功能实现部分说明

2.1你的系统有哪些主要功能?可以简要描述一下吗?

  学生答:这个系统实现的主要功能有:用户可以浏览家乡特产商品、浏览家乡景色的介绍、查看特产的详情、搜索商品、特产商品的购买、收藏特产、商品点赞、商品评论、订单支付、浏览平台公告及参与社区讨论、管理个人信息、修改密码、修改头像等功能 管理员则可以在后台管理注册用户、商品、订单、公告、评论等功能

2.2 你是如何实现用户注册和登录的?

   学生答:对于注册功能、用户需要输入账号和密码。对输入的内容进行了正则校验、确保输入合法的信息。同时为了确保密码的正确性、需要用户两次输入密码,防止出现输入密码错误的情况。两次密码输入不一致的情况下、系统给出提示。注册信息提交到后台后、后台首先对注册的账号进行校验、确保该账号未被注册过、如果该账号已经注册、则提示用户。对密码进行加密保存、确保用户数据的安全。

   对于登录功能:用户需要输入基本的账号和密码、同时需要输入图片中的验证码、以及选择登录角色。这些登录的基本信息提交到后台后、会进行数据的校验。首优先比对验证码、从数据库拿到生成的验证码、然后和用户输入的验证码比对。如果验证码校验不通过、返回错误提示到前台。前台弹窗展示错误提示。如果通过账号和密码在在数据库查询不到用户的信息、则返回错误信息到前台。前台弹窗展示。如果查询出来的用户信息和选择的登录角色不一致、则提示用户。

2.3 你的系统如何实现特产的展示、购买和支付功能?

  学生答:特产展示功能的实现:后端将商品数据从数据库库中查询出来,然后返回json格式的数据给前端,前端通过html、css、js等技术 将数据具体展示。前台商品进行了分页查询、在调用后端接口的时候,将分页数据一块传递到后台、后台在进行slq语句的编写时,将拿到的数据进行拼接。

   购买功能的实现:商品详情页面、设置的的有购买按钮,用户点击购买按钮,可以将商品添加到购物车。添加商品到购物车这个过程、前端将用户的主键、商品的主键以及购买商品的数量数据一块发送给后端,后端将这些数据插入到数据库。将插入数据的结果、成功或者失败返回给前端。前端弹窗提示执行的结果。在购物车中,通过查询数据库,展示自己的商品。

   支付功能的实现:用户已经填写购买商品的基本信息、例如联系人、联系方式、联系地址。生成一个待支付的订单、在点击订单表中的支付按钮的时候,前端将商品数据提交到后台、后台处理。后台具体的处理过程:1、首先查询用户的账户信息、如果余额不足,则返回提示信息给前端。如果账户余额足够、账户余额在减去购买商品的总价格后,修改用户的信息到数据库,同时需要查询商家的账号、将支付额金额打到商家的账户中。接着、需要扣除商品的库存和销量。扣除和添加销量数据之后,修改商品数据到数据库。将订单数据插入数据库。这个过程需要使用事务管理、确保每个操作都执行成功,如果执行失败、则数据需要回滚。

2.4 用户如何搜索和浏览特产?

   学生答:搜索功能的实现、用户在前台页面 输入商品的名称,然后点击搜索按钮,将数据发送到后端。后端进行数据的处理、在进行sql语句编写的时候,通过商品名称进行模糊查询。将查询出来的商品列表返回给前端、前端拿到数据后进行展示。如果没有查询到商品、后台也给出提示给前端。前端弹窗提示未查询到商品数据

3、技术选型和实现细节

3.1你选择了哪些技术来开发这个系统?为什么选择这些技术?

   学生答:1、Spring Boot:作为后端框架,Spring Boot提供了快速开发和简化配置的特性,能够快速搭建基于Spring的应用程序,同时提供了丰富的生态系统和良好的文档支持。2、Vue.js:作为前端框架,Vue.js是一个流行的JavaScript框架,具有轻量级、易学易用的特点,能够快速构建交互式的用户界面,并且支持组件化开发,有助于提高代码的可重用性和可维护性。3、MyBatis:作为持久层框架,MyBatis提供了灵活的SQL映射和强大的查询功能,能够方便地与各种数据库进行交互,并且能够有效地避免SQL注入等安全问题。4、Shiro:作为安全框架,Shiro提供了身份验证、授权、加密等安全功能,能够帮助保护系统的安全性,防止未经授权的访问和数据泄露。5、Axios:作为前端HTTP库,Axios能够在浏览器中发起异步HTTP请求,与后端进行通信,并处理请求和响应数据。它是基于Promise的,使用起来简单方便。6、MySQL:作为关系型数据库,MySQL是一个开源的、稳定的、成熟的数据库系统,能够满足家乡特产系统对数据存储和管理的需求。

   选择这些技术的原因主要包括以下几点:成熟稳定:这些技术都是成熟稳定的开源技术,有着广泛的应用和良好的社区支持。生态丰富:这些技术都有着丰富的生态系统和文档资源,能够满足系统开发和维护的需求。易用性:这些技术都具有良好的易用性和学习曲线,能够帮助开发团队快速上手并高效开发。可扩展性:这些技术都具有良好的可扩展性,能够满足系统未来的需求变化和扩展。通过选择这些技术,可以有效地提高系统的开发效率、稳定性和安全性,同时也能够更好地满足家乡特产系统的功能需求和性能要求。

3.2 使用了哪些框架和库?它们的优劣势是什么?

  学生答:使用到了Spring Boot 、优势:快速开发:Spring Boot提供了快速开发的特性,可以快速搭建基于Spring的应用程序,简化了配置和开发流程。高度集成:Spring Boot集成了大量的第三方库和框架,如Spring Security、Spring Data等,能够方便地实现各种功能需求 劣势:对于新手来说、需要一定的时间来学习使用,部署复杂性:部署和运维方面可能会有一定的复杂性。

   Vue.js框架:优势:易于上手,可以逐步应用到项目中的不同部分,组件化开发能够将页面拆分成独立的组件,提高了代码的可重用性和可维护性。响应式数据绑定:能够实时更新页面上的数据,提高了用户体验。劣势:缺少官方支持:Vue.js的官方文档和社区支持相对其他框架较少

  MyBatis框架:优势、MyBatis提供了灵活的SQL映射和强大的查询功能,能够方便地与各种数据库进行交互、MyBatis可以通过手动编写SQL来控制数据库操作,灵活性高,能够满足复杂的查询需求、MyBatis提供了多种性能优化手段,如缓存、批量操作等,能够提高数据库操作的效率。劣势:XML配置繁琐:MyBatis的XML配置文件相对繁琐,可能会增加开发和维护的复杂性

   Shiro优势:强大的安全功能:Shiro提供了身份验证、授权、加密等强大的安全功能,能够帮助保护系统的安全性。劣势:文档相对较少:相比于Spring Security等安全框架,Shiro的官方文档和社区支持相对较少,在使用和学习过程中需要花费更多的时间

3.3如何处理用户之间的交互和数据传输?

  学生答:前端交互:前端负责与用户进行交互,收集用户的输入信息,展示数据,并将用户的请求发送给后端。后端处理:后端接收前端发送的请求,处理用户的请求并返回响应数据。使用SpringBoot等后端框架编写控制器(Controller)来处理请求,实现业务逻辑和数据处理。通过MyBatis等持久层框架与数据库进行交互,进行数据的增删改查等操作。

   数据传输:前后端之间通过RESTful API或者其他通信协议进行数据传输。前端发送HTTP请求给后端,请求中包含了用户的操作信息或者查询条件。后端处理请求,根据请求的内容进行相应的业务处理,将处理结果封装成JSON格式的数据返回给前端

   状态管理:使用Vuex等状态管理工具在前端进行状态管理,统一管理前端应用的状态,实现数据共享和状态持久化。在后端使用Session或者Token等方式进行用户身份认证和状态管理,确保用户的安全访问和数据隔离。

   异常处理:在前后端都要进行异常处理,捕获可能发生的异常情况,返回合适的错误信息给用户。在后端可以通过异常处理器统一处理异常,返回统一的错误响应给前端,以提高系统的容错性和用户体验。

3.4如何处理特产的图片和描述信息?

   学生答:特产图片通过资源映射的方式,将图片的访问路径存放到数据图、避免将整个图片放到数据库,减少数据库的访问压力。特产的描述信息在数据库中使用长文本的形式,实现数据的存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米罗毕设

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值