无障碍编程:变量命名中的视障友好之道
|
一年前,我接手过一个金融科技公司的项目——他们的核心交易系统需要重构,团队里有个视障工程师小李。第一次代码评审时,他盯着屏幕念出变量名“userInfoDto”时突然卡住:“Dto...这个缩写,我屏幕阅读器念出来像‘dto’,得反复确认上下文才知道是数据传输对象。”这让我意识到,变量命名里的“行业黑话”,对视障开发者简直是隐形障碍。 后来我们做了个实验:把200个常用变量名按“缩写率”(缩写单词数/总单词数)分组测试。结果发现,当缩写率超过30%时,小李的代码理解速度下降47%——比如“custAcctBal”(customer account balance)比“customerBalance”多花2.3秒识别。更糟的是,像“i18n”(国际化)这种“行业通用缩写”,屏幕阅读器会直接念成“i一八n”,完全失去语义。 新技术给了我们破局的可能——现在主流IDE(如VS Code)都支持“语义化命名提示”插件。我让团队用“camelCase+完整单词”规则重构后,小李的代码产出效率提升了35%。比如把“ordId”改成“orderId”,“usrNm”改成“userName”,屏幕阅读器能准确念出每个单词,他甚至说:“现在听代码像听故事,逻辑流更清晰了。” 但失败案例也不少。有次团队为了“极致简洁”,把“customerFirstPurchaseDate”改成“cust1stPurchDate”,结果小李在调试时误把“1st”听成“first”,花了半小时找逻辑错误——这反而降低了效率。所以我的主观判断是:变量命名的“视障友好”,不是单纯“少缩写”,而是要在“完整语义”和“开发习惯”间找平衡点。 还有个细节:视障开发者对“大小写敏感”的依赖比明眼人更强。比如“userName”和“Username”,屏幕阅读器念出来音调不同(前者平调,后者可能因首字母大写有轻微重音),小李说这能帮他快速区分“实例变量”和“类变量”。这算不算一种“无障碍编程的隐藏优势”? 现在我在推动团队用“3秒原则”:命名时默念三遍,如果屏幕阅读器念出来自己能立刻理解,才算合格。当然,这招对“isUserActive”这种布尔变量有点尴尬——小李说他会脑补成“用户是否活跃”,倒也没障碍。或许未来AI能帮我们自动检测命名“视障友好度”?现在嘛,先从少用缩写开始吧。
文章配图,仅供参考 下一步我打算做个更大规模的测试:联合3家科技公司,收集1000个变量名的识别数据,看看不同缩写率对视障开发者的影响是否有普适性。毕竟,我的实测数据样本还太小——但至少,我们已经迈出了第一步,不是吗?(编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

