SVN版本控制中,应对新人的方法!请各位有经验的高人帮忙!

webrobot 2010-11-08 11:19:36
在一个项目中,使用SVN作为版本控制。所有的源码都在里面。

现在公司招聘了一帮新人,那么当然需要在其中继续开发。但势必涉及到泄密问题。

比如新人检出所有代码进入自己本机笔记本,参与工作。那么过了半个月或者一个月,人家走了,那么不就相当于把公司原来人员开发的所有代码都拿走了么!?


这方面,有经验的人都是怎么管理团队合作的!?!?特别是管理泄密方面怎么杜绝新人拿走全部源码并且能让新人很好的参与工作!?
...全文
139 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
simple777 2010-11-09
  • 打赏
  • 举报
回复
为什么 不给员工每人发一个笔记本
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jxsryecheng 的回复:]
我觉得这样的想法可能不对。如果是框架核心的东西,源码肯定不能给他!打包成jar文件,新人一般不研究的。而且你只需要告诉他们怎么用就行,文档规范他们!

再说泄密源码用作商业用途涉及到版权的问题,他们也没那么大胆敢肆意宣传!
[/Quote]

对的。打包成jar。但个人怎么打包呢?登陆的代码很多。包括dao,service,action,那么怎么打包,哪些代码进入包??

能给出例子么?
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 humanity 的回复:]
像 Apache 这样的开源的项目,项目是按组件分成不同的块,每块是内聚,一起编译,每块之间则不直接引用源码,也就是说,比如 Tomcat 引用 Apache Commonts,那它只能用 apache-commons.jar 不用在 Eclipse 直接引用包括源码的 Java 项目,这有两个明显的好处:
1. 不该你维护的,你不需要直接用源码来编译,直接用别人编译好的,就不用考虑这个组件的版……
[/Quote]

谢谢。特别想了解大型项目去怎么多人合作却能保证代码的安全等。



对于内聚,使用apache-commons.jar ,暂时还不太懂得去使用!!
自己理解就是把自己的一些代码打包成.jar。让参与合作的人去使用。

不过哪位高人能举个更简单的例子,用去说明一下。

比如在j2ee中,登陆模块,到底哪些代码可以打包成jar,然后别人调用!?

能详细点么!?给出代码和详细步骤。
十橙心橙意 2010-11-08
  • 打赏
  • 举报
回复
我觉得这样的想法可能不对。如果是框架核心的东西,源码肯定不能给他!打包成jar文件,新人一般不研究的。而且你只需要告诉他们怎么用就行,文档规范他们!

再说泄密源码用作商业用途涉及到版权的问题,他们也没那么大胆敢肆意宣传!
humanity 2010-11-08
  • 打赏
  • 举报
回复
像 Apache 这样的开源的项目,项目是按组件分成不同的块,每块是内聚,一起编译,每块之间则不直接引用源码,也就是说,比如 Tomcat 引用 Apache Commonts,那它只能用 apache-commons.jar 不用在 Eclipse 直接引用包括源码的 Java 项目,这有两个明显的好处:
1. 不该你维护的,你不需要直接用源码来编译,直接用别人编译好的,就不用考虑这个组件的版本升级了没有,代码同步也不去考虑它。
2. 不该你看源码的,也就可以在 CVS/SVN 上禁止它下载源码,只允许下载 jar 文件。

依然是防君子不防小人的,只是让事情做得更有条理,更细的粒度控制。
龙心 2010-11-08
  • 打赏
  • 举报
回复
首先楼主公司允许新人带自己的笔记本电脑进公司恐怕有点说不过去吧,你都允许这样了,那你怎样防止他拷贝代码阿,一般软件公司是不允许带自己的存储设备进公司的,即使到了一定职位后允许了也有严格的审批程序。另外邮件的话需要控制附件的大小的,一般限制在2M吧,其他的3楼已经说得很清楚了。
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuantan 的回复:]
我也是新人 我所在的公司就没有这个说法,这种事情杜绝不了,看你怎么去看了

我现在用svn还不太会呢,要了源码也没有 有些根本就是jar的文件!你们的框架不是都是封装好的吗?
[/Quote]

呵呵。大多数中小型公司,的确没这个说法。是很难杜绝!

svn检出既可以把仓库内代码全部检出到本地。包扩jar。

框架不是封装得把,框架是通过配置+jar包使用的。


哎。比较难啊!
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 magicluo 的回复:]
只要能访问源码 只要能上网

你的代码就可能被拿走啊

保密约束制度,签订协议

至于技术上,好像有些做文档加密的公司有相关产品.

1. 和员工签订保密协议等
2. 公司行政管理制度 (禁止员工带笔记本带公司等)
3. IT技术约束(封杀外网,封USB,只开少量的技术网站。这个很好实现,现在很多网络设备产品都可以做到)
4. SVN本身的权限管理
[/Quote]

1、2、3、只能限制君子。

4,对于SVN权限管理,个人有点疑问,若有些核心代码,都需要用到,你设定了权限,那么别人看不到,也用不着,对新人来说就无法去使用核心代码去开发。一切都需要自己写了。这怎么解决!!


fcwryuant 2010-11-08
  • 打赏
  • 举报
回复
我也是新人 我所在的公司就没有这个说法,这种事情杜绝不了,看你怎么去看了

