高手问答第 309 期 —— 从 kkFileView 项目出发,聊聊怎么做开源项目

小白兔爱吃大灰狼 发布于 11/14 17:36
阅读 3K+
收藏 4

开源项目是每一个开发者无法绕过的一个词,无论你是否主动接触开源项目,他就在你身边,和你的工作息息相关。本期嘉宾 KL 博主 6 年前一次偶然的机会接触开源项目后,仿佛打开了代码世界的大门,打通了任督二脉。这里有书本上,你在公司里没有的知识和能量。从开源获取,然后反馈开源,是博主一直践行的开源原则,截止目前,博主开源了数10+ 的项目,也参与了很多社区的项目,比如 apollo 、skywalking 、seata 等。其中 kkFileView 是博主开源最成功的一个项目,目前 kkFileView 获得过开源中国 GVP 项目,在 Gitee 的所有推荐项目里的 star 排名第 10 ,19281 个 star。kkFileView 一直保持着开源的初心,践行着佛性开源的路子做着开源项目。也因为如下:

  • 好的开源项目一定是架构优良可持续扩展优化的
  • 好的开源项目一定是有需求场景,解决实际问题的
  • 好的开源项目一定是有经济支撑可持续维护迭代的
  • 好的开源项目一定是说明齐全,容易上手的

kkFileView 可以一直健康发展迭代。

kkFileView 项目地址:https://gitee.com/kekingcn/file-online-preview

OSCHINA 本期高手问答(11月15日-11月21日)将以「从 kkFileView 项目聊聊怎么做开源项目」为切入点,聊一聊怎么做好开源项目,可讨论的内容包括带不限于以下:

  • 怎么参与开源项目
  • 怎么上手一个新的开源项目
  • 怎么开源一个自己的开源项目
  • kkFileView 项目相关话题
  • 怎么从开源项目里学以致用
  • 等等

有其他相关问题,也欢迎大家积极提问!

嘉宾简介

陈凯玲,网名:KL,在社区里一直以”KL博主“自称。先后就职于凯京集团和 TapTap,一直从事 Java 架构、中间件、SRE 等开发工作。是开源项目 kkFileView  作者,也是 Apollo 配置中心社区的 PMC。

为了鼓励踊跃提问,我们会在问答结束后从提问者中抽取 5 名幸运会员赠予定制开源魔方一个

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就“怎么做好开源项目”相关问题向 KL博主 提问,直接回帖提问既可。

加载中
0
小白兔爱吃大灰狼
小白兔爱吃大灰狼

高手问答第 309 期 —— 从 kkFileView 项目出发,聊聊怎么做开源项目

@F4nniu-FastAdmin开源框架  @君曰   @零起飞网络   @crf1111   @iman123

恭喜以上5位网友分别获得  定制开源魔方 一个

请于11月29日23点前登陆账号, 私信  @小白兔爱吃大灰狼   告知快递信息(格式:姓名+电话+地址),过期视为自动放弃哦~

3
拉裤兜兜子
拉裤兜兜子

@KL博主 请问开源项目怎么管理?日常维护开发bug修改等?怎么可持续发展,或者一开始就有商业化眼界(靠情怀毕竟不容易走远)?或者什么样的项目更适合生存?目前很多开源项目源码其实很好但是文档不佳,如何看待开发人员不重视文档的问题呢?

