编码指南的一些很好的例子。我并不是真的想找一种特定于单一语言的东西。
但在编写编码指南时,我应该做什么/评估?比如指南应该有多灵活,应该给程序员或其他人留下多少决定,甚至是指南预先决定的。
我正在制定的这套指南应涵盖广泛的主题:评论,数据库设计,甚至一些用户界面指南。
答案 0 :(得分:24)
编码标准通常有三个目的:
显然,第三种是浪费其他人的时间,但你确实需要考虑它,特别是你不走这条路。
话虽如此,我已经注意到了一些确定的事情,并且没有。
m_member
,则维护程序员应该使用m_member2
而不是应用任何其他标准(例如member2_
或m_lpcstrMember2
或其他)。本地一致性是王道。最后,最重要的是在同行之间进行定期的代码审查。鼓励人们在看到“代码味道”时说出来。还要确保人们意识到建设性的代码批评并不是个人的 - 来源是团队中永远的共享,它不仅仅属于原作者。根据我的经验,最令人发指的问题是任何编码指南都无法解决的设计问题。软件设计仍然是一种艺术形式(无论好坏),而且一大脑比一个大脑要好得多。
答案 1 :(得分:9)
if( !codingGuidelines.Followed)
{
reason = programmer.WhyNot();
if( reason.Acceptable)
{
codingGuidelines.Integrate( reason);
}
else
{
team.GiveAssKicking(programmer);
}
}
答案 2 :(得分:8)
这是一个相当开放的问题,答案同样公开:
每项指南的实施成本都应低于其带来的好处。
要小心,因为等式的每一边都有一些隐藏的部分。
实施成本可以包括排除完美的替代品,扼杀创新和创新,并鼓励代码审查堕落,突出显示风格的轻微违规,而不是解决实际问题。
对于忙碌的开发人员来说,收益的价值可能是无形的(因而令人沮丧),但可能会导致您的组织品牌变得更强大或者让新员工更快地加入项目 - 这可能会超过小额增量遵守的成本。
答案 3 :(得分:4)
作为一名开发人员,我通常更喜欢指导方针来提供基本指导,但不要太严格以至于我无法编码我喜欢的代码...例如,如果指南告诉我必须使用哪种编码模式而不是允许我做出自己的专业判断然后它太紧张了:
例如,这些是我可能期望看到的类型:
你得到了照片。我不应该局限于:
编码样式显然需要在团队中共同使用,以便开发人员能够有效地协同工作。你不能让左边的一个人使用复杂的数学算法,团队中的其他任何人都无法理解,并且在正确的领域中有另一种方法,他们几乎无法理解接口的实现。因此,根据经验,它们应该旨在帮助您的团队保持在一起,同时不会削弱生产力和创造力。
从整个开发团队获得一些意见,以便“房屋”标准可以包含它应该包含的所有内容,而不包括一堆不应该的内容。
答案 4 :(得分:2)
编码指南可让其他人轻松阅读您的代码。即使您为自己编写代码并且是唯一的开发人员,找到业界普遍接受的一套指南并坚持使用它们可能会很有用。它将使您更容易阅读其他人的代码,并让您在以后适应更大的团队。
如果使用.net,请查看StyleCop。默认情况下,它包含MS自己使用的标准,并用于设计.net框架。你可以从这里得到它:
http://code.msdn.microsoft.com/sourceanalysis
您可以停用不喜欢的规则并添加自己的规则。在签入代码时,它甚至可以编写脚本来强制执行规则。最重要的是,如果你真的对这类东西不熟悉,它会告诉你你做错了什么。如果你想更进一步,看看Resharper。这是同样的事情,但在你输入的时候是实时的(虽然默认它使用的标准略有不同。
如果c#不是您的话,我相信其他语言也有类似的实用程序!
答案 5 :(得分:2)
我想要一个编码标准文件来解决团队的宗教争论。
对于有多个有价值答案的问题,以及人们长期争论它们的倾向,我们希望在整个项目中保持一致性,避免花费太多时间讨论它们。
很好的例子是“TABs vs. Spaces”和“K& R vs. ANSI大括号放置”。在团队中进行民意调查,做出决定并将其写下来。立即将决定应用于所有现有代码,并自行检查。永远不要再讨论了。
答案 6 :(得分:1)
一般来说,我希望指南能够回答您通常会问的问题,但需要花费很长时间才能回答,如果您只是单独编码,这可能是“个人偏好”。通常它们会指定简洁的东西,如数据库命名约定和空格与制表符(以及多少空格)以及注释/文档注释样式。
UI指南与我认为的其他野兽不同。
我最喜欢的编码风格指南的一个例子是Linux kernel coding style,虽然它没有涉及我在其他指南中看到的细节。
答案 7 :(得分:1)
Juval Lowy's C# coding guidelines是正确指南的一个很好的例子。我有几件事我会改变它,但在大多数情况下它太棒了。
答案 8 :(得分:1)
我也喜欢编码风格的想法,帮助开发人员直观地识别错误/错误的代码。例如,如果某人不小心为某个浮点值或类似的东西分配了一个int,那么在其名称中包含变量的类型可以帮助我们顺利完成。
答案 9 :(得分:1)
Code Complete是一本关于通用编程最佳实践和指南的优秀书籍,可以应用于任何语言。
它涵盖了编程的所有方面,对于想要为遇到的每个问题采用“最佳”方式做事的实际程序员来说,这是必读的。
答案 10 :(得分:0)
编码指南是团队成员的行为规则,因此您可以毫不费力地阅读每个代码。
它还会在您的代码审核会议中获得“换行或同一行”的讨论,这样可以节省大量时间; - )
在编写代码指南时,请确保它们出于某种原因存在,并且它们实际上可以帮助您的团队编写更易读的代码。