【校招VIP】线上实习 推电影 电影详情模块 Java代码周最佳

【推电影】主要是为校招设计的年青人电影推荐平台项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中。

恭喜来自东华理工大学的乌托邦同学获得本周线上实习【推电影】第一期 电影详情模块 Java代码周最佳

该作品针对电影详情模块的,推文案、推剪辑,以及多演员和导演的对应,都做了比较好的逻辑实现。同时,对电影类型的枚举以及对时长的格式要求,也都进行了处理。

优点:

1.业务逻辑处理比较清楚

电影详情模块包括多演员的处理、底层怎么设计怎么实现,三推怎么实现都处理得比较好

2.枚举使用还不错
 枚举基本都知道怎么去使用

但是依然存在部分问题:

1.判空和开发文档的作用

传一个参数进来,需要考虑这个参数是不是合法的,查询出来是不是空指针。另外该同学对开发文档不是很理解。写代码不能根据自己写的文档来写,实习的时候自己的文档一般是有问题的,会有人给你提意见,我们这里也提供了官方版改进文档,如果不跟着改进的版本走只是按照自己的文档写,那么提高是有限的

2.接口一般不太使用seo的格式

这个可能是官方修改文档的一个误导。另外springboot有很多的关键词,但是使用的原则是必须要用的时候再去用,如果没有必要用,就尽量节省性能的开销。另外,对多演员通过ID字符串拼接方式查询的接口,进行了一部由字符串向链表进行转化的一个动作,这个处理实际上是有两种更好的解决方案。一种就是直接使用IDS作为参数,直接在数据层使用find-in-set来实现,数据库是支持这种实现的。另一种就是把这个字符串往链表转化的操作给嵌入到方法内部,而不用每次调用的时候在controller层额外加一个处理逻辑。

3.注解问题

注解比较多的情况下,有一个原则:能不用注解就不用。等到发现这么写代码实现不了的时候再去考虑用注解解决。

4.性能的考虑

 正常的工程师如果想要往上走,就一定要有注重性能的意识,数据库能少查一次就少查一次,量一大的话,少查一次也会有很大的影响。

 1 @GetMapping ("/detail (movieId)")
 2  
 3 public ResponseDO getMovieDetail(@RequestParam ("movieId") Integer movieId){
 4  
 5 log. info ("detail获取到参数"+movieid);
 6  
 7 ResponseDO responseDO = new ResponseDO();
 8 //获取到电影类
 9  
10 MovieDetail detail = movieDetailService. getById (movieId);
11 if (detail==null){
12 responseDO.setSuccess (false);
13  
14 responseDO.setMsg("查询失败");
15  
16 responseDO.setData("");
17  
18 return responseDO;
19  
20 List<Integer>ids=DataUtil.getId(detail.getActorIds());
21 List<MovieActor>actors=movieActorService.listByIds(ids);/ /获取演员列表
22  
23 MovieDirector director=movieDirectorService.getById (detail.getDirectorId());//获取导演
24  
25 List<MovieTuiInfo> tuiVideos=movieTuiInfoService.getByMovieId (movieId,1) ; //type =1为视频; 2为图片
26 List<MovieTuiInfo> tuiImages=movieTuiInfoService.getByMovieId (movieId,2) ; //type =1为视频;2为图片
27 ResponseMovieDetail responseMovieDetail=new ResponseMovieDetail();
28  
29 responseMovieDetail.setDetail (detail);
30  
31 responseMovieDetail.setActorList (actors);
32  
33 responseMovieDetail.setDirector (director);
34  
35 responseMovieDetail.setTuiVideos (tuiVideos);
36  
37 responseMovieDetail.setTuiImages (tui Images);
38  
39 responseMovieDetail.setTypeName (MovieType.getNameByType (detail.getType()));
40  
41 responseMovieDetail.setTime InMinite (detail. getTimeInMinite());//电影时长
42  
43 //todo 当前登录用户是否收藏
44  
45 responseDO.setSuccess (true);

 

posted @ 2022-12-13 15:44  校招VIP  阅读(17)  评论(0编辑  收藏  举报