【问题标题】:Why are all coding conventions central? [closed]为什么所有编码约定都是中心? [关闭]
【发布时间】:2019-09-16 20:55:35
【问题描述】:

编码约定通常是在团队中引起大量争论的话​​题。当团队就约定达成一致时,使用 stylecop 等工具来帮助执行这些规则。

为什么需要这种集中式规则系统?是否可以在 ide(例如 Visual Studio)或 git 扩展的帮助下动态调整源代码的视觉外观?

基本上存储库包含

 private string ____foo; 

结账后人们看到了

private string foo; 

private string _foo;

private strng m_foo;

取决于他们的个人设置。

签入也是如此,以您的个人风格编写并以不可知的形式存储在存储库中。

【问题讨论】:

    标签: git visual-studio visual-studio-2019 stylecop roslyn-code-analysis


    【解决方案1】:

    因为它需要其他约定:

    • 所有团队成员都必须使用支持此功能的编辑器
    • 或者运行一个需要额外时间并且需要跨平台支持的 git 扩展
    • 您仍然需要为“主存储库样式”存储代码的中心表示
    • 结对编程、Mob 编程和 LiveShare 将更难混合所有偏好

    并且可能会导致问题:

    • 在大型存储库中不能很好地扩展
    • 增加结帐时间
    • 可以更改公共界面元素的名称
    • 可能导致反射问题
    • 可能导致各种解析器错误和小差异
    • 可能会导致各种有趣的(本地)合并和工作文件夹问题

    看看 core.autocrlf 造成的所有混乱,请不要再这么疯狂了。

    EditorConfig、Roslyn、Resharper 等工具使强制实施和应用样式变得如此容易,采用样式真的不难。

    并且当一个团队甚至不能解决命名和空格这样简单的事情时,他们应该如何就一个好的设计和代码组织应该是什么达成一致?!团队需要在容易的事情上达成一致,在困难的事情上产生建设性的冲突。

    也许某个工具可以按您想要的方式渲染代码,但保留所有底层内容。祝您好运,了解您的堆栈跟踪、调试窗口和其他将采用二进制形式的工具。或者您是否也建议生成与您的风格相匹配的 PDB?!

    【讨论】:

    • 完全同意。另一件事(除非这是通过“渲染”魔术实现的)是,当您提交/签入更改时,版本控制系统会显示您已经创建了对多个文件的全部更改负载,即使您实际上只有修复了单个字符。这将很难看出实际的变化是什么。
    猜你喜欢
    • 2010-10-28
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多