在我的各种工作场所中,我总是写代码,这使我认为“在其他情况下这将非常有用”。的确,即使我花了更长的时间写代码,我还是故意写的,我知道这会在将来对我有所帮助(例如自定义SubString()
函数)。这些摘录的一个不错的选择是各种“助手”类。
我确定这些片段可能会在网上其他地方找到,但重点是,我写了它们,以后将在其他工作或个人项目中再次使用它们。目前,我没有维护个人代码库,但问题是,将您在工作中产生的代码用于(a)用于个人项目,(b)用于其他工作是否是错误的?
在我的各种工作场所中,我总是写代码,这使我认为“在其他情况下这将非常有用”。的确,即使我花了更长的时间写代码,我还是故意写的,我知道这会在将来对我有所帮助(例如自定义SubString()
函数)。这些摘录的一个不错的选择是各种“助手”类。
我确定这些片段可能会在网上其他地方找到,但重点是,我写了它们,以后将在其他工作或个人项目中再次使用它们。目前,我没有维护个人代码库,但问题是,将您在工作中产生的代码用于(a)用于个人项目,(b)用于其他工作是否是错误的?
Answers:
我一直通过拥有一个个人项目解决这个问题,在该项目中,我将所有疯狂的想法和通用的东西放到了一起,然后以BSD许可的形式进行许可,该许可使人们可以重复使用,更改,重新命名,关闭它并收取费用它。这样,我保留了版权,但是可以为此和该雇主随意使用该代码,因此,我保留了原始文档的版权,但是雇主保留了重用实例的版权。我认为,如果他们对此有疑问,那么他们只需要付钱给我在工作时间重写它,从他们的角度来看这是没有意义的。此外,公司一直在使用BSD代码,因为BSD背后的想法是让人们和公司几乎可以使用他们想要的任何东西,包括重命名和出售它。
然后,当然,如果在工作场所对代码进行了添加,那么我必须在自己的时间重写它,否则我将无法在其他地方重用它……这很好,因为通用的东西通常相对较小,除非它是无论如何,这种想法需要大量的业余时间。
自行编写代码并在BSD风格的许可证下授权代码,应该可以自己维护一个库,您可以在几乎任何地方使用它。
现在,对于声称侵吞您所有个人项目的版权的合同……这可能在不同司法管辖区之间存在根本差异,但至少在某些西方司法管辖区,据我了解,合同不能做到这一点。合同可以说确实可以,但是不会在法院强制执行,因为必须明确转让版权,而不是“您的所有基地都属于我们”,这种协议永远不会得到维持(在无论如何,我来自哪个司法管辖区。对于可以通过合同在法院中维持的内容有很多限制,这就是为什么您通常(并希望)看到一个条款,说明如果合同的一部分不合法地起作用的原因, ,其余合同仍然有效。
但与往常一样,在您将此解释为准确的法律建议之前,请咨询律师。我从来没有在这个问题上上法庭,所以我不知道这些事情都是律师证明的事实。:)
这取决于您的雇佣合同。如今,最可能的答案是(a)是,这是错误的,并且(b)是,这是真的错误。如今,几乎提供给开发人员的所有合同都有条文规定,您在公司雇用期间编写的任何代码(无论是否在办公时间内)都是其代码,并且您会自动将版权转让给他们。除非您对此进行特别协商,否则大概适用于您。
但是,与往常一样:
不要相信我们!在做可能有危险的事情之前先咨询律师。
只需在需要时重写代码。只需几分钟即可完全避免该问题。
在此期间,您可能会学到更多,并且会写点更好的东西。重写代码通常也会使其更优雅。
x()
等等,如果函数的目标如此具体和有用,以至于没有太多的编写方法,该怎么办?在这种情况下,如果实现如此相似,如何将其分开?
取决于您的工作条件。请咨询您的主管,人力资源部门,法律部门和/或道德部门,以确定您公司拥有什么,您拥有什么,以及请求获得使用权或财产所有权的过程是什么您在工作中产生的。
在我工作过的几乎每个地方,进入项目的东西都是公司所有的,但是我已经寻求并获得了许可,可以逐案将其用于个人项目,这通常需要解释我想要的东西以及如何解决它对组织的不利影响。
我感到惊讶的是,这里投票最多的答案是“是”。作为开发人员,答案始终是“绝对不会”,除非代码是:
有人付钱给您写代码。除非有不同的理解和协议,这是很好的,否则其他人无法获得其直接收益。
现在-直接一词。如果您到达了项目的结尾,并且学到了一些有趣的东西,并且创建了一些与客户的知识产权没有直接联系的有用的东西,那么请花一些时间为自己创建一个库。更好的是-使用它启动一个开源项目,这样每个人最终都会因此而变得更加富有。我认为从驱赶积雪的角度来看,这绝对是100%纯净的,确实,我自己做了。
在短期内,重用您已为其他人付费的代码将导致您法律上的头疼。从长远来看,它将导致您性格头痛。
我确信这是法律问题,具体取决于您的住所/工作地点以及所达成的协议/您的合同。
如果我自己花时间在自己身上学习一些东西,那么我所支付的所有费用(计算机,互联网访问,软件等),他们会不想我在工作中利用它吗?您找到了一个个人项目的正则表达式,并决定将其通过电子邮件发送到您的工作帐户,因为您可能会使用它。花费公司时间假装再次在互联网上搜索它会有点愚蠢。当然,我们会努力提高自己的技术水平,这是程序员的期望,等等,但是如果它不在编程甚至IT领域之外,该怎么办?如果他们想玩这个游戏,我可以阻止。
该公司可以尝试紧紧掌握我编写的代码。建立关系只是基础薄弱。如果他们非常在乎几行代码,我无法想象他们会在多大程度上支配我的时间。这值得更多。
您的问题与“ 开放源代码-重新创建/开放您先前为另一家公司创建的程序合法吗? ”的问题非常相似。
我要说的是,您的法律依据不可靠,因为您工作的公司可能拥有您为他们编写的代码。最好从头开始编写例程,但是即使这样,如果您仍然有其他代码的副本,可能还会有疑问。
[我不是律师,所以不要指望我的建议能在法庭上为您提供帮助。]
我要说的是,最好不要在项目之间保留那些通用的小方法/功能。在大多数情况下,您可以使用Boost或任何您提供的语言来执行此操作。在大多数情况下,这些文字要比您的文字更好。
一个好的主意是为它们提供一组单元测试,并使用它们来测试您的代码kata。
我知道这是一个古老的问题,但是有人提出来,我觉得添加一个对谢尔盖·阿列尼科夫非常悲惨的故事的参考是一个好主意。在您从工作中获取任何密码之前,请阅读有关此操作如何毁了他的生活并使他入狱的信息。