项目代码审查报告

本文分析了一个JavaRESTfulAPI控制器的代码,探讨了代码规范、设计原则以及代码复审表的应用,指出了存在的命名规范、注释缺失、异常处理和边界条件处理等问题。
摘要由CSDN通过智能技术生成

代码审查报告

在这里插入图片描述
选定代码如下:

/**
 * 
 * @version 1.0
 * @date 2020/5/1 0001 11:45
 */
@CrossOrigin
@RestController
public class MovieController {
    @Resource
    MovieService movieService;
    /**
     * //添加电影票数据,需要返回电影票全部数据,因为电影票id需要服务端生成
     * export const insertMovie = query=>{
     *     return request({
     *         url:'insertMovie',
     *         method:'post',
     *         params:query
     *     })
     * };
     */
    @RequestMapping("insertMovie")
    public CinemaResult insertMovie(Movie movie){
        return movieService.insertMovie(movie);

    }
    /**
     *  //获取电影票数据,请求参数:pageIndex,pageSize,返回电影列表和总记录数
     * export const movieData = query =>{
     *     return request({
     *         url:'getMovie',
     *         method:'get',
     *         params:query
     *     });
     * };
     */
    @RequestMapping("getMovie")
    public CinemaResult getMovie(String pageIndex,String pageSize){
        //这里使用分页插件pagehelper
        PageResult pageResult = new PageResult();
        PageHelper.startPage(Integer.parseInt(pageIndex),Integer.parseInt(pageSize));
        List lists = movieService.getMovieData();
        PageInfo<Card> pageInfo = new PageInfo<>(lists);
        pageResult.setList(pageInfo.getList());
        pageResult.setPageTotal(pageInfo.getTotal());
        return CinemaResult.ok(pageResult);
    }
    /**
     * //删除电影数据,请求参数:movieId
     * export const delMovie = query=>{
     *     return request({
     *         url:'delMovie',
     *         method:'get',
     *         params:query
     *     });
     * };

     */
    @RequestMapping("delMovie")
    public CinemaResult delMovie(String movieId){
        movieService.delMovie(movieId);
        return CinemaResult.ok();
    }
    /**
     *      * //修改电影数据,请求参数:movieId、name、price、time
     *      * export const modifyMovie = query=>{
     *      *     return request({
     *      *         url:'modifyMovie',
     *      *         method:'get',
     *      *         params:query
     *      *     });
     *      * };
     */
    @RequestMapping("modifyMovie")
    public CinemaResult modifyMovie(Movie movie){
        return movieService.modifyMovie(movie);
    }
}

代码规范采用什么方式?

代码规范采用的是项目内部明确的编程规约,其中涵盖了命名规则、注释规范、格式约定等方面。具体要求根据项目组的技术栈和团队协议来制定,以保证代码的一致性和可维护性。

设计本小组项目的“代码复审核查表”

概要部分
  1. 代码符合需求和规格说明么?
  2. 代码设计是否考虑周全?
  3. 代码可读性如何?
  4. 代码容易维护么?
  5. 代码的每一行都执行并检查过了吗?
设计规范部分
  1. 设计是否遵从已知的设计模式或项目中常用的模式?
  2. 有没有硬编码或字符串/数字等存在?
  3. 代码有没有依赖于某一平台,是否会影响将来的移植(如win32到Win64)?
  4. 开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?
  5. 有没有无用的代码可以清除?
具体代码部分
  1. 有没有对错误进行处理?
  2. 参数传递有无错误,是以0开始计数还是以1开始计数?
  3. 边界条件是如何处理的?
  4. 有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足?
  5. 对资源的利用,是在哪里申请,在哪里释放的?
效能
  1. 代码的效能(Performance)如何?
  2. 代码中是否有明显可优化的部分?
  3. 对于系统和网络的调用是否会超时?如何处理?
可读性

代码可读性如何?有没有足够的注释?

可测试性

代码是否需要更新或创建新的单元测试?

运用“代码复审核查表”,回顾本小组项目这段代码

确认代码是否容易理解?

代码整体上功能分明,命名规则较为合理,逻辑结构也较清晰,但是缺乏必要的注释来解释每个方法和接口的用途,对于理解代码的具体业务逻辑有一定的障碍。

是否符合代码规范?

大体上遵守了一定的命名和格式约定,如方法名 insertMovie, getMovie 表明了其功能;但在 PageInfo<Card> 处使用了 Card 类型,而不是 Movie 类型,可能不符合实际的业务需求

代码是否正确?

代码在逻辑上看起来是正确的,但没有看到异常处理逻辑,例如 parseInt 可能会抛出 NumberFormatException,如果 pageIndexpageSize 不是有效的数字,程序将因为未捕获的异常而崩溃。

对于各种边界情况能否正确处理?

代码中没有显示边界情况的处理,例如 pageIndexpageSize 为负数、过大或其他非法情况。此外,在删除电影信息时,如果 movieId 不存在于数据库中,这种情况的处理也没有在代码中体现出来。

小组成员作业

姓名文章链接
陈敬博点击打开
朱浩贤点击打开
林泽帆点击打开
黄嘉涛点击打开
廖涛点击打开
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值