技术老大对开发闭源了基础库,打算自己写一套代替

2021-07-07 14:54:15 +08:00
 yyyyda

公司两个后端项目公用一个基础库,技术老大从之前项目中抽出来的,然后闭源了(他还在公司)。。。只给 jar 包,没有代码,也没有文档,现在开发起来很 tm 蛋疼,像吃了苍蝇一样。

具体内容包括数据库访问,授权验证,http 服务器,程序启动和销毁等等,想改点东西都得通过他,比如想加个 log,记一下所有的 http 访问记录,只有在他的库里才能改。

这不只是一个技术问题,涉及到公司和技术老大之间的一堆事。

现在小弟在考虑通过技术手段解决,自己写一遍,尽量少动业务,去掉他的库,在考虑 Spring,但是没有相关的经验,各位有没有推荐的 spring 相关项目可以参考一下?或者有没有类似的经历交流交流?

这个库大概包括:

  1. 数据库访问、查询
  2. http 服务器
  3. 授权验证
  4. 用户系统
  5. tcp 模块
  6. 一些自己封装的工具函数,处理字符串、文件等(基本就是 Apache commons 再套一层)

公司现在的技术栈是 kotlin,mysql,jdbc, http 服务器用的 javalin,没上大框架。他的库不知道多少代码,估计大概一万行左右

9891 次点击
所在节点    Java
73 条回复
nicholasxuu
2021-07-07 16:03:13 +08:00
好像法律上,(在公司的时间)用公司的电脑,做出的东西,都是属于公司的知识产权,他是没法据为己有的。
而且即使是闭源了的开源库,也可以继续使用之前的开源版本呀,自己更新就行了。
LS 有人说了,估计是只是不希望谁都可以改,这个很正常的。不然谁都能改功能,改完还得他来维护,出问题了他得负责。
ApmI00
2021-07-07 16:27:12 +08:00
这摆明就是不让修改而已,就是给用而不是给改的。还要加日志打印。。。难道平时使用使用 jdk 自带的类,也改源码,添加日志输出,然后再打包编译使用?当然,没有文档是蛋疼,这个可以诉求。加日志输出,jdk 的动态代理,或者干脆静态代理,就可以吧。
ApmI00
2021-07-07 16:29:53 +08:00
@nicholasxuu 楼主讲的闭源,跟开源项目的,一点关系都没有,就是只提供 jar 包使用,而不是把工具源码的放业务项目一起编译而已。
jorneyr
2021-07-07 16:31:24 +08:00
需要啥,提需求即可,莫动手
Lonely
2021-07-07 16:35:01 +08:00
年轻人不要太气盛(狗头)
wfd0807
2021-07-07 16:54:09 +08:00
这个基础库的意义是什么?
qwerthhusn
2021-07-07 17:01:16 +08:00
只要没加密,就很简单

假如你想临时改他写的一个类 a.b.c.D 的内容。
你在工程下建一个 a/b/c/的文件夹,把 D 类反编译的代码放进去。直接改内容。。

这时候程序启动时,加载到这个类的时候会直接加载你魔改过的,而忽略 jar 包里面的
IvanLi127
2021-07-07 17:04:15 +08:00
用着就是了,如果不想通过他的库 你给自己开个旁路,把你的代码走这旁路就好了,去掉不可取,出事了你就是背锅侠
Vindroid
2021-07-07 17:10:29 +08:00
核心库做权限限制没问题,有需求由 PM 提给技术大佬来变动,问题是文档都没有,这应该算是大佬的私心了
undef404
2021-07-07 17:10:40 +08:00
这不是很正常的事么。不可能所有人都看到公司的所有代码。
TuringGunner
2021-07-07 18:09:19 +08:00
多好的摸鱼理由啊,何必自己增加背锅机会呢
muunala10221
2021-07-07 18:39:25 +08:00
你闲的??
darknoll
2021-07-07 19:04:01 +08:00
不让你看是怕你发现他其实没写多少都是抄的
hs0000t
2021-07-07 19:11:23 +08:00
记住,这不是个技术问题
4771314
2021-07-07 19:39:08 +08:00
@vevlins 如果是加强项目管理,那直接用 git 的一套不就可以了,这人明显是搞事情
没有源码是可以接受的,但是没有文档这个问题就很大了,让他提供文档和相应的用例,不然对着一个黑盒,那真的很难受
chenqh
2021-07-07 19:42:50 +08:00
摸鱼不爽码?
liuhuansir
2021-07-07 19:53:12 +08:00
这个不算闭源吧,这就相当于二方库,只不过他应该要提供文档
wqtacc
2021-07-07 20:30:25 +08:00
这不就是大佬封装好了基础组件,不让看不让改么,作为普通员工按要求用就是了;哪里不知道就问大佬啊
oneisall8955
2021-07-07 23:15:59 +08:00
封装的问题,他写的 sdk 没有暴露接口,提供自定义实现,或者没有 before/after 钩子暴露
inframe
2021-07-08 00:05:17 +08:00
不如 jd GUI 直接看看反编译的源代码?

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

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

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

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

© 2021 V2EX