我在一家公司工作,规则基本上是(据我所知)你不能使用任何代码,除非(a)你自己编写代码或(b)有一些明确的赔偿条款保护你使用任何其他代码(如开源代码).我发现这使我的编码变得困难.
例如,书籍中的编码样本几乎都是"原样"使用.Microsoft SDK代码示例"按原样"使用.关于编码的博客文章是"按原样"使用.有几个站点有代码样本(包括SO),使用风险自负.对于知识产权诉讼,等等,等等,没有任何保证或暗示或赔偿.
基本上,我只局限于使用Asp.Net和.Net Framework而没有别的东西,并且禁止我的眼睛意外地拾起我没有创建的东西(好吧......这可能是我对规则的肛门解释; - ).
我发现这很困难,因为我认为学习编码的很大一部分是阅读其他代码.阅读有代码的博客,阅读有代码的书籍,查看编码样本,使用SDK样本中的代码等.另外,我认为使用人们已经证明是一个很好的解决方案或模式的代码是安全的.忍受他人使用.我不会认为我可以自己编码所有内容.我必须站在别人的编码肩膀上才能达到一定的高度.
可能我也不太了解许可.从公司的角度来看(我猜),他们不希望因知识产权侵权而被起诉.
我的想法是你必须权衡风险.从书中获取编码片段的风险很低.合并来自开源库的代码可能是高风险的.我说根据您愿意承担的风险做出决定.
有没有人有过像这样或类似情况工作的经历?这是一种罕见的事情还是在某些行业中很常见?还有其他人和我一样在同一个位置吗?
任何见解或指导将不胜感激!谢谢!
编辑: 感谢您的回复!澄清一些事情:我不是在提倡窃取代码.我在谈论具有某种公共许可证的代码,允许它以其定义的合法方式使用.关键是公共许可证在使用代码时没有任何赔偿.这意味着您根据自己的法律风险(和其他风险)使用它.如果有人起诉你使用过代码的开源项目,那么即使它拥有公共许可证,你也可以使用代码进行诉讼.
2005年,微软通过承诺微软将保护他们免受知识产权诉讼的合作伙伴,正在利用赔偿来与开源供应商竞争.http://www.microsoft.com/presspass/press/2005/jun05/06-22PartnerIndemnificationPR.mspx
因此,即使被起诉侵犯知识产权的风险可能极低,也是非零概率.因此,我不能使用任何一个.即使它有某种公共许可证.:-(
"因侵犯知识产权而被起诉的风险"并不是考虑它的正确方式.这不是一个"风险"的事情.
或
您拥有许可证并可以使用该来源.没有风险.你有许可证.不可能有诉讼.
要么
您没有许可证而且您违反了规定.实际上,你将被起诉.这里也没有风险.你违反了某人的版权(或更糟).
由于各种奇怪的原因,公司不愿意使用开源.诉讼风险不是其中之一.
我听到的事情.
如果它有病毒怎么办?
如果它不像宣传的那样工作怎么办?
如果它"崩溃"了怎么办?我们是谁起诉的?
这些都不是"风险"项目.他们是"尽职调查"的项目.而且大多数情况下,它们很容易解决:选择具有足够用户的产品,以便其他人在您之前审查代码; QA开源,好像你自己的一个人输入了它.除了一个.
这引出了我们真正的原因.[提示:这不是"诉讼风险".]
当你没有对开源进行尽职调查时,没有人可以起诉.
大多数商店没有真正可靠的配置管理或质量保证政策(那种在法庭上作为最佳实践而站立的政策).在他们拥有这些东西之前,他们不敢考虑引入您确实需要可靠的QA和配置管理的开源.