【晒出你的第83行代码】十年全栈编程,视障工程师@蔡勇斌带我们走进他的代码视听世界

简介: 作为一个拥有10年PC开发经验的盲人程序员,他不仅参与了钉钉无障碍版本的测试,还编写过很多帮助盲人使用电脑之类的软件。他带我们走进了属于他的代码视听世界,让更多盲人看见。

最近社区有个很火的《向代码致敬,寻找你的第83行》活动缘起于前几天,在阿里巴巴的一个小黑屋里,5名对代码有着极致追求的程序员参与了阿里代码领域最高荣誉“多隆奖”最终角逐(多隆作为淘宝的第一代程序员,也是很多技术人心中的大神)。那天代码评审现场,看到某代码片段最后结尾,多隆突然补上一句,往上翻看第83行。代码一般都是几百行,他看到最后,居然还记得第83行的一个细微瑕疵,这得是对代码怀着怎样的敬畏之心。

于是,在五四青年节之际,社区发起了来晒晒属于你的“第83行”的活动,活动中邀请业界的大牛、大神们来晒代码或者Review代码!最终,由网友和大牛共同评选出了获得点赞和大牛评分最高的2位参与者,其中一位正是蔡勇斌,一个拥有10年PC开发经验的盲人程序员。我们一起来看看他是怎么写出极简代码的。

