大家知道吗?前几天日本程序员搞了个移动支付 APP,结果上线 3 天就被盗刷 5500 万日元!
看见这个天文数字,学霸君一开始和你一样震惊,甚至还有点同情。
可当我知道这群程序员作的蠢后,差点没被笑死了!
想吃这个瓜,就得先聊聊这瓜怎么来——
话说,日本人民眼看着我们把支付宝、微信支付用得不亦乐乎,自然蠢蠢欲动。
奈何他们没有马云或马化腾这样的爸爸带头,于是各个商家只能各搞各的。
像是便利店「全家 family」 就搞了个「FamiPay」,又是送钱又是送积分什么的,搞得很红火了。
隔壁同样开便利店的 7-11 自然坐不住了,于是就打算搞个 「7 Pay」,准备来正面怼一场。
但是开便利店的 7-11 不会码代码啊!所以他们只能找一家外包 IT 公司来做。
可没想到,在全球以「工匠精神」、「苛刻严谨」著称的大和民族,在「密码找回」机制设计上却很「弱智」。
大家不妨一起来分析一下 日本程序员在这里边的解题思路——
(这里需要引用网友「 Yuee 」的相关解释)
已知:
1. 首先用户账号就是邮箱(记住,这在日本很常见)。而用户需要找回密码时,只需提供「生日」信息;
2. 生日信息可以不填,此时会默认为 「2019 年 1 月 1 日」;
3. 找回密码时,没有输入错误次数限制;
4. 找回的密码,可以用另一个邮箱来接收。
所以,只要你有足够多的邮箱,再用「2019 年 1 月 1 日」这个默认密码去试——总有那么一群人是懒得改的,这时对方的「7 Pay」账号就到手了。
可以看到,整个过程不费吹灰之力。只需一台电脑,在家上网日入几千不是梦。
如果说是学艺不足,那你像女娲补天那样赶紧补锅就是了。
但接下来那家外包 IT 公司的补锅方式,学霸君就真的有点看不懂了——
他们修复漏洞的方法是:
把上述第 4 步中找回密码的邮箱输入框,用代码直接隐藏,让你无框可输。
正所谓:我思故我在。我看不见问题,就等于它不存在啊!
看来这群程序员的哲学课,好像学得还可以哈。
虽然事件以日本特色的「道歉鞠躬赔钱」三连告一段落,但是学霸君继续深入刨瓜后,发现原来日本程序员的水平真的不太行。
比如你看,小学生都知道,闰年的 2 月是有 29 天的。
但是在日本札幌市铁路系统的数据里,平成 12 年(即 2000 年),却没有 2 月 29 日这一天的数据。
原因就是程序员用习惯了年号(平成 12 年)计数,忘了闰年(2000 年)这回事 ……
结果这天用月票坐车的人统统上不了车,因此迟到的上班族更是都快把站台挤爆了。
不知道当时负责开发铁路系统的程序员最后跪键盘没有。
如果说前面这两件事,已经让你对 日本程序员的「匠人精神」产生怀疑。
那么学霸君接下来说的这个价值 300 亿日元的代码,恐怕要再次刷新你的认知。
2016 年,日本宇航机构(JAXA)发射了一个叫「瞳」的太空望远镜卫星。
但十分不幸,卫星上负责定位和稳定的追星仪和陀螺仪都相继失灵。
失去定位能力的卫星,也因此陷入了高速自转状态。
最后卫星电脑自检,启动了一个常人都觉得很合理的解决方案——
通过点火器反向点火喷气,便可抵消自转力,降低速度。
可万万没想到,在执行方案时,本该往「自转反方向」的点火喷气操作,最后却是顺着「自转正方向」喷了!
而这一喷,自然让「瞳」转得更猛了!
结果,这个耗费 300 亿日元的太空望远镜卫星,就成为了人类史上第一位「太空舞娘」。
它一边闭眼旋转跳跃,一边把身上的太阳能电池板、导流罩等设备,像不祥之刃大招一样统统甩出天际。
事后,日本宇航机构(JAXA)宣布事故原因是源自「底层软件错误」。
说人话版本就是——日本程序员把喷气方向的代码写反啦!
而且这行指令在上传前,居然并没有经过完整测试!
在宇宙中设备连续出错,可能得怪运气不好。
但是你日本程序员居然把代码写反了,那就只能说是真的菜了啊!
众所周知,菜从菜地出。所以日本程序猿业务水平这么菜也是有原因的,学霸君觉得首先跟他们的 IT 行业环境脱不了关系。
长期以来,日本 IT 行业都有「业务外包」习惯,而且还是呈「金字塔式」的层层递减外包。
具体而言,就是客户爸爸(像 7-11)都会找外包的 IT 开发公司做软件。但接单的 IT 公司往往会抽取一部分开发费用,然后再转手给第二家 IT 公司去做。
这个「抽水过程」可能会重复几次,直到出现真正愿意干活写代码的「接盘侠」。
多次转手对于接盘的公司来说,开发经费捉急自然是一个问题,但工作的内容和形式才是大问题。
一方面,甲方爸爸一般都会把自己开发需求写好。然后程序员就根据这些需求描述,把它们转化成代码的形式。
听起来很简单对不对?
的确,和支付宝这些国民级软件不同——日本这些通常只是公司级的需求,涉及的编程技能一般也比较简单。
实在不行的,就上 GitHub 这些码农交流网站复制黏贴就成了。
但问题也就这么来了:
这些开发工作不需要对市场未来进行什么深刻思考,也不需要对功能体验作什么优化。
于是每个程序员都「按本照码」,结果就成了「人肉代码翻译机」。
另一方面,遇到要改 bug 的情况,层层上报审批这有多麻烦先不说。你这个举动在包工头看来,就是在说甲方爸爸的需求不合理才产生了 bug !
所以这些包工头从不解决问题,只解决提出问题的人。
久而久之,这些原本应是充满创意与自由的 IT 程序员,在日本却成为一种服务员般的存在。
而对于服务员来说,客人就是上帝嘛!
「甲方爸爸有新要求?满足他!不行就应付他!」毕竟交完货就完事了。
于是世人皆道索尼大法好,但索尼相关软件的体验都很不好!
甚至日系大厂各种代工做出来的软件,简直就是在花式比拼谁更垃圾!
再加上日本还有「终身雇佣制」这奇葩聘任制度,也间接增长了程序员混日子的念头。
像是公司如果要秋后算账,想解雇当年负责的程序员?
这些老咸鱼早就混成「终生雇佣员工」——想炒他们鱿鱼小心律师函警告哦!一告一个准!
如今日本 IT 行业,大多都把「软件开发工作」当成一种机械化的「解决方法」。
那么人类在机械作业中产生的惰性习惯,自然也随之而来。
你小学被罚抄写还会用复写纸呢!所以怎能完全责怪人啊怼不怼?
不过眼看这一代放弃了思考的日本程序员,在成为咸鱼的路上越走越远。
学霸君还是衷心希望,他们能迎来「功成猿满」的那一天。
(文章来源:ZAKER)