Language agnostic 如何强迫自己遵守命名和其他约定

Language agnostic 如何强迫自己遵守命名和其他约定,language-agnostic,coding-style,Language Agnostic,Coding Style,我相信,我的程序很好,至少我的代码能产生结果 但我觉得我有缺点。。。我几乎不遵守任何命名惯例。。。变量都不是。。方法也是如此。。。也不是为了上课。。。也不适用于表、列、SP。。。除此之外,我在编程时几乎不做任何评论 我一直认为,让我先看看结果,然后我会来纠正变量名称和其他事情后。。。(感谢visual studio在此处的反映)。。。但后来没有来 所以,我需要一些技巧,来迫使自己习惯于遵循命名惯例,并评论 编辑:我完全理解我的做法的不良影响,我也知道这是不好的。。。我的问题是我如何强迫自己遵守规

我相信,我的程序很好,至少我的代码能产生结果

但我觉得我有缺点。。。我几乎不遵守任何命名惯例。。。变量都不是。。方法也是如此。。。也不是为了上课。。。也不适用于表、列、SP。。。除此之外,我在编程时几乎不做任何评论

我一直认为,让我先看看结果,然后我会来纠正变量名称和其他事情后。。。(感谢visual studio在此处的反映)。。。但后来没有来

所以,我需要一些技巧,来迫使自己习惯于遵循命名惯例,并评论


编辑:我完全理解我的做法的不良影响,我也知道这是不好的。。。我的问题是我如何强迫自己遵守规则…

你能要求其他人检查代码吗?甚至尝试结对编程?这两种方法都能真正帮助你做你知道你真正应该做的事情


此外,根据您的语言/平台,您可能会运行类似lint的工具来检查代码的运行状况。

这是一个编码规则的问题。如果你想原型化一些东西,然后扔掉代码,这是可以接受的。然而,当您需要重用或调试代码时,您会后悔没有注释和糟糕的方法/变量名选择

当您现在使用代码时,您知道它在做什么。再过几个月到一年,你就不会记得那么清楚了。然后,您可能会后悔没有对代码进行注释,也没有选择好的名称


也请考虑一下,如果其他人阅读您的代码,那么理解起来有多容易?

我的直觉告诉我,如果您没有标准,您的代码可能没有您想象的那么好。你真的只需要选择一些东西,并坚持下去。在编码风格上的随意性可能意味着逻辑上的随意性,这可能意味着代码中有很多错误,以及以后很难推断的意外结果。祝你好运。

记住你需要遵循的一般编码准则。在编写代码时,请按照指导原则为变量和方法编写适当的变量命名约定,并具有函数头。不要考虑你的代码是否有效,要按照指导原则进行编码。
以后可以添加注释,但即使在进行概念验证时,也必须遵循命名约定。 在编写代码时,要确信代码能够正常工作


让您的同事审阅您的代码,您也可以使用Fxcop进行静态代码查找。

最重要的是,您的代码应该可以正常工作,并且应该按照预期的方式工作。这就是你得到报酬的原因

然而,如果它不可读,那么它将逐渐消失,因为随着时间的推移,你将不记得它做了什么。要避免这种情况,请在代码运行后立即重构并编写文档。根据经验,你不应该对你的工作感到满意,直到它被正确地记录下来。对于您编写的每个方法,这不应该花费太多时间。但是等待的时间越长,找出代码应该做什么所花费的时间就越多

我知道最好的方法是在写作前记录下来,但这对我来说是行不通的。另一种方法可能是一种很好的选择,因为可读且文档化良好的代码展示了开发人员的技能。

运行类似(如果您正在编写C#)的代码可以在某种程度上实现这一点。它不会警告您所有的事情,但是您可以使用它来确保您的方法有文档注释等


然而,正如其他人所说,编码规则必须来自内部,而不是外部。

我希望您能花几年时间研究由其他人编写的代码,这些人的编码实践与您相同。只有这样,您才能真正了解您的代码到底有多差。“有效”的代码是最低限度的,编写易于支持、扩展和维护的代码是优秀程序员的天赋所在。

如果你想改变自己,你需要激励自己去改变它。这是“生活规则”之一

这并不是堆栈溢出可以帮助您解决的问题。我想,一个建立动力的好建议是给自己找一份开发人员的工作,看看你的开发习惯能把你带到什么程度


-卡洛斯·努内兹(Carlos Nunez)

代码的编写应该让人类和编译器都能阅读。可以想象的是,您并不总是您编写的代码的维护者,因此请将自己置于一个从未见过您的代码的人的位置,并相应地对其进行编辑。要做到这一点,需要意志力和洞察力。我想OP不会接受这一点作为问题的“答案”-oHi公里。。。并不是说你的回答没有用。。但正如我所说的,我已经知道我这个习惯的不良影响。。。你的回答只是再次强调了这一点……如果你在其他人编写的代码上工作了几年,而这些代码与你有着同样糟糕的编码实践,我想你会被治愈的。你会非常讨厌它,然后你会改变。