没有合适的资源?快使用搜索试试~ 我知道了~
这篇文章讲述了作者遇到的一段极其糟糕的程序代码,这段代码在一个大型公司的商业系统核心模块中,由一名被解雇的程序员负责维护。代码的特殊之处在于所有的函数和变量名都以食物来命名,如"匹萨"、"西红柿"等,使得代码难以理解和维护。这种情况在业界被称为"代码沙拉",即没有明确含义的命名,导致他人难以读懂。 程序员的代码通常反映了他们的个性和幽默感,但这种过度的个性化命名在团队协作和后续维护中会带来巨大困扰。当这名程序员离职后,公司需要修复代码中的一个问题,结果发现修复工作异常艰难。尽管代码没有恶意的逻辑炸弹或隐藏陷阱,但由于命名混乱,使得修复和维护变得极其乏味和困难。 作者接手了这项任务,逐步将这些无意义的命名改为有意义的标识符,同时还得面对代码质量本身的问题,因为代码结构松散,类似于意大利面条式代码,进一步增加了理解难度。作者通过重构代码,使其更易于理解和提高效率,但这个过程非常耗时且无趣。 对于为何会出现这样的代码,作者推测可能是程序员使用了一些混淆工具,将原始变量名替换成了食物名称,或者是程序员一开始就以这种方式编写代码。无论原因如何,这种做法显然是不专业的,并可能导致开发者自身在编写时也面临困难。这也反映出公司在人员管理和代码审查方面存在不足,没有及时发现并纠正这一问题。 这个故事告诫我们,代码的可读性和可维护性至关重要,命名规范和良好的编程习惯是每个开发者的必备素养。同时,公司应当重视代码质量,避免关键知识过于集中在个别员工身上,确保有适当的文档和代码审查机制,以降低技术债务和技术风险。
资源详情
资源评论
资源推荐
2016/6/3 我见过的最糟糕的程序代码文章
http://blog.jobbole.com/97851/ 1/2
我见过的最糟糕的程序代码 - 文章
大多数的客户项目在任务完成之后都会很快的从记忆里消退,但有些,你一辈子都不会忘记。我要说的
这个属于后者。
这事发生在很多年前,在一个相当大的公司里,公司名我就不说了。那个软件有一大堆程序,是一个商
业系统的核心模块,由一个、单独的一个的小伙维护着,这个家伙不久前被炒了。
像这样的事情其实都很正常,一些公司通常会发现他们的一些关键性技术自始至终都保存在一个人的头
脑里,当有事情发生时,就像现在这个人,你通常会经历一阵痛苦阶段去阅读他留下的东西,之后生活
慢慢趋于正常。
这次有点不一样。
这个程序出了点问题,公司派了一个去修复这个问题,等他回来后发现精神有点反常,不是哭就是笑,
嘴里嘟囔着什么“匹萨调用汉堡并且传入了包子”。
程序员的代码里通常体现着自己对幽默的理解以及对‘工作保密’这个词的认识。我们都听说过一些难
以置信的故事,比如说公司辞退了某个搞技术的家伙后,结果被告知如不在48小时内向某个海外账户打
入多少钱,会计软件将会自动删除所有客户记录。像这种的小伎俩相对而言还好处理 —— 假设这些传
说的故事大多数都是真的,我还是很难相信,我从来没有在现实生活中遇到过这种事情。
这个家伙留下来的软件里没有任何的逻辑炸弹或下流的阴谋,编译很正常,除了有一个bug外,一切都工
作的很好。但是,你需要想像一下:程序中的所有函数、变量名都是以食物命名的。匹萨,西红柿,泡
菜,各种味道的奶酪,水果,蔬菜,酒,等等,一篇一篇,全是这样。里面唯一能让你马上知道意义的
地方只有‘main’函数名和C标准类库的调用。
就这样,我接手了这个费力不讨好的烂摊子,努力的把程序恢复到一个可维护的状态。
说实话,这是一个极好的加密形式,只有拿到密钥你才能让这些“代码沙拉“变得有意义。一点一点
的,我把这些函数名和变量名改成具有意义的命名,开始很麻烦,之后慢慢的变得容易些。
把已知的函数和源代码进行恢复要比对未知的代码进行反向解析容易的多,因为首先你要分清代码里哪
些是程序,哪些是数据,而放在我前面的这些程序显然都是明文,所有这活儿并不是不可能完成,或者
说是格外的困难,只是这活儿太乏味太无趣了。一旦你发现了某个变量可能应该给个什么样有意义的名
字,余下的就是查找和替换。
另外一个问题是,代码写的太烂,事实上,这意大利面条式的代码比这些毫无意义的符号更让人困惑,
等我把函数名和变量名都改回有意义的名称后,我开始把一大堆的代码重写,让它们易于理解、效率更
高。
阿玫小酱当当囧
- 粉丝: 19
- 资源: 324
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0