【晒出你的第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

目录
相关文章
|
6月前
|
JavaScript 前端开发 Java
代码之舞:从编程新手到资深开发者的旅程
【7月更文挑战第19天】编程,一种现代魔法,让无数人为之着迷。本文将通过个人的技术感悟,探讨如何从一个对代码一无所知的新手成长为一名能够自如驾驭复杂项目的资深开发者。我们将穿越编程语言的选择、学习资源的利用、项目实践的重要性以及持续学习的必要,最终达到技术与创造力的和谐共舞。
68 10
|
7月前
|
编译器 C++
【C++航海王:追寻罗杰的编程之路】关于模板,你知道哪些?
【C++航海王:追寻罗杰的编程之路】关于模板,你知道哪些?
27 0
|
7月前
|
编译器 C++
【C++航海王:追寻罗杰的编程之路】关于模板,你知道哪些?
【C++航海王:追寻罗杰的编程之路】关于模板,你知道哪些?
32 0
|
8月前
|
算法 开发者
代码与禅意:技术实践中的悟道之旅
【2月更文挑战第23天】在技术的海洋中,我们如同行者探索未知的领域。本文透过个人的技术实践经历,探讨了编程不仅仅是一门科学或艺术,更是一种哲学和内省的过程。我们将深入分析如何通过代码实现自我超越,以及在这个过程中对技术、生活和存在的深刻理解。
|
人工智能 前端开发 数据可视化
High&NewTech:来到了21世纪的第3个十年,各行业数字化迫在眉睫,全民编程也势不可挡。但,问题来了,编程,一定需要写代码么?那么,传说中的iVX工具,与编程到底又有什么暧昧关系?
High&NewTech:来到了21世纪的第3个十年,各行业数字化迫在眉睫,全民编程也势不可挡。但,问题来了,编程,一定需要写代码么?那么,传说中的iVX工具,与编程到底又有什么暧昧关系?
High&NewTech:来到了21世纪的第3个十年,各行业数字化迫在眉睫,全民编程也势不可挡。但,问题来了,编程,一定需要写代码么?那么,传说中的iVX工具,与编程到底又有什么暧昧关系?
|
网络协议 Linux
业余实践
Linux命令、内核、多路复用器、网络编程
|
前端开发 JavaScript 算法
从文科生到前端专家 - 在转行时我想过的问题
我是繁易,一名从文科转行的前端工程师,希望能为和我一样,对编程感兴趣/犹豫转行/正在转行的同学们提供一点经验分享。
302 0
从文科生到前端专家 - 在转行时我想过的问题
|
前端开发 数据挖掘 UED
SXSW专访:设计师将取代软件工程师
高科技雇人新思路- 大规模雇用艺术设计师,从视觉,使用体验打造新产品。 SXSW 会议的重头戏之一是人才招聘。走访各公司的柜台,不难发现,高科技公司一改过去只钟情软硬件工程师的局面,今年积极大量争取设计师、艺术家这类人才。这些公司认识到,苹果公司的电话及各种产品的成功和它亮丽的设计、贴心的使用体验、高雅大方的商店有密切的关糸。
149 0
SXSW专访:设计师将取代软件工程师
|
人工智能 数据可视化 IDE
High&NewTech:来到了21世纪的第3个十年,各行业数字化迫在眉睫,全民编程也势不可挡。但,问题来了,编程,一定需要写代码么?那么,传说中的iVX工具,与编程到底又有什么暧昧关系?(一)
High&NewTech:来到了21世纪的第3个十年,各行业数字化迫在眉睫,全民编程也势不可挡。但,问题来了,编程,一定需要写代码么?那么,传说中的iVX工具,与编程到底又有什么暧昧关系?(一)
High&NewTech:来到了21世纪的第3个十年,各行业数字化迫在眉睫,全民编程也势不可挡。但,问题来了,编程,一定需要写代码么?那么,传说中的iVX工具,与编程到底又有什么暧昧关系?(一)
|
存储 物联网 Linux
十年嵌入式工程师,看到如今开发方式彻底震惊了
一个工作十年的嵌入式工程师,做过各种嵌入式项目,从单片机裸程序、RTOS到Linux也都玩过。那一套从编码-编译-烧录-测试的开发方式已深入内心。当新来的95后同事给他演示了使用轻应用开发物联网应用之后,他彻底震惊了,他第一次知道还可以如此方便的使用Python来开发嵌入式应用,他感叹到:当时代要将你抛弃的时候,连招呼都不跟你打。
十年嵌入式工程师,看到如今开发方式彻底震惊了