5月29日,多隆在第二届研发效能嘉年华(云效)直播间为其颁发了“多隆奖”(https://yq.aliyun.com/promotion/566)。

@蔡勇斌 获奖的代码如下:

我是一个盲人工程师。在测试淘宝和天猫WEB端时,发现“我的淘宝”和“收藏夹”链接鼠标悬浮时会弹出内容,但盲人用户使用键盘无法实现该操作,因此根据相关的无障碍标准给对应产品提出了以下解决方案,让我们的代码更健壮、产品更完善,经得起“每一位用户”的考验。

不缩进、不多站位符,一行能写完绝不用两行,代码按相关性空行,这就是我们盲人工程师当中“最优雅”的代码。

常人眼里使用记事本编程被视为“装逼”,但盲人工程师却是最无障碍的代码编辑器。

16459e4046ad62490fd4198a8af16e97b0615a38

对于蔡勇斌晒出的代码,本次活动的评委——阿里巴巴系统软件事业部高级研究员多隆评价称:“简洁,这可能是盲人工程师特点。”其获奖评语为,“作为一个拥有10年PC开发经验的盲人程序员,他不仅参与了钉钉无障碍版本的测试,还编写过很多帮助盲人使用电脑之类的软件。他带我们走进了属于他的代码视听世界,让更多盲人看见。”

能够获得此次的“多隆奖”,蔡勇斌表示十分感谢。

08481c60ffc2e0a4803cc822bac7bc163bb09170

大家好,我叫蔡勇斌,我是一名视障者,同时也是一位信息无障碍工程师。我的主要工作是给阿里巴巴的淘宝、天猫、支付宝、钉钉等等主流产品做无障碍测试。我的业余工作是开发盲用程序,主要是给一些视障者做一些辅助工具。

我的开发经验已经有十几年了,包括Web端、移动端、PC端都有涉及,不管是前端还是后端都有做过代码相关的工作,算是一个全栈工程师。代码对于我来说其实和普通人差不多,就是一个和机器交流的语言。不管是Java也好,C也好,还是web端的JavaScript、Html等语言,我都有接触过。

对我们来说,写代码主要靠的是读屏软件,通过一种语音的方式,来去逐行逐字地去朗读代码。过去我们总是说,用记事本写程序是个很装逼的行为,但对于我们来说记事本就是一个很好的编程环境,因为它的无障碍效果最好,不管是快速查找、跳转、或者浏览,都是一个非常便捷的工具。当然,到后续要涉及更多的平台开发,比如说Visual Studio、Android Studio、Eclipse这些编程环境多多少少都会存在很多的无障碍,我们用起来并不是很方便。所以我们都会通过记事本的方法去写代码,通过这些环境来做编译,来实现最终的程序编译过程。

所以,我们编写程序时追求越简洁越好,不追求过多的排版。排版是相对于视觉而言,对于听觉而言,就是一个不是很重要的信息。比如说缩进,在我们看代码时如果逐字去朗读的话,你会发现很多的空白符,包括颜色的高亮对我们来说也是没有帮助的。

那么视障工程师写代码是不是就不需要排版呢?当然是否定的。现在,我们追求的都是协同工作,视障者写的代码别人要能很方便地去阅读,所以我们也会强迫自己去做一些力所能力的排版工作,让大家都能够很方便地阅读代码,一起去开发这些项目。

最后,感谢这次的第二届研发效能嘉年华,以及感谢阿里云的这次晒代码活动,也感谢评委老师多隆,让更多人知道无障碍代码的编写,让更多人关注到无障碍。

向代码致敬!

下面我们也精心挑选了参加活动的部分同学代码欢迎点评学习

1、@1350194977002867—我是一个盲人工程师。在测试淘宝和天猫WEB端时,发现“我的淘宝”和“收藏夹”链接鼠标悬浮时会弹出内容,但盲人用户使用键盘无法实现该操作,因此根据相关的无障碍标准给对应产品提出了以下解决方案,让我们的代码更健壮、产品更完善,经得起“每一位用户”的考验。

https://yq.aliyun.com/roundtable/67516/answer/152583#visit152583

2、@故事老神仙-接触建站开始一直玩到了现在的一个网站代码的第83行,是一行普通的代码,没有特别的地方,但不由让自己想起了当初的那份热爱,那份期待,那是初接触代码的小惊喜小激动。

https://yq.aliyun.com/roundtable/67516#answer-146773

7、@逐梦之旅-作为一个正要面临高考的小白程序猿,总有一天,我也会拥有我的“83行”,我也会成为你们中的一员

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.256.1b726b3fy3tHbn&order=score&type=&p=1#answer-147150

11、@wujianhui-最近写的学校电脑报障系统

http://yq.aliyun.com/roundtable/67516/answer/147576#visit147576

12、@随手飘一个--写代码越久,越来越习惯多写注释,考虑以后的易用性功能

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.153.2e8118a8NMH8d4&order=score&type=&p=5#answer-147177

17、@起名字好难-11年用python重写的一个06年用TC做的一个动画(好绕口……)

http://yq.aliyun.com/roundtable/67516/answer/147247#visit147247

20、@尼古拉斯雷-看了那个阿里巴巴的那个开发手册,然后就知道如何去优化这些代码,如何去规范的定义变量名之类的

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.892.2ccd6b3fahgMyS&order=score&type=&p=2#answer-146477

24、@海阔天空yy-以下是我写的一个,用来测试redis集群的测试程序

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.892.2ccd6b3fahgMyS&order=score&type=&p=2#answer-146532

32、@1706825784780553-晒代码

http://yq.aliyun.com/roundtable/67516/answer/147198#visit147198

34、@david_duan-天池的一个比赛,名次166,春节假期期间一个通宵写的~

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.892.2ccd6b3fahgMyS&order=score&type=&p=2#answer-147054

41、@青藤木子-以前给妈妈弄的一个语音翻译App,就是利用微信聊天中自带的复制功能把复制的文字合成为语音

http://yq.aliyun.com/roundtable/67516/answer/147546#visit147546

60、@幸运兔-从大学时代起就比较注重代码书写规范,当初的汇编没有太多的约定,自己都会为每行代码加上注释,好处一看便知,现在转行Java之后多年,依旧能够快速理解那时代码逻辑。 https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.307.51806b3fV3GIep&order=score&type=&p=4#answer-146572

80、@德哥-图式关系存储与搜索 http://yq.aliyun.com/roundtable/67516/answer/146978#visit146978

71、@luckmore-动态负载均衡跟 容灾保护的一个东西 http://yq.aliyun.com/roundtable/67516/answer/147187#visit147187

102、@小生蚝-初二的时候帮学校写的“校运会直播系统”

http://yq.aliyun.com/roundtable/67516/answer/150524#visit150524

109、@1026704017609990-我的83行代码,注释写的不好,希望各位大佬指教哈哈

http://yq.aliyun.com/roundtable/67516/answer/147217#visit147217

134、@小小小豆奶-最近写的解析字符串里面数据对应的模板的方法,还是很多不规范的,但是在往规范的方向靠

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.230.3cd56b3fEgMIV4&order=score&type=&p=18#answer-146704

143、@wfping-菜鸟,入行一年

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.230.1fe36b3fjdZDrJ&order=score&type=&p=21#answer-146597

145、@1572054130306817我的第83行代码是学习笔记,记录着学习的点滴

https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.230.1fe36b3fjdZDrJ&order=score&type=&p=21#answer-146587

目录
相关文章
|
存储 运维 云计算
深度解析云计算计费方式,看完这篇全懂了!
深度解析云计算计费方式,看完这篇全懂了! 随着科技的飞速发展,云计算已经成为了我们生活中不可或缺的一部分。然而,对于云计算的计费方式,你是否感到困惑呢?这篇文章将为你深度解析云计算的计费方式,让你看完之后全懂了!
1275 1
|
16天前
|
人工智能 弹性计算 安全
阿里云38元、9.9元与199元轻量应用服务器,99元与199元云服务器购买入口及相关规则解析
2026年阿里云推出的几款特惠云服务器主要涉及四款产品:轻量应用服务器2核2G(38元/年,限时抢购)、2核4G(9.9元/月或199元/年),以及ECS云服务器2核2G(99元/年)和2核4G(199元/年)。本文为大家介绍了各产品的配置参数、抢购资格与时间、购买入口、续费政策及适用场景,并提供了对比和选购策略建议:新用户追求极致性价比可抢购轻量服务器,注重长期稳定则推荐ECS"99计划"(新购续费同价至2027年),企业用户适合199元独享型实例。同时涵盖OpenClaw等AI镜像快速部署方案。
455 21
|
Go
Go 语言 errgroup 库的使用方式和实现原理
Go 语言 errgroup 库的使用方式和实现原理
539 0
|
3月前
|
人工智能 JavaScript API
OPC时代一人公司创业指南:AI代码+媒体双杠杆,OpenClaw阿里云/本地部署与百炼API配置实战教程
在易变、不确定、复杂且模糊的VUCA时代,职场安全感持续下降,越来越多人从被动等待转向主动创造。一人公司(OPC,One Person Company)不再是小众选择,而是未来十年个人创业的核心突破口。一个人完全可以凭借技术、内容、判断力,活成一支高效队伍,用杠杆放大个人能力,实现时间与财务双重自由。本文将完整拆解一人公司的底层逻辑、四大杠杆、五大变现路径,并提供2026年阿里云+本地全平台OpenClaw(Clawdbot)部署流程、阿里云百炼Coding Plan API配置与常见问题解答,帮你从零搭建属于自己的自动化创业系统。
1604 1
|
3月前
|
Ubuntu 安全 应用服务中间件
宝塔面板搭建教程 | 完整的云服务器部署实践:Ubuntu + 宝塔 + WordPress
本文记录了从零搭建云服务器与个人博客的完整实践:涵盖Ubuntu Server选型、安全组配置、SSH连接、Nginx部署,以及通过宝塔面板+Docker快速上线WordPress博客的全过程。内容详实,步骤清晰,兼顾学习深度与落地效率,适合初学者系统掌握Linux运维与Web部署核心技能。(239字)
|
4月前
|
存储 弹性计算 安全
最大直降90%!2026年阿里云新老、企业用户云服务器优惠权益参考
2026年,阿里云持续发力普惠云计算,针对新用户、老用户、企业用户、学生及教师等不同群体,推出了覆盖服务器选购、续费、升级、迁移全场景的优惠权益,核心呈现“入门款长效低价、中高配阶梯降价、续费同价+叠加折扣”的特点,既降低了新手入门门槛,也兼顾了老用户与企业用户的长期使用成本,优惠力度最大直降90%,规则透明无隐藏消费。
998 1
|
12月前
|
前端开发 搜索推荐
《颠覆传统:CSS遮罩的图像创意设计指南》
CSS遮罩是一种通过定义透明与不透明区域来控制元素可见性的技术,它打破了传统图像显示的局限,为网页设计带来全新视觉体验。遮罩可使用外部图像或CSS渐变生成,支持多种形状和效果。遮罩模式(如match-source、alpha、luminance)决定了遮罩层与元素的交互方式,影响最终效果。结合背景图像、动画及响应式设计,遮罩能实现丰富的交互体验,提升页面趣味性和艺术感。掌握遮罩原理与应用,可创造独特且精美的网页作品。
196 0
|
7月前
|
人工智能 弹性计算 自然语言处理
史上首次!万卡AI集群支撑双11,通义千问大规模落地
2025年双11,阿里云提供超千万核ECS算力及万卡灵骏智算集群,支撑淘宝推荐等核心业务性能提升超30%。通义千问大模型大规模落地,Qwen-MT单日调用超14亿次,助力商品出海、客服与经营分析,全面赋能双11智能化升级。
1057 0
史上首次!万卡AI集群支撑双11,通义千问大规模落地
|
监控 关系型数据库 数据库
如何优化PostgreSQL的性能?
【8月更文挑战第4天】如何优化PostgreSQL的性能?
977 7
|
开发框架 JavaScript 前端开发
在Vue前端界面中,几种数据表格的展示处理,以及表格编辑录入处理操作。
在Vue前端界面中,几种数据表格的展示处理,以及表格编辑录入处理操作。