我们目前有 3 名开发人员,他们的风格有些冲突,我正在寻找一种为王国带来和平的方法......
编码员:
Foo 1 : 喜欢在公共方法中使用 Func 和 Action。他使用动作来消除冗长的方法调用和 Func 来执行简单的任务,这些任务可以用 1 或 2 行来表达,并且将在整个代码中经常使用
优点:他的代码主体简洁且可读性强,通常每个类只有一两个公共方法,很少有私有方法。
缺点:方法的开头包含其他开发人员不喜欢阅读的 lambda 富代码块;并且,有时,可以包含其他开发人员真的不喜欢阅读的高阶函数。
Foo 2:喜欢为(几乎)公共方法必须做的所有事情创建私有方法。
优点:公共方法仍然很小且可读(对所有开发人员)。
缺点:私有方法很多。使用调用其他私有方法的私有方法,调用...等,等等。使代码难以导航。
Foo 3:喜欢为每个需要执行的非平凡任务创建一个具有单个公共方法的公共类,然后将它们依赖注入到其他对象中。
优点:易于测试,易于理解(一个对象,一项职责)。
缺点:项目被类乱七八糟,打开多个类文件以了解代码的作用使导航变得尴尬。
如果能充分利用所有这些技术,那就太好了……
Foo-1 具有非常好的、可读的(几乎类似于 dsl)的代码......在大多数情况下,除了在方法开始时聚集在一起的所有 Action 和 Func lambda 恶作剧。
Foo-3 具有高度可测试和可扩展的代码,对于某些解决方案来说只是感觉有点“大括号”,并且有一些代码导航问题(在 VS 中不断按 F12 并打开 5 个其他 .cs 文件以找出单个方法)。
还有 Foo-2... 嗯,我不确定我是否喜欢这个包含 2 个公共方法和 12 个私有方法的巨大 .cs 文件,除了它更容易让初级人员深入研究。
我承认我过分简化了对这些编码风格的解释;但是,如果有人知道任何模式、实践或外交策略可以帮助我们三个开发人员团结起来(而不只是告诉他们中的任何一个“停止它!”),那就太好了。
从可行性的角度来看:
- Foo-1 的风格遇到了最大的阻力,因为一些开发人员发现 lambda 和/或 Func 难以阅读。
- Foo-2 的风格遇到的阻力较小,因为它很容易陷入。
- Foo-3 的风格需要最具前瞻性的思维,时间紧迫时难以执行。
关于可以使这项工作的某些编码样式或约定的任何想法?