Answers:
这意味着通过消除冗余或使用更简洁的结构来减少代码行。
例如,请参阅原始Apple Lisa开发人员团队的著名轶事:
当Lisa团队在1982年推动对其软件进行最终定型时,项目经理开始要求程序员每周提交一次表格,以报告其编写的代码行数。比尔·阿特金森(Bill Atkinson)认为这很愚蠢。在他将QuickDraw的区域计算例程重写为快6倍,缩短2000行的那一周,他在表格上加上了“ -2000”。再过几周后,经理们不再要求他填写表格,他很高兴地遵守了。
比尔·盖茨(Bill Gates)的一句话是用代码来衡量程序员的工作效率,就像用重量来衡量飞机的建造进度。
我想补充一点,LOC指标鼓励使用过于冗长的语言,并故意重新发明轮子以达到配额。
当我上高中时-是的,我们早在70年代就拥有计算机,尽管我们不得不用石刀将它们用动物皮制成-一位数学老师参加了编程竞赛。规则是,获胜的程序将产生正确的输出,并且代码行乘以运行时间的乘积最小。也就是说,如果您的程序花费了100行代码并运行了5秒钟,则您的得分为500。如果其他人编写了90行代码并运行了6秒,则他的得分为540。低分获胜,例如高尔夫。
这让我印象深刻,因为它是出色的评分系统,既简洁又表现出色。
但是技术上符合获奖标准的参赛作品将被取消参赛资格。问题是要打印所有小于100的质数的列表。取消资格的条目是这样的(当时大多数学生都在使用BASIC):
100 print "2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,"
110 print "67, 71, 73, 79, 83, 87, 89, 91, 97"
撰写该文章的学生指出,它不仅简短而且非常有效,而且即使对编程知识很少的人,该算法也应该显而易见,从而使该程序具有很高的可维护性。
这是嘲讽。如果每条平均编码行花费$ N,那么编码“负行”肯定是赢家。
作为实践建议,这意味着完成所有工作的小代码比在相同条件下做相同事情的大代码要好得多。
用更少的代码编写相同的程序是每个人的目标。
如果一个程序用200 LOC进行编码,而我用150编写,则编写了-50 LOC。所以我写了负面代码。