我现在用svn还不太会呢,要了源码也没有 有些根本就是jar的文件!你们的框架不是都是封装好的吗?
magicluo 2010-11-08
  • 打赏
  • 举报
回复
只要能访问源码 只要能上网

你的代码就可能被拿走啊

保密约束制度,签订协议

至于技术上,好像有些做文档加密的公司有相关产品.

楼主说的问题,应该从几个方面考虑。
1. 和员工签订保密协议等
2. 公司行政管理制度 (禁止员工带笔记本带公司等)
3. IT技术约束(封杀外网,封USB,只开少量的技术网站。这个很好实现,现在很多网络设备产品都可以做到)
4. SVN本身的权限管理

楼主从以上几个方面着手 应该问题不大.
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zn85600301 的回复:]
这个保密协议里面有吧 如果你们要求这么高为什么不把U口和外网封了
还能让人家用自己的机子 摆明的不安全么
而且SVN可以设置权限的 他不需要所有东西吧
不过最后说句闲话 人家真是想要你的代码 抄都能抄走 问题是他拿走也就自己看看
[/Quote]

不是要求这么高。想了解一下做银行软件的以及安全要求较高的公司,对待新人,这方面怎么通过svn约束。

另外公司架设好代码仓库。来了新人,的确有人检出所有代码,过两三星期就走人的。

另外,若不能检出所有代码,人家新人怎么进行代码编写阿!

所以,这方面想了解一下。
zn85600301 2010-11-08
  • 打赏
  • 举报
回复
这个保密协议里面有吧 如果你们要求这么高为什么不把U口和外网封了
还能让人家用自己的机子 摆明的不安全么
而且SVN可以设置权限的 他不需要所有东西吧
不过最后说句闲话 人家真是想要你的代码 抄都能抄走 问题是他拿走也就自己看看
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 zn85600301 的回复:]
引用 13 楼 humanity 的回复:

按组件划分,不一定是按项目划分也不一定是按包名划分。

比如:Login 包括 Persistence 模块提供的功能,包括 Commont/Util 提供的加密压缩等方法,那么,可能划分成下面几个项目:
persistence (persistence): com.xxx.commons.persistence
commons (加密压缩……
[/Quote]

呵呵。先学会打包吧。这暂时都不会。

感觉dao,servce,action,比较分散阿,到底怎么去打包呢?按照什么规则?希望有详细解释!!

dao,只有一个接口一个类文件。都统一用这个。
server 每个表针对一个。
action也是

到底怎么打包!晕倒。高人帮忙。
zn85600301 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 humanity 的回复:]

按组件划分,不一定是按项目划分也不一定是按包名划分。

比如:Login 包括 Persistence 模块提供的功能,包括 Commont/Util 提供的加密压缩等方法,那么,可能划分成下面几个项目:
persistence (persistence): com.xxx.commons.persistence
commons (加密压缩) : com.xxx.common……
[/Quote]
打包这是个不错的建议
问题是 要是想保密的话 还是要混淆的 混淆软件很多都收费 我以前用过JBUILD带的混淆工具
webrobot 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 humanity 的回复:]
按组件划分,不一定是按项目划分也不一定是按包名划分。

比如:Login 包括 Persistence 模块提供的功能,包括 Commont/Util 提供的加密压缩等方法,那么,可能划分成下面几个项目:
persistence (persistence): com.xxx.commons.persistence
commons (加密压缩) : com.xxx.commons.encry……
[/Quote]

先吃饭,下午仔细领会。

缺少详细这方面讲解,新人暂时对这方面比较陌生。怎么按照模块打包成jar,可以提供他人团队内合作。
humanity 2010-11-08
  • 打赏
  • 举报
回复
按组件划分,不一定是按项目划分也不一定是按包名划分。

比如:Login 包括 Persistence 模块提供的功能,包括 Commont/Util 提供的加密压缩等方法,那么,可能划分成下面几个项目:
persistence (persistence): com.xxx.commons.persistence
commons (加密压缩) : com.xxx.commons.encrypt
authentication (登录) : com.xxx.auth

这里,同样是 commons 包下面的子包,不一定全部放在 commons 项目下,还需要按组件功能来分(可以再划分子包或不划分)。划分的主要标准是将来能按组件将几个相关的项目打包成 jar,比如组件 A 依赖组件 B,组件 B 依赖组件 C,不会缺少东西 B 导致编译A运行错误,又不会多出东D西导致以后这个组件D版本升级时,你的以前的其它模块A/B/C 用到它时还包括了一个过旧的版本,过时的版本D散布在各个下游模块A/B/C中将很难同步版本,你重新编译这个下游A模块的话,可能有其它相关的类(特别是未直接引用的第三者类,假设在 C中)又因版本问题无法编译(这种情况经常碰到,因为你没打算把 C 也升级到新版本)。

如果划分不合理的话,结果经常是如果要升级就必须把所有的代码全部换成新版本,否则很多项目无法编译,但如果全部换成新版本又可能因为某个模块未完全通过测试就交给其它模块或项目组使用时影响其它项目组的进度,因为他们会经常报告 bug 影响你的计划又影响它的进度。



fkyq01 2010-11-08
  • 打赏
  • 举报
回复
用人不疑

可以让公司买防水墙软件

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