我的团队有一个解析控制台应用程序库的命令。我们周围的每个团队也有自己的团队。 BCL中没有任何东西,所以我认为这很自然。
我看过Mono中的模块,看起来很稳固,CodePlex上的模块也很好看。可能还有其他人会工作(我很想听听你的建议)。
真正的问题是:如何让我的团队以及我们周围的其他人承诺只使用一个?
答案 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);
你已经完成了。
它支持使用自定义分隔符,列表,单值选项和切换选项的键/值对
你不会后悔使用它。