客户端程序代码如果做权限控制

2024-09-02 09:55:32 +08:00
 supermama

以前做的都是 BS 的程序,前后分离,前端、后端、数据库 分别是三批人分成不同权限管理,所以也不担心代码泄露或者权限问题。 那么如果是 CS 的程序,要 Git 仓库要怎么分权限,既保证一个人无法拿到全部的代码,而且也不影响在开发过程中的协作呢?

2937 次点击
所在节点    程序员
26 条回复
panxiuqing
2024-09-02 10:13:11 +08:00
以前三批人没法交流串通?
shadowyue
2024-09-02 10:16:53 +08:00
没有完整代码项目在开发的时候能跑起来?
supermama
2024-09-02 10:17:04 +08:00
@panxiuqing 理论上会,但是至少出状况的概率会低一些。现在如果是 cs 结构,其实连数据库也没有,纯客户端,一个人出事,代码就被拿走了。
supermama
2024-09-02 10:18:14 +08:00
@shadowyue 不行,跑不起来。所以就不知道像客户端的这种项目,要怎么区分好权限,既能协作编码,但是每个人又只能拿到自己的那部分代码。
vituralfuture
2024-09-02 10:22:09 +08:00
拿不到全部的代码其实问题很大。假设楼主的这个项目是 C++写的,可以通过链接到预先编译的库的方式避免某人拿到这部分的代码,但只适用于分层明显的情况下。如果这部分属于同一层,出 bug 了很难排查。如果这一层是频繁变动的业务,操作起来也很麻烦

最后,防止代码泄露应该靠法律手段,技术手段防不住的
shijingshijing
2024-09-02 10:23:00 +08:00
@shadowyue 接口定义好了完全没问题的,前提是文档完善,接口清晰,不经常变来变去。
shadowyue
2024-09-02 10:26:14 +08:00
客户端程序也可以拆成例如 UI 层,业务层,数据层吧,
每个部分之间的交互通讯能支持本地或者远程两种方式的话,
你就能把几个部分拆开,各自开发各自的。这个思路不知道是否可行
zhangeric
2024-09-02 10:27:45 +08:00
cs 跟 bs 一样啊,做成前后端分离不就完了么?
xuanbg
2024-09-02 10:29:23 +08:00
你的客户端难道不是替代 JS 前端的么?不会是客户端直连数据库的吧???
Skifary
2024-09-02 10:34:33 +08:00
CS 分层分模块也一样
tool2dx
2024-09-02 10:38:10 +08:00
客户端可以啊,每人负责一个 dll 模块,整体运行起来只需要调用接口,不需要源代码。每个人的 git 权限隔离。
gbw1992
2024-09-02 11:02:37 +08:00
之前我们做.net cs 项目时,不同业务模块可以发布到私有 nuget 上由不同组开发。主程序 host 项目直接引用或者使用反射的方式加载不同项目的界面。
nice2cu
2024-09-02 11:29:05 +08:00
分模块 jar 包模式引入,只能看别人的代码 不能改
R4rvZ6agNVWr56V0
2024-09-02 12:54:53 +08:00
不同的库、不同的权限
共同的 CI/CD (管理员能拿到所有权限)
自动打包,然后进行测试
sampeng
2024-09-02 13:41:00 +08:00
防君子不防小人。否则,so 出模块。也没什么好的办法
sampeng
2024-09-02 13:41:48 +08:00
但说实话吧,代码真的有这么重要么?除了真正算法累的。普通 crud ,功能页面类的。有源码又怎么样,重要的是市场模型吧
importmeta
2024-09-02 14:05:52 +08:00
建议做好保密协议,知识产权,专利,因为防不住。
HangoX
2024-09-02 14:09:38 +08:00
cs 程序吗? git 做这个有点难的,需要用 subtree ,或者直接通过 nexus 提供不同的底层包
janus77
2024-09-02 14:21:37 +08:00
前端后端数据库本来就是不同的项目啊,是各自打包最后产物也是各自的,你这客户端凭什么要分开啊,我不理解,仅仅是为了安全?前端后端分离开也不是为了安全才分开的啊
dandycheung
2024-09-02 14:23:37 +08:00
改用 SVN 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX