如果用Java编写,你可以使用混淆机制让人难以看懂你的算法。
使用C编写的函数库,可以让人更难读懂你的算法,要研究就需要读汇编语言。
但是以上两种办法都不能阻止别人研究你的算法,要不让人知道你的算法的最好办法就是不提供算法:
你可以事先定义好服务的接口规约,提供给外包公司一个简单的打桩服务包(只实现测试足够的逻辑即可,不包含核心业务业务逻辑),外包公司软件提交后,在本公司重新集成(替换核心业务服务包)。
如果你的核心逻辑价值超过几万、几十万(个人观点,每个公司不同)可以考虑最后一种方法, 否则不用那么麻烦了, 使用前两种方法即可。因为可以使得外包公司能同时测试你的代码。