
108、ABAP Doc与代码可读性那是一个周五下午,生产系统里的一个报表程序突然报出“字段不属于当前缓冲区”的短转储。我顺着调用链往下追,找到那个被人改了七八手的函数模块,里面有一段逻辑判断,条件写成了IF ls_data-status 'X' AND ls_data-status 'Y' AND ls_data-status 'Z'。我当时盯着这行代码看了五分钟,愣是不知道这三个状态值分别代表什么。后来翻到程序底部,才看到一行孤零零的注释:“* 状态:X=完成,Y=进行中,Z=错误”。问题是,这行注释挂在另一个数据字典结构的下方,跟这个IF语句隔了三百多行。更离谱的是,实际业务里还有一个隐藏状态W,代表“已撤回”,而那个IF判断里的三个值根本不完整——因为之前的开发人员只在自己当时用到的场景里维护了注释,后来加新状态时完全没人想起去更新那段说明。这就是ABAP Doc要解决的问题。不是给你一个写注释的仪式感,而是让代码的“意图”和“上下文”跟着代码走,而不是靠程序员在代码海里捞针。ABAP Doc并不是什么新东西,在SE24类构建器里早就有了,但很多做ABAP的人从没认真用过它。你打开一个类的方法,看到一堆"开头的伪注释,和用"开头的ABAP Doc,表面差别只是一个问号——ABAP Doc的注释有个额外的"(比如"后面紧跟一个!,或者用METHOD里的"注释块),而在Eclipse里,AB