V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mobaijun
V2EX  ›  程序员

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

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

    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
    这和通不通用没关系。在工作时间用公司电脑写的代码,版权属于公司,公司也是付了工资的
    通用只是难取证一点…
    fzdwx
        19
    fzdwx  
       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   ·   我们的愿景   ·   实用小工具   ·   1292 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:32 · PVG 07:32 · LAX 16:32 · JFK 19:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.