采用标准库

时间:2008-09-10 18:40:33

标签: .net

我的团队有一个解析控制台应用程序库的命令。我们周围的每个团队也有自己的团队。 BCL中没有任何东西,所以我认为这很自然。

我看过Mono中的模块,看起来很稳固,CodePlex上的模块也很好看。可能还有其他人会工作(我很想听听你的建议)。

真正的问题是:如何让我的团队以及我们周围的其他人承诺只使用一个?

6 个答案:

答案 0 :(得分:2)

说实话,你不能让每个人都坚持一个解决方案。你可以建议一个解决方案,并指出它的好处,但最终的好处必须大于它们与现有库建立的惯性。

要让他们选择一个图书馆,您需要进行管理层更改,直到找到管理所有相关群组的人员为止。说服那个人为什么每个人都应该使用一个库,然后让它过滤掉。

现在我说过了,为什么这很重要?您的团队是否经常需要处理来自其他团队的代码?其他团队是否使用库导致代码出现问题?这种标准化纯粹是为了标准化还是存在一些不标准化的特定问题?

答案 1 :(得分:1)

找到解决方案后,您就会开始强制执行代码审核。如果它没有在新代码中实现,请告诉他们,抱歉,但你必须再回去再做一次。如果您已经有标准和评论,那么实施起来就容易得多。

答案 2 :(得分:0)

EBGreen,好的一点,我应该提到为什么我希望这样做。我们的团队经常阅读和编辑周围团队的代码。我的意思是功能团队,而不仅仅是dev / test / pm部门。

这只是让所有人放慢速度的小事之一。使用Team C的代码?必须追踪他们的lib,这在神秘的不是夜间构建(另一个问题,但独立于此)。回顾另一个开发者的工作?需要弄清楚他们的解析器是如何工作的。开始一个新项目?需要决定导入哪个库。

我认为你的回答确实表明了解决方案:把图书馆放在一个非常方便的地方,所以它可以被新项目所接受(我怀疑很多现有的项目会被修改,如果它们正在工作,它们也不应该被修改罚款),并利用它清楚的优势。

谢谢!

答案 3 :(得分:0)

@ fatcat1111,在这种情况下,标准化的库将是有利的。至于如何说服其他球队,我可以想到两种方法。首先要指出的是,整个群体的标准化总是会减少编码工作量(对标准化图书馆新手的初始提升进行折扣)。其次,试着说服他们的功能。希望你会选择功能最齐全的库,这样它就会优于其他人使用的。

答案 4 :(得分:0)

PowerShell免费提供出色的命令行解析选项。创建cmdlet时,可以定义属性并使用属性来确定命令行选项。然后PowerShell运行时为您处理输入的解析。

此外,由于PowerShell与.NET对象一起使用,因此命令的结果可以是具有属性和方法的丰富对象。

Here是一篇很好的博客文章,演示了编写和调试cmdlet。

答案 5 :(得分:0)

我推荐NDesk.Options。它使用Lambda函数/ .NET 3.5,它非常适合 很好:

http://www.ndesk.org/Options 你基本上做的是:

var p = new OptionSet () {
    { "file=",      v => data = v },<br>
    { "v|verbose",  v => { ++verbose } },<br>
    { "h|?|help",   v => help = v != null },<br>
};
List<string> extra = p.Parse (args);

你已经完成了。

它支持使用自定义分隔符,列表,单值选项和切换选项的键/值对

你不会后悔使用它。