KL博主
KL博主
> 目前很多开源项目源码其实很好但是文档不佳,如何看待开发人员不重视文档的问题呢? 多多理解就好,存在即合理。我个人接触过很多开源项目,也知道文档的缺乏,或者不够清晰是国内开源项目普遍的问题,这个和国内环境有关系,开发者普遍的工作状态都是 996 ,或更甚。项目很好就不错了。或许我们可以从自己做起,顺手帮忙补充下文档,我就给 pika 补充过文档:pull/2003
KL博主
KL博主
> 或者什么样的项目更适合生存? 能产生生产价值的项目,有真实需求场景的项目,能真切解决实际问题的。就 KKFileView 来说,我们的用户来自各行各业,不完全统计,有金融、教育、银行、政务、计算机行业等项目直接或间接使用了我们的项目。这些使用我们项目的用户,如果没有我们的项目他们就需要自研,或者采用商业服务。不论是自研还是采用商业服务都比使用我们开源项目的成本要高 N 倍。这个就是项目的价值。
KL博主
KL博主
> 怎么可持续发展,或者一开始就有商业化眼界(靠情怀毕竟不容易走远)? 这个主要靠情怀,所谓情怀,就是你能从你的开源项目里获取到比金钱更多的东西,比如我上面的回答:想到我的代码在金融、教育、银行、政务、计算机行业有应用,对社会产生巨大的价值了,这些时刻都非常有成就感。然后才是获取经济效益,这个不一定需要商业化的支持,做的好的项目靠项目捐赠就足够让项目持续健康发展了。
KL博主
KL博主
> 日常维护开发bug修改等? 这个就真的是日常了,我们会在工作之余尽量处理 issue ,项目早期的时候会非常期待用户反馈 issue ,但是用户基数大了后,会发现 issue 根本处理不过来。我们目前是尽量处理 gitee 、github 中的 issue ,时效可能会比较慢。优先跟进知识星球里的问题。
KL博主
KL博主
> 请问开源项目怎么管理? 开源项目和公司里的项目管理类似,只是开源项目没有 kpi ,只有迭代计划。比如 KKFileView 会每年预期 4 个较大版本的迭代计划,对应了每个季度一个版本迭代。这个只是预期,会随着实际的推进有调整,但是一般都偏差不大。这个迭代计划会和社区里的核心开发达成一致,大家共同努力达成目标。然后会和社区核心开发有定期的同步会,讨论当前的状态,是否需要调整,优化等。
0
范海辛z

@KL博主 kkFileView 能像lucksheet项目一样,对 excel 文件在线编辑、存储、导出吗,实际场景用起来差不多需要 word、excel 在线看和编辑

KL博主
KL博主
因为 kkFileView 一直以来的目标是文件预览,所以过去很长一段时间以及未来长周期内还是会以扩展文件预览为首要目标迭代项目。你提到的这些功能点,也确实有很多社区的声音也提到过,可能后面会考虑,但是时间预计会比较久一点(我们当前已经排了几个版本的迭代计划了)
0
crf1111
crf1111

@KL博主 你好,请问运营一个开源项目,并倾向于运营好,长久地运营下去,对于个人需要注意哪些?同时如果是一个组织的话,同样需要注意些什么?谢谢!

0
KL博主
KL博主

引用来自“crf1111”的评论

@KL博主 你好,请问运营一个开源项目,并倾向于运营好,长久地运营下去,对于个人需要注意哪些?同时如果是一个组织的话,同样需要注意些什么?谢谢!

好问题,运营一个开源项目,并倾向于运营好,长久地运营下去,对于个人而言:

1、首先本身需要热爱这个行业,有满腔的热情,不然在面对开源过程中各种用户的各种问题肯定会让你崩溃(可以想象下 10086 的各种恶搞电话背后话务员的无赖)

2、个人技术能力强、技术视野广。一个项目能运营好,首先需要这个项目真的是个好项目,这个需要正确的判断。然后永远会有新的问题需要去解决。当然,这是一个过程,运营时间长了,这些自然而然就锻炼出来了

3、优秀的组织能力,不论是个人开源还是公司开源,开源项目肯定是众人拾柴火焰高,极少数的项目是一个人维护迭代的。所以需要有核心的开发者,至少是 3 个 左右,然后需要组织好核心的开发者,核心的代码贡献者

4、稍微懂一点营销是最好的,因为运营开源项目和其他项目无异,目的就是让更多的人使用或者关注你的项目,打造项目影响力,打造品牌效应。目前,在文件预览领域,只要做过类似业务,应该就会知道 kkFileView 了,这就是品牌效应。比如项目运营初期, kkFileView 会发一些博文,每个版本迭代投个新闻稿啥的、然后可以给技术自媒体投稿。等做到一个阶段后,自然会有各种媒体会写各种文章来引流了。

5、优秀的社交能力,因为你需要服务好你的种子用户,维护好你的核心用户。他们虽然不是你的上帝,但是是你项目成功的关键。所以我每次发文,都感谢下 kkFileView 的用户,我们是相互成就的关系。

