首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重用通用代码,以便在公司之间进行咨询?

如何重用通用代码,以便在公司之间进行咨询?
EN

Software Engineering用户
提问于 2012-01-20 04:03:07
回答 2查看 2.5K关注 0票数 7

我全职受雇于X公司,并与Y公司接触,为他们提供咨询服务,为他们编写嵌入式C。虽然我知道利益冲突的基本知识,以及共享专有信息、公司知识和专有算法的大禁忌,但对于我需要重用的基本通用项目,我确实有一些问题:

  • 软件架构:我个人喜欢分层应用程序、抽象层和硬件驱动程序。我不想做一些不同的事情,而且它不是公司的专利。如果分享的话,这会是个问题吗?
  • 通用函数:表查找、正弦/余弦函数、解析器等。我自己编写了所有这些代码。我可以复制粘贴这个或我必须重写,插入随机空格,更改缩进,变量名称,表大小等吗?
  • 函数命名:我使用特定的命名约定,例如MATH_Sin()。但是,编译成DLL后,公司X可以在Y公司的DLL中找到可用的MATH_Sin()函数,并假设我复制了它们的代码。是否需要重命名所有函数以隐藏任何相似之处?
  • 公共知识转化为源代码:假设您在描述如何在字符串中搜索模式的纸张上找到一个算法,然后将纸张内容转换为源代码。再说一遍,复制粘贴在这里也是不可以的吗?重写,改变一些事情,或者完全放弃,找到另一种方法去做?最后,它是一种公共知识的实施。

我问我的同龄人,我无法得到一个直接的答案,以做什么。软件是数字和非常可追溯的,总是可以追溯到开发人员。

谢谢。

更新:我已经联系了我的经理和人力资源部,他们强烈劝阻我去追求这个目标。他们声称,对另一家公司使用同样的技能集(嵌入式编程或一般编程),X公司总会有机会挑战自己或Y公司。我当时问,什么不会被视为利益冲突,他们回答说:“你可以投资一家餐厅.”。我是认真的?

X公司是一家非常大的公司。雇主和公司之间没有谈判,不接受开源/许可代码,而且他们似乎相信他们拥有我和我的技能集。虽然我同意他们的一些理由,但我不同意他们拥有我的教育,而且,当我为他们工作时,我不能把我的基本技能用于其他工作。因此,我已决定遵循以下建议,并开放源代码,我的所有个人代码,不属于公司,也不是用公司的设备或公司的时间。我不会赚钱,也不会签合同,但至少我可以保留我的个人代码,在这种限制性环境之外继续发展我的职业生涯。

谢谢你的回答。希望这能为其他追求同样目标的人提供参考。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2012-01-20 04:38:29

如果你向一家特定的公司收取开发代码的时间,那么你就被困住了--这些代码属于它们,你不能随身携带。

如果您已经在自己的时间内建立了自己的代码库,并且希望能够在不同的项目中重用它以提高效率,一种解决方案是在许可许可下发布该代码,您只需在标题中的注释中编写" license : LGPL“或任何其他内容即可。

您可能会认为这将失去您的竞争优势,因为其他人可能只是捡起您的代码并开始使用它,但是

  1. 您将永远是最能够使用您自己的代码的人,而且
  2. 仅仅因为这些代码是免费使用的,并不意味着你必须把它发布在你的网站上供全世界盗用。
票数 7
EN

Software Engineering用户

发布于 2012-01-21 04:24:55

这是近乎法律咨询和这个网站不是真正的权威来源,如果你需要准确的信息。一段时间前,当我换工作的时候,这个同样的问题突然出现在我的脑海中,我做了一些研究,但我对我所说的一切都不以为然。

  1. 如果你是全职员工,写在公司时间上的代码属于该公司.
  2. 你需要非常小心,在“发展自己的时间”。许多公司认为,他们在受雇时编写的任何代码也属于他们所有。不久前,Joel写了一篇关于这个确切主题的非常写得好的文章。他确实提出了一些好的观点,在某些情况下,公司在合同中包括了你在与他们一起工作时产生的任何代码都是他们的。毕竟,我们是领工资的,而且没有固定的时间。我可能是个特例,但对我来说,最有效率的时间是凌晨12点到5点。那么,你如何证明什么构成了“公司时间”?
  3. 当我从一份工作转到另一份工作时,我留下了一个相对庞大的个人代码集合。我甚至从来没有考虑过使用这些代码,因为( a)这可能不是世界上最合乎道德的事情;( b)我读了足够多的故事,完全避开了任何涉及我以前的雇主代码的事情。然而,当我开始在我现在的公司工作时,我发现头3-5个月我花了很多时间重写我已经写过的东西。这感觉很奇怪,因为即使我没有看旧代码,我也很清楚在哪里可以很容易地复制一些看起来非常相似的东西。在做了大量的阅读之后,我只能得出结论,虽然X公司拥有版权,但他们并不拥有你的大脑。你可以随心所欲地写同样的东西,只要你在为Y工作的时候,你的X公司代码就在你的眼前,只要它永远不能被实际证明。有鉴于此,我建议你不要简单地改变白间距和可变名称。

在我的例子中,我最终从内存中编写了大量的库,但同时,由于我已经与以前的库一起工作了多年,我知道它们缺少的地方,或者是一个痛苦的工作。因此,当我转到Y公司时,我也花了时间从头开始重建这段代码,但是有了额外的嵌入式体验。

我并不期待在我的下一份工作中做这件事,但我唯一能想到的就是在接受一份雇佣合同之前,在管理层并不完全反对开源的公司找到一份工作。我想我会倾向于公司,他们不介意在麻省理工学院许可下发布与非商业相关的图书馆。

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/131103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档