问题描述
有个需求,很别扭。代码初版2019年6月21日,至今6年+。而且,语法是这样,基本上不太想动,基本上不想维护了。如下的代码120行,没有任何注释。看一次,吐一次。
<ul class="carInfo over-init" id="carInfo3"> #if($!{PAINT_FILM_LEFT}) #foreach($element in $!{PAINT_FILM_LEFT}) #if($!{element.compName}) #set($compId=$!{element.componentId}) #if($!{element.type}==0) #if($!{element.detectionPaintFilmVO.picture})事情总是有但是,这么久的代码依然用着,说明有生命力,也是核心底层。所以,我打算借着这个需求,再次梳理下,这块的代码。
问题实现
看代码;自己写注释。
<div class="cell_1"> <ul class="carInfo over-init" id="carInfo3"> // 1、遍历集合 #if($!{PAINT_FILM_LEFT}) #foreach($element in $!{PAINT_FILM_LEFT}) #if($!{element.compName}) #set($compId=$!{element.componentId}) // 2、漆膜类的检测记录 #if($!{element.type}==0) // 3、有图片的情况 #if($!{element.detectionPaintFilmVO.picture}) <li> <div class="carInfoImg carInfoImg_left"> // 4、加载图片 <img loading="lazy"><div class="cell_1"> <!-- 漆膜检测信息列表容器:carInfo(基础样式)、over-init(溢出处理)、carInfo3(JS定位ID) --> <ul class="carInfo over-init" id="carInfo3"> #* Velocity核心逻辑:判断左侧漆膜检测数据集是否存在,存在则遍历渲染每一项 *# #if($!{PAINT_FILM_LEFT}) #foreach($element in $!{PAINT_FILM_LEFT}) #* 过滤:组件名称非空时才渲染当前检测项 *# #if($!{element.compName}) #* 缓存当前组件ID:用于后续从paintFilmResult中获取对应结果 *# #set($compId=$!{element.componentId}) #* 过滤:仅渲染类型为0的漆膜检测项(业务约定:0为有效检测项) *# #if($!{element.type}==0) #* 过滤:检测项存在漆膜检测图片时,渲染带点位标记的完整项 *# #if($!{element.detectionPaintFilmVO.picture}) <li> <!-- 漆膜检测图片容器:左侧展示区域 + 懒加载图片 --> <div class="carInfoImg carInfoImg_left"> <img loading="lazy" />![]()
第二个问题是,注释不太对哈。
<!-- 漆膜检测文本信息区域:组件名称、检测结果、操作按钮等 --> <div class="carInfoImgTxt"> <!-- 展示组件名称(如左前车门、引擎盖等) --> $!{element.compName}
我的思考
对话记录:详情
还是保持慎重,不太敢直接替换,尤其是老旧功能。结果就是,把他的注释手动挪过来。
注释这玩意,每个人不一样。也不知道有没有意义,思索再三,加上吧。既然都梳理了!