对组织而言:

老实说,之前有计划建立一个 kkOpen 的组织,来盘活更多的 kk 系列的开源项目。但是由于时间精力关系,一直还没正式实施。所以对于你的这个问题,目前还没太多的感受。不过我的理解,和个人需要注意的东西大差不差。

crf1111
crf1111
回复 @KL博主 : 非常感谢给出的建议。
KL博主
KL博主
6、补充一点,对个人而言,还有一点注意,需要精力,和经济基础?kkFileView 来说,我们有自己的官网和演示站、还买了 CDN,这些都需要费用。kkFileView 现在是依靠维护付费的知识星球社区,来平衡经济问题。也有些开源项目有文档收费等机制,反正就是保证不要入不敷出就好。然后项目维护很费时间。需要平衡好你的工作和生活和开源,当然也可以像我一样把开源当做生活的一部分(大部分时候很难做到)。
0
o
osc_20013943

@KL博主 你好,请问个人参与过开源贡献的经历有没有必要写dam简历里面去?

KL博主
KL博主
个人认为有必要写到简历里面去,我之前也面试过很多的候选人,如果有开源的经历会是加分项。毕竟面试的时候短短的个把小时通过聊天看一个人的技术素养,不如直接看他参与过什么项目,代码能力如何来的直接。特别是社区里的热门项目,可能面试你的人也非常熟悉,容易通过这个项目把一类的技术话题聊起来。
0
e
ericyan1

@KL博主
请问开源kkFileView 项目, 文档存储用的是对象存储吗 ? 

KL博主
KL博主
目前没有用对象存储,就是放在磁盘里。因为 KKFileView 主打的是预览,所以预期文件不会长时间保留,大部分业务通过设置文件清理的 TTL ,在小规格磁盘上就能满足业务需求了。不过,对象存储可能会是后面大规模在线预览需求、分布式架构下一种存储解决方案。会朝这个方向迭代。
0
iman123
iman123

@KL博主 你好,kkFileView 可以支持编辑office文件么?现在很多预览的方案其实都是转成了pdf预览的,如果能支持在线(协同)编辑就更方便一些,这个可能也是大家最期望的特性,有这个计划么?

KL博主
KL博主
编辑的功能不能说一定不会做,但是估计得非常久了。考虑以下几个原因: 1、kkFileView 主打的是文件预览,我们的方向可能还是会朝支持更多的文件类型在线预览的方向走,尽量把预览效果优化好,编辑、存储、认证等功能不在我们考虑范围 2、编辑功能本身非常复杂,目前没有完全免费开源的可生产级使用的项目,就是因为太复杂,需要太多的投入,也许不久的将来 kk 没发展方向了,有足够的经济支持了,可能会考虑
0
clearsky1991
clearsky1991

@KL博主 你好,你们在 kkFileView 开源的项目发展过程中遇到过那些问题、挑战,是怎么解决的,开源软件你们是怎么商业化支持,一些高级功能特性放在了商业版本里么,这其中是怎么平衡开源与商业发展的?

0
F4nniu-FastAdmin开源框架
F4nniu-FastAdmin开源框架

@KL博主 ,你好,非常感谢你对开源社区作出的贡献。有一个问题想请教一下,开源软件是否应该在早期就考虑长期可持续发展,比如商业化、赞助、基金会等等事情?谢谢。

F4nniu-FastAdmin开源框架
F4nniu-FastAdmin开源框架
回复 @KL博主 : 非常感谢解答,在开源社区也是需要做到但行好事莫问前程,把事情做好,赚钱那些都是自然而然的事情。
KL博主
KL博主
除非你的项目在闭源状态下已经迭代的足够优秀完善,不然没必要再非常早期就关注商业化,赞助,基金会等。太功利的预期会让项目早期的方向走偏变形,导致不健康的发展。但是可持续发展是可以考虑的,说的是项目本身的架构,扩展性。只有项目架构可扩展,设计足够的抽象,才能吸引更多的社区的力量来共同完善,除了 KKFileView ,典型的例子还有 Apache Dubbo 、Apache SkyWalking
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部