公司两个后端项目公用一个基础库,技术老大从之前项目中抽出来的,然后闭源了(他还在公司)。。。只给 jar 包,没有代码,也没有文档,现在开发起来很 tm 蛋疼,像吃了苍蝇一样。
具体内容包括数据库访问,授权验证,http 服务器,程序启动和销毁等等,想改点东西都得通过他,比如想加个 log,记一下所有的 http 访问记录,只有在他的库里才能改。
这不只是一个技术问题,涉及到公司和技术老大之间的一堆事。
现在小弟在考虑通过技术手段解决,自己写一遍,尽量少动业务,去掉他的库,在考虑 Spring,但是没有相关的经验,各位有没有推荐的 spring 相关项目可以参考一下?或者有没有类似的经历交流交流?
这个库大概包括:
公司现在的技术栈是 kotlin,mysql,jdbc, http 服务器用的 javalin,没上大框架。他的库不知道多少代码,估计大概一万行左右
1
bl 2021-07-07 14:58:58 +08:00
把他的库去掉,哪里报错改哪里
|
2
duduaba 2021-07-07 15:02:05 +08:00 13
你都说了他是老大,所以当你这个库写成之时,也就是你离开之日。
|
3
yousabuk 2021-07-07 15:03:02 +08:00 via iPhone
不要这么干
|
4
SilencerL 2021-07-07 15:03:32 +08:00 4
大吃一惊.jpg
劳动合同里面没写类似“在司期间所有产出均属公司所有”之类的条款吗,没离职就搞这出,离职岂不是还能在里面偷偷加屎? |
5
keepeye 2021-07-07 15:03:48 +08:00
自己开个分支出来慢慢改,哪里报错换哪里
|
6
falcon05 2021-07-07 15:06:37 +08:00 via iPhone
别这样,损人害己
|
7
wangkun025 2021-07-07 15:06:44 +08:00
活久见。
|
8
fiypig 2021-07-07 15:07:09 +08:00
不要自己改, 只能找他,除非他走了
还有他这么操作,也差不多也走了吧 |
9
huangmingyou 2021-07-07 15:12:42 +08:00
大公司里面,源代码不是谁都能全部浏览吧。当初这么搞,肯定是出于安全考虑。
|
10
yaoliyc 2021-07-07 15:13:23 +08:00
jar 做了加密吗?不然反编译一下都看到了。而且这也不是单纯的技术问题。
|
11
wolfie 2021-07-07 15:27:40 +08:00
跟 spring 没关系,就是基础工具,一般轮子 hutool 基本有。
|
12
murmur 2021-07-07 15:28:37 +08:00
http 服务器,这个东西也要写库的意义何在
|
13
jzphx 2021-07-07 15:31:16 +08:00
神仙打架别凑热闹
|
14
yukiww233 2021-07-07 15:32:07 +08:00 1
jar 相当于开源;
如果只是简单改一些东西注入一些东西的话, 相同路径本地写一份覆盖掉 jar 里的 class 就好 |
15
EPr2hh6LADQWqRVH 2021-07-07 15:33:07 +08:00
以后开公司机器自带 cron job 每半分钟运行 killall java 杜绝此类问题
|
16
zhuweiyou 2021-07-07 15:33:39 +08:00
他是老大 当然听他的
|
17
dadaoqueyi 2021-07-07 15:35:49 +08:00
现成的甩锅对象,有问题就找他不是挺好的嘛。我做的就是平台封装的活,不知道被甩了多少锅,纯粹吃力不讨好,特别是稍微懂一点技术的人。小白还好不懂就老老实实的按照封装的搞。不过不给文档就过分了,源码没放开公司自己有考量的。
|
18
Tink 2021-07-07 15:36:24 +08:00 via Android
没这么干的吧也能当
|
19
vevlins 2021-07-07 15:50:26 +08:00 5
他闭源的目的不是不让你们用,而是不让你们改,甚至于可能想加强对这里的管理,希望以后方案是他来拟定。
搞清楚这一点很重要。如果你自己搞一套,他的目的就达不到了,你跟老板就是在唱反调。如果你的目的就是唱反调,那就做,否则还是不要的好。 |
20
qW7bo2FbzbC0 2021-07-07 15:52:13 +08:00
@murmur #12 我猜可能是自定义 cookies,设置特殊 header,dto 序列化反序列化
|
21
nicholasxuu 2021-07-07 16:03:13 +08:00
好像法律上,(在公司的时间)用公司的电脑,做出的东西,都是属于公司的知识产权,他是没法据为己有的。
而且即使是闭源了的开源库,也可以继续使用之前的开源版本呀,自己更新就行了。 LS 有人说了,估计是只是不希望谁都可以改,这个很正常的。不然谁都能改功能,改完还得他来维护,出问题了他得负责。 |
22
ApmI00 2021-07-07 16:27:12 +08:00
这摆明就是不让修改而已,就是给用而不是给改的。还要加日志打印。。。难道平时使用使用 jdk 自带的类,也改源码,添加日志输出,然后再打包编译使用?当然,没有文档是蛋疼,这个可以诉求。加日志输出,jdk 的动态代理,或者干脆静态代理,就可以吧。
|
23
ApmI00 2021-07-07 16:29:53 +08:00 1
@nicholasxuu 楼主讲的闭源,跟开源项目的,一点关系都没有,就是只提供 jar 包使用,而不是把工具源码的放业务项目一起编译而已。
|
24
jorneyr 2021-07-07 16:31:24 +08:00
需要啥,提需求即可,莫动手
|
25
Lonely 2021-07-07 16:35:01 +08:00 via iPhone
年轻人不要太气盛(狗头)
|
26
wfd0807 2021-07-07 16:54:09 +08:00
这个基础库的意义是什么?
|
27
qwerthhusn 2021-07-07 17:01:16 +08:00 2
只要没加密,就很简单
假如你想临时改他写的一个类 a.b.c.D 的内容。 你在工程下建一个 a/b/c/的文件夹,把 D 类反编译的代码放进去。直接改内容。。 这时候程序启动时,加载到这个类的时候会直接加载你魔改过的,而忽略 jar 包里面的 |
28
IvanLi127 2021-07-07 17:04:15 +08:00
用着就是了,如果不想通过他的库 你给自己开个旁路,把你的代码走这旁路就好了,去掉不可取,出事了你就是背锅侠
|
29
Vindroid 2021-07-07 17:10:29 +08:00 1
核心库做权限限制没问题,有需求由 PM 提给技术大佬来变动,问题是文档都没有,这应该算是大佬的私心了
|
30
undef404 2021-07-07 17:10:40 +08:00
这不是很正常的事么。不可能所有人都看到公司的所有代码。
|
31
TuringGunner 2021-07-07 18:09:19 +08:00
多好的摸鱼理由啊,何必自己增加背锅机会呢
|
32
muunala10221 2021-07-07 18:39:25 +08:00
你闲的??
|
33
darknoll 2021-07-07 19:04:01 +08:00
不让你看是怕你发现他其实没写多少都是抄的
|
34
hs0000t 2021-07-07 19:11:23 +08:00 via Android 4
记住,这不是个技术问题
|
35
4771314 2021-07-07 19:39:08 +08:00
@vevlins 如果是加强项目管理,那直接用 git 的一套不就可以了,这人明显是搞事情
没有源码是可以接受的,但是没有文档这个问题就很大了,让他提供文档和相应的用例,不然对着一个黑盒,那真的很难受 |
36
chenqh 2021-07-07 19:42:50 +08:00
摸鱼不爽码?
|
37
liuhuansir 2021-07-07 19:53:12 +08:00
这个不算闭源吧,这就相当于二方库,只不过他应该要提供文档
|
38
wqtacc 2021-07-07 20:30:25 +08:00 2
这不就是大佬封装好了基础组件,不让看不让改么,作为普通员工按要求用就是了;哪里不知道就问大佬啊
|
39
oneisall8955 2021-07-07 23:15:59 +08:00 via Android
封装的问题,他写的 sdk 没有暴露接口,提供自定义实现,或者没有 before/after 钩子暴露
|
40
inframe 2021-07-08 00:05:17 +08:00
不如 jd GUI 直接看看反编译的源代码?
|
41
dayeye2006199 2021-07-08 01:48:53 +08:00
10 分钟一条消息问这个借口怎么用,那个借口怎么用。直到人家忍不住说 “你 tm 不会看文档 /源码”。。。
|
42
ericgui 2021-07-08 02:03:12 +08:00
这肯定是有问题的
|
43
HENQIGUAI 2021-07-08 07:19:28 +08:00
非技术问题不要用技术解决。
|
44
xcstream 2021-07-08 07:54:29 +08:00
为什么要写一套,这是个问题
|
45
xuanbg 2021-07-08 08:05:25 +08:00
楼主你要重写一套的话,前提是你老大不再是你老大。否则就别给自己找麻烦了。
|
46
yolee599 2021-07-08 08:54:54 +08:00 via Android
不要这么干,除非这代码涉及敏感操作,否则他的源码有义务给你,因为这是公司的不是他个人的
|
47
Leonard 2021-07-08 09:26:32 +08:00
不要试图用技术来解决非技术问题
|
48
kop1989 2021-07-08 09:27:28 +08:00
你去工地搬砖的时候,难道你也要偷偷换成自己的烧的砖嘛?理由就是别人窑厂烧的砖你看不惯?
|
49
sagaxu 2021-07-08 09:28:17 +08:00 via Android 2
小农思想
|
50
play78 2021-07-08 09:35:43 +08:00
风险控制啊。
核心代码闭源,在稍微上规模的公司,这不是很常见的吗?不然哪天员工就给泄漏出去了。 每个员工都能知道 WX 的登录逻辑? ZFB 支付逻辑? 没有文档,有个 demo,你直接调用就可以了。有问题直接找他。 |
51
Marszm 2021-07-08 10:29:24 +08:00
区区 jar 包。。加密了么?没加密不等于开源?
|
52
Marszm 2021-07-08 10:32:00 +08:00
还有就是,公司内部不存在开源闭源。。。都是闭源。。我能改你们公司代码才叫做开源。
|
53
chengkai1853 2021-07-08 10:32:32 +08:00
感觉你想当老大
|
54
icyalala 2021-07-08 10:35:46 +08:00
|
55
allanpk716 2021-07-08 10:45:27 +08:00 via iPhone
基础库,公司内部闭源的原因基本是想让大家不要瞎折腾,用一个稳定的,有问题统一改,有需求就提。你都说没相关经验,正好说明公司的决定是正确的,别瞎折腾。文档不全就反馈,而不是重做一个轮子。
以后有机会你带新人的时候,你可以想一下为啥要强制用统一的基础库的。 |
56
xumng123 2021-07-08 10:49:34 +08:00 via iPhone
平台—中台—业务代码,公司有大的考虑,可以反馈但别这么干
|
57
xingzw 2021-07-08 14:12:48 +08:00
情商堪忧
|
58
FanError 2021-07-08 14:27:55 +08:00
我们公司基础库也是这样弄的,封装成 jar 包,放在私有 maven 上。。
方便分发到其它项目( 5,6 个)。。 |
59
yunshansimon 2021-07-08 14:38:57 +08:00
既然用 java,用反射可以改任何东西,不用源代码吧。用好反射,就是神也不能阻止你在运行时更改他的函数。
|
60
gefranks 2021-07-08 14:45:19 +08:00
现在弄得项目也有个类似这样的引用了 ar 包,看上去是公司里人自己写的,但是文档没有,源代码也没有. 就算有也不想去改了。
现在用这个的就是八仙过海各显神通了,能凑合用的就用,不能凑合用就另起炉灶了 |
61
back0893 2021-07-08 14:58:50 +08:00
文档都没咋个写..
|
62
windyboy 2021-07-08 15:07:03 +08:00
很多不知深浅的搞 java 的,动不动就是自己写什么基础库
还让所有项目继承来用,根本不考虑长期的运维问题 一塌糊涂 |
63
jiyinyiyong 2021-07-08 15:26:22 +08:00
> 而且现在他转项目了,现在就剩我一个后端。不给代码仓库权限,不给文档就算了,jar 包也不给个 sources 包
不明觉厉, 转到其他项目了不给权限? 意味着后端这个包如果有 bug 还没人改了? 老板还默认这种情况的吗... |
64
bthulu 2021-07-08 15:33:41 +08:00
@allanpk716 这里有个最麻烦的问题在于, 当闭源基础库是领导写的, 同时这个领导已经高升不再写代码了, 这个时候有 issue 要改, 要加功能那就基本不可能了. 基于办公室政治原因, 没人敢让领导去改代码, 更没人敢说领导代码写的不好, 所有的 bug 最后都变成了 feature, 屎山就这么来了
|
65
oldmanong 2021-07-08 16:10:04 +08:00 via iPhone
既然楼主这么想造反,那就试试嘛,万一成功了呢,你就是技术老大了
|
67
kwanzaa 2021-07-08 17:20:31 +08:00
有能力就自己写
|
68
janus77 2021-07-08 17:51:12 +08:00
springboot 一套,网上全是开源项目
|
69
LDa 2021-07-09 10:31:52 +08:00
这么良心的老大哪里找,锅可以甩的飞起
|
70
37Y37 2021-07-09 16:20:26 +08:00
emm...老大这思想
|
71
allanpk716 2021-07-10 09:19:46 +08:00
@bthulu 如果考虑办公室 ZZ 问题,那么建议看形势不对就撤吧,因为你们不敢提 issues 已经恶性循环,和自己偷偷造轮子应该也是会被锤的 doge
|
72
bthulu 2021-07-10 10:57:55 +08:00
@allanpk716 已经被直属锤过一次了, 但是大领导的包实在是难用, 我现在学聪明了, 把大领导的包改了后, 改个超低版本号上传上去. 然后引这个低版本的 jar 包就行了.
|
73
MidCoder 2021-07-21 13:51:30 +08:00
这个库纯属你们老大闲的没事,没有任何技术含量。
数据库访问不管是 spring 现有的框架 spring jdbc 还是 mybatis 都已经很完善,没有必要自己再去造轮子, http 服务器这个是啥意思?自己做了一个 tomcat ?还是 nginx?如果是,那这个轮子太重了,闲的蛋疼,如果是一个统一的 springmvc 包装,这也是闲的蛋疼,没事找事。 授权签证,这个不管是 spring 的 security 还是 shiro,结合 oauth 规范,这个也没必要再造一个轮子; 卧槽,为啥用户系统还做成了一个框架或者工具?这明显是一个业务,业务就要好好的去写业务,没必要在搞一个这个东西 TCP 现在一大堆网络框架,为啥自己写?你能比 netty 牛逼?如果是这样,那他现在也不应该还在你的公司,早就名声在外了。 综上所述,你们公司太卷了,而且卷的一点技术含量都没有,来我们这边[狗头] |