前段时间,有人发现著名游戏“侠盗猎车手5”的程序中居然暗藏了一个“屎山”代码,并且长达7年的时间没人敢动,今天小编就来聊一聊关于螺旋槽编程入门?接下来我们就一起去研究一下吧!
螺旋槽编程入门
前段时间,有人发现著名游戏“侠盗猎车手5”的程序中居然暗藏了一个“屎山”代码,并且长达7年的时间没人敢动。
侠盗猎车手5是由Rockstar Games游戏公司出版发行的一款围绕犯罪为主题的开放式动作冒险游戏。
从2013年诞生至今,一直广受欢迎,仅2020年就卖了2000万份,累计销量更是达到1.4亿份。
但是在2020年,无数玩家发现进入游戏的时间十分漫长,少则5、6分钟,多则20多分钟,让体验感大打折扣。
然后就有玩家用逆编程器查看了这个游戏的运行情况,发现游戏程序在加载时,一个if竟然要循环19.8亿次!
这一发现招来了网友的诸多不满,纷纷表示,这个游戏一年赚数亿美元,却不愿意解决这样的小问题,提升用户体验感。
但实际上,这种被业内称为“屎山”的陈年老bug,改起来并不像想象中那么容易。
在程序员之间,普遍存在这样一个观点:代码能跑就不要动。
所谓牵一发而动全身,代码动得不好,就是“屎崩山裂”。
之前某心高气傲的程序员,因为动了公司的“祖传屎山”,半年后还没有改完,羞愧难当,在薅完最后一缕头发后,怒而辞职。江湖至今还流传着他的故事。
相信大部分程序员在接手一个新项目时,都是信心满满、干劲十足的,但最终的代码往往难逃“屎山”宿命,到底是为什么呢?原因有三:
首先是项目周期长。一个项目如果迭代过多,在初期是很难考虑到后续版本需求的。因为需求是会发生变动的,而在后续的改动中,基本不会重新设计整个逻辑,而是想办法改一改,以支持新的逻辑。长此以往,整个程序就是补丁堆补丁了。
其次是项目太赶。尤其是近几年,事事要求敏捷,程序员为了在规定时间内完成任务,往往选择“最短路径”而不是“最优路径”,不写注释,引入不靠谱的中间件······这些行为都在为“屎山”助力。
最后是项目被多人接手。公司人员变动是在所难免的,一个项目被多人接手也时有发生,而这正是“屎山代码”形成的重要原因。每个程序员编程的方式和风格都有差异,面对前人留下的“屎山”,程序员能做的只是继续往上面糊屎,毕竟要改是不可能的。
就连亚马逊的工程师都这样形容他们的代码:“一座很大的屎山,你见过的最大的山,每次你想修正一个bug,你的工作就是爬到屎山的正中心去”。
说了这么多,“屎山代码”当真无法避免吗?
很明显,只要开发效率足够高、代码足够简洁、标准足够统一,是可以很大程度规避“屎山代码”的。
而这三点依赖人力是不可能办到的,这个时候,只能仰赖“开发神器”了。
前段时间在GTLC多次亮相的飞算SoFlu全自动软件工程平台,就完美满足以上条件,堪称完美的“开发神器”。
在开发效率方面,飞算SoFlu宣称“十人可抵百人用”,一个平台ID相当于一个十人科技团队。肯定有人觉得是吹牛,开始我也不信,直到看到了这个实验——一个普通程序员应用飞算SoFlu,仅用28分钟,就完成了传统开发模式下,三个资深工程师的工作量。事实面前,让人不得不服。
在代码简洁方面。实际上,应用飞算SoFlu编程是不需要敲代码的,只要输入流程图,平台就能自动生成微服务应用,供企业部署,所以根本不存在代码是否简洁的问题。
在标准统一方面。画流程图其实就是拖动组件,平台的每一个组件都相当于一个代码块,是应用统一标准编写的,在上线前也会经过严格的检验。如此一来,应用飞算SoFlu编写的程序,标准都是由平台统一规范的,就算发生人员变动,也不会出现看不懂前人代码,“屎山”不断堆积的情况。
除此之外,圈子里还流传着一句话,“没有经过测试的代码都是一坨屎”。为了彻底铲除“屎山”, 飞算SoFlu上线了自动测试平台,与开发平台联动,开发完成后自动生成测试用例并完成测试,用例覆盖率保证100%,且能实现精准回归测试,据绝“屎”的产生。
没了“代码屎山”,程序员心情愉悦,才能更具创造性,充分发挥自身价值;对于企业来说,也能减少bug修复成本,提高工作效率,避免由于人员变动影响项目进程。
最后,希望大家都能写出简洁美观的代码,不再成为“屎”作俑者。
,