是的,我理解您对愚蠢规则的无奈。我读过很多程序,这些程序无用的注释,例如
x = x + 1; // add 1 to x
我对自己说,那就是加号的意思!!哇,谢谢你告诉我,我不知道。
但这就是说,客户正在支付账单。因此,您给他们他们想要的。如果我在一家汽车经销店工作,并且一位顾客说他想要一辆皮卡车,那么我不会与他争论他是否真的需要一辆皮卡车,并向他询问他期望在皮卡车里买什么。我要给他卖一辆皮卡车。
好的,有时候客户所说的和他真正的需求相距甚远,以至于我试图与他讨论此事,也许说服他同意更理性的事情。有时候这行得通,有时却行不通。最后,如果我不能改变他的想法,我就给他他想要的。如果他稍后回来说:“哦,那真的不满足我的业务要求,那么我们可以向他收取更多的费用,以执行我们第一次告诉他的事情。您可以与客户进行多少谈判取决于他们对您的专业知识的信任程度,与您的合同与组织的契合度以及坦率地说他们的胆识。
在极少数情况下,如果我认为要求由我自己决定,那么我会失去合同,因为我认为要求不正确。
请记住,与您公司进行谈判的人员可能是也可能不是发明此25%规则的人。从高处强加于他们可能是一条规则。
我看到五个可能的响应:
一。说服您的老板或与客户进行谈判的所有人。奇怪的是,这将无济于事,但您可以尝试。
二。拒绝这样做。这可能会导致您被解雇,或者如果公司同意您的要求,则会导致您失去合同。这似乎没有效果。
三。编写无用的注释来填充空间,这些注释只是重复代码中的内容,并且任何能够修改代码的程序员都可以在2秒钟内看到它们。我已经看到很多这样的评论。几年前,我在一家公司工作,要求我们在列出参数的每个函数之前放置注释块,例如:
/*
GetFoo function
Parameters:
name: String, contains name
num: int, the number
add_date: date, the date added
Returns:
foo code: int
*/
int GetFoo(String name, int num, Date add_date)
反对这样的评论是维护负担,因为您必须使它们保持最新,这是无效的。不需要更新它们,因为没有认真的程序员会关注它们。如果对此有任何疑问,请确保向团队中的所有成员明确,无用的多余评论应被忽略。如果您想知道函数的参数是什么或代码行是什么,请阅读代码,不要看那些无用的注释。
四。如果要添加多余的无用注释,也许值得花时间编写程序来生成它们。预先进行某种投资,但可以省去很多打字工作。
当我刚开始从事这项业务时,我所工作的一家公司使用了一个程序,该程序的广告语为“为您编写文档!每个程序的完整文档!” 系统要求我们给所有变量基本上没有意义的名称,然后有一个表为每个变量赋予一个有意义的名称,因此,基本上,“自动文档”所做的就是用一个有意义的名称替换了迫使我们使用的毫无意义的名称。例如,这与COBOL一起使用时,您的程序中会有一行显示
MOVE IA010 TO WS124
他们会生成一行“文档”
COPY CUSTOMER NAME IN INPUT RECORD TO CUSTOMER-NAME IN WORKING STORAGE
无论如何,肯定可以编写一个程序以相当容易地生成同样毫无价值的文档。像这样读一行
a=b+c
并产生评论
// add b to c and save result in a
等等。
五。充分利用愚蠢的规则。尝试写出有用和有意义的评论。嘿,这可能是个好运动。
哦,顺便说一句,我可以补充一点,就是您始终可以衡量指标。
我记得曾经有一位雇主说过,他们将开始根据我们每周生产多少行代码来衡量程序员的生产力。当我们在一次会议上被告知时,我说,太好了!我可以轻松提高自己的分数。没有更多的写作
x=x+4;
相反,我会写:
x=x+1;
x=x+1;
x=x+1;
x=x+1;
循环?算了,我将代码复制并粘贴十次。等等。
因此,在这里,如果他们要计算注释行,请使每行简短,并在下一行继续进行。如果注释中的内容发生变化,请不要更新现有注释。在上面加上一个日期,然后复制整个文本并输入“ Updated”和一个新日期。如果客户提出疑问,请告诉他们您认为有必要保留历史记录。等等