开源一个项目后,项目使用率很低,大家会选择继续维护还是放弃呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
mobaijun
V2EX    程序员

开源一个项目后,项目使用率很低,大家会选择继续维护还是放弃呢?

  •  
  •   mobaijun
    mobaijun 2023-03-14 06:50:56 +08:00 4337 次点击
    这是一个创建于 967 天前的主题,其中的信息可能已经有所发展或是发生改变。

    2022 年把前公司常用的工具类抽离出来,发布了一个 maven 包,后续一直在持续迭代,但是除了我自己的项目,查看其它项目发现很少有引用这个坐标的,大家对于这种情况都是怎么坚持下去的。 项目链接在这里: https://github.com/mobaijun/kjs-common

    48 条回复    2023-03-14 12:13:29 +08:00
    metalvest
        1
    metalvest  
       2023-03-14 07:20:10 +08:00 via Android   3
    前公司的东西你给开源了?不吃官司就该知足了。
    wildnode
        2
    wildnode  
       2023-03-14 07:21:14 +08:00   1
    额…虽然我不是写 Java 的,但是我点了半天没找到文档在哪,wiki 是空的,仓库里挂的链接点进去是你的个人博客,这搁谁谁也不敢用吧…
    mobaijun
        3
    mobaijun  
    OP
       2023-03-14 07:26:43 +08:00
    @metalvest 工具类,并不是核心业务
    mobaijun
        4
    mobaijun  
    OP
       2023-03-14 07:28:01 +08:00
    @wildnode wiki 不知道怎么写,主要重点放在 readme 文档和源码的注释上面,以及测试用例
    msg7086
        5
    msg7086  
       2023-03-14 07:39:48 +08:00
    祈祷一下公司不把你送进去蹲大牢吧。不是核心业务,只是工具类的话,说不定可以少蹲几年。
    msg7086
        6
    msg7086  
       2023-03-14 07:42:14 +08:00
    如果这个公司是你开的,或者你是有决定权的公司高管,那当我没说。
    毕竟「 Kjs-common Copyright 2022-2023 Framer Mo Bai 」你个人拥有所有代码的著作权?
    Juppiter
        7
    Juppiter  
       2023-03-14 07:44:31 +08:00
    没签协议的话应该还好吧 应该不会怎么样
    msg7086
        8
    msg7086  
       2023-03-14 07:45:42 +08:00
    再补一句。

    正常情况下,公司项目开源,是以公司项目依赖开源项目的方式进行的。
    底层的工具类剥离出来开源,然后公司项目就依赖这个开源项目,那么你这个项目至少也会有一个大客户,也就是公司本身。
    哪有单独拉一份出来开源,然后项目继续用内部类的。这样不是白开吗?以后打补丁还要两个项目一起打。什么大病操作。
    mobaijun
        9
    mobaijun  
    OP
       2023-03-14 07:51:07 +08:00
    @msg7086 这个项目是 Java 通用的工具类项目,意思就是任何 Java 项目都可以适用的
    tramm
        10
    tramm  
       2023-03-14 07:59:25 +08:00
    开源项目不用, 个人可能用的啊, 个人用, 不发布的话仓库不显示使用的.
    mobaijun
        11
    mobaijun  
    OP
       2023-03-14 08:02:45 +08:00
    @tramm 是的,个人使用的话是看不到的,顺便也想知道这个项目还需要提供那些内容可以方便用户了解
    msg7086
        12
    msg7086  
       2023-03-14 08:04:01 +08:00
    @mobaijun #9 你是想表达什么呢?我没有看懂。
    mobaijun
        13
    mobaijun  
    OP
       2023-03-14 08:09:10 +08:00
    @msg7086 就是 Java 有很多可复用的工具类,比如封装的 string 操作工具类,这些工具类和公司关系不大,任何一个大型项目都会有这样的工具类,并非是和公司项目绑定的
    L0L
        14
    L0L  
       2023-03-14 08:31:15 +08:00
    没找到具体的工具类的使用说明
    mobaijun
        15
    mobaijun  
    OP
       2023-03-14 08:32:16 +08:00
    @L0L 主要集中在源码和测试用例这块
    beginor
        16
    beginor  
       2023-03-14 08:35:33 +08:00
    花时间不多的话就继续维护吧, 可以给自己申请个 JetBrains 全家桶的许可
    Nazz
        17
    Nazz  
       2023-03-14 08:47:49 +08:00
    留着自己用也不错
    zjp
        18
    zjp  
       2023-03-14 08:56:51 +08:00 via Android
    这和通不通用没关系。在工作时间用公司电脑写的代码,版权属于公司,公司也是付了工资的
    通用只是难取证一点…
    lllllliiii
        19
    lllllliiii  
       2023-03-14 09:02:17 +08:00   1
    老哥,如果是通用工具类的话,最少也要写成泛型吧

    swulling
        20
    swulling  
       2023-03-14 09:06:42 +08:00 via iPhone
    通用工具库是伪需求,专注于某一个子域的工具库才是真需求。

    工具库的编写难度远大于普通库,如上面有人说排序不支持泛型算啥工具库。
    Vindroid
        21
    Vindroid  
       2023-03-14 09:07:40 +08:00
    一个只有 5star 的东西,谁敢用啊。我懒得去审计代码,去找个上千 star 的不是更轻松吗
    foundyou
        22
    foundyou  
       2023-03-14 09:09:17 +08:00
    和 hutool 比如何啊,有什么特别之处吗,工具类的依赖现在我都是用 hutool
    SmiteChow
        23
    SmiteChow  
       2023-03-14 09:15:25 +08:00
    不用维护,不会有人关心的。
    qwertty01
        24
    qwertty01  
       2023-03-14 09:36:30 +08:00
    吐槽一下,逛 Github 逛那么久,头一次见版本号用大写的 V
    Felldeadbird
        25
    Felldeadbird  
       2023-03-14 09:40:20 +08:00
    没人用就关掉呗。做开源要学会取舍。
    hhjswf
        26
    hhjswf  
       2023-03-14 09:48:43 +08:00
    人才
    suanran
        27
    suanran  
       2023-03-14 09:53:13 +08:00
    开源并不一定非要很多人去用啊,是否维护下去看自己心情,但是我认为是不是有人使用和是不是有人关心你这个项目,和你是否维护,没太大的关联!一些很多人用的项目,不也说停更就停更,你能说对方不负责任吗?
    mobaijun
        28
    mobaijun  
    OP
       2023-03-14 09:58:29 +08:00
    @qwertty01 有啥区别嘛
    mobaijun
        29
    mobaijun  
    OP
       2023-03-14 09:58:57 +08:00
    @Felldeadbird 是的
    mobaijun
        30
    mobaijun  
    OP
       2023-03-14 09:59:09 +08:00
    @suanran 明白了
    mobaijun
        31
    mobaijun  
    OP
       2023-03-14 10:00:54 +08:00
    @beginor 是的,目前想的就是慢慢维护,一点点迭代
    mobaijun
        32
    mobaijun  
    OP
       2023-03-14 10:02:09 +08:00
    @foundyou 当然是比不上 hutool 的,但是用来学习和小项目自用应该还可以
    beichenshao
        33
    beichenshao  
       2023-03-14 10:05:19 +08:00
    老哥,下次记得这么说,“是我自己平时写的工具库,在公司项目中用到了,现在开源出来”
    beichenshao
        34
    beichenshao  
       2023-03-14 10:06:59 +08:00
    “是我自己闲时写的工具库,在公司项目中用到了,现在开源出来”
    mobaijun
        35
    mobaijun  
    OP
       2023-03-14 10:10:53 +08:00
    @beichenshao 学到了
    WashFreshFresh
        36
    WashFreshFresh  
       2023-03-14 10:11:22 +08:00
    被发现,公司较真还是可以让你赔钱或坐牢的。和业务不业务,通用不通用没关系。只要是在公司写的或者公司发工资让你写的,都是公司的财产,离开公司你没权带走,更别说开源。
    mobaijun
        37
    mobaijun  
    OP
       2023-03-14 10:12:18 +08:00
    @fzdwx 算法包是最近新增的模块,后续在迭代吧,一开始没想那么多
    mumuy
        38
    mumuy  
       2023-03-14 10:15:29 +08:00
    让自己成为第一个用户啊,自己都不用,怎么还能指望别人用呢!自己在项目中应用下去
    mobaijun
        39
    mobaijun  
    OP
       2023-03-14 10:18:06 +08:00
    @mumuy 自己一直都有在用,但是一个人使用局限性还是很小,希望有更多人使用然后提建议出来吧,我会收集慢慢完善
    MoYi123
        40
    MoYi123  
       2023-03-14 10:39:34 +08:00
    看了点代码, 感觉完全不行, 泛型这些就不说了.

    algorithm: 冒泡排序之类的完全没用, 可以直接删了, QuickSort 也没处理最坏情况下 O(n^2), 字符串搜索留一个 BM 就够了,
    二分查找通常分成 lower_bound 和 upper_bound, 没找到完全相同的返回-1 不是很好用.

    bloomfilter: 你对 bloomfilter 的理解有问题, 建议重写.

    cache: 我没看错的话, 除了接口更少,更不标准, 这个一个普通的 map 有什么区别? 一般来说, cache 自己都会带一个 evict 机制吧.
    mobaijun
        41
    mobaijun  
    OP
       2023-03-14 10:41:42 +08:00
    @MoYi123 谢谢提议,后续会重新优化
    icyalala
        42
    icyalala  
       2023-03-14 10:53:14 +08:00
    感觉楼主没有这方面的意识,或者刻意忽略楼上这么多提醒:
    工作期间的劳动成果归公司所有,不是你个人的东西,这是写在合同里的
    lonewolfakela
        43
    lonewolfakela  
       2023-03-14 10:57:51 +08:00
    呃,抱歉我平时不怎么写 Java ,但是 Java 标准库里没有排序算法么……
    webdesigner
        44
    webdesigner  
       2023-03-14 11:05:44 +08:00 via iPhone
    我也发布了很多开源,有的几十个赞有的几个,但是我其实不会去关心要不要更新,一般提 issue 我才去解决。
    nekomiao
        45
    nekomiao  
       2023-03-14 11:13:22 +08:00
    起码 readme 里要写上里面有什么工具吧
    Leonard
        46
    Leonard  
       2023-03-14 11:14:42 +08:00 via iPhone
    @icyalala 理论上确实如此,但是很多小公司不管,加上如果代码和公司业务关系不大也难以取证,就不太关注这方面。比如有的人在上班时间做私活,难道会把收益给公司么
    icyalala
        47
    icyalala  
       2023-03-14 11:54:37 +08:00
    @Leonard 不说出来也就罢了。。楼主是自己说出来的啊(捂脸)
    lyy780808
        48
    lyy780808  
       2023-03-14 12:13:29 +08:00
    感觉这个项目只有练练手的价值,连最基本的单元测试写的都有问题。
    就拿这个 HeapSortTest.java 文件来说,都没有预期的结果去校验,怎么能知道排序的结果是正确的呢?你的项目里的单元测试只能测出代码是能跑通的不会抛异常,其他的都测不出来。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     931 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:42 PVG 05:42 LAX 13:42 JFK 16:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86