我在一家公司工作,该公司的规则基本上是(据我了解)您不能使用任何代码,除非(a)您自己编写代码或(b)有一些明确的赔偿条款保护您使用任何其他代码(例如开源代码)。我发现这使我的编码变得困难。
例如,书中的编码示例几乎都是“按原样”使用的。Microsoft SDK 代码示例按“原样”使用。有关编码的博客文章按“原样”使用。有几个站点带有代码示例(包括 SO),使用风险自负。对知识产权诉讼、废话、废话等没有暗示的保证或赔偿。
基本上,我仅限于使用 Asp.Net 和 .Net Framework,仅此而已,并防止我的眼睛意外捡起我没有创建的东西(好吧……这可能是我对规则的肛门解释; -)。
我觉得这很困难,因为我认为学习编码的很大一部分是阅读其他代码。阅读有代码的博客,阅读有代码的书籍,查看编码示例,使用 SDK 示例中的代码等。此外,我认为使用人们已经证明是一个很好的解决方案或模式的代码是安全的,并且可以自由地使用供他人使用。我不会认为我可以自己编写所有代码。我绝对必须站在别人的编码肩膀上才能达到一定的高度。
可能是我也不太了解许可。从公司的角度来看(我想),他们不想承担任何因知识产权侵权而被起诉的风险。
我的想法是你必须权衡风险。从书中获取代码片段的风险很低。合并来自开源库的代码可能是高风险的。我说根据您愿意承担的风险做出决定。
有没有人在这样或类似的情况下工作过?这是罕见的事情还是在某些领域很常见?外面有没有和我一样位置的人?
任何见解或指导将不胜感激!谢谢!
编辑: 感谢您的回复!澄清一些事情:我不提倡窃取代码。我说的是具有某种公共许可的代码,允许以定义的合法方式使用它。关键是公共许可证在使用该代码时没有任何赔偿。这意味着您使用它需要您自己承担法律风险(和其他风险)。如果有人起诉您使用代码的开源项目,您也可能会被卷入诉讼,因为您正在使用该代码,即使它具有公共许可证。
2005 年,微软通过向其合作伙伴承诺微软将保护他们免受知识产权诉讼,利用赔偿与开源供应商竞争。http://www.microsoft.com/presspass/press/2005/jun05/06-22PartnerIndemnificationPR.mspx
所以,即使被诉侵犯知识产权的风险可能极低,也属于非零概率。因此,我不能使用任何一个。即使它有某种公共许可证。:-(