文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

深度思考: 如何做好一个开源项目?

2024-12-02 10:29

关注

接下来我会按照如下目录大纲和大家分享我自己的感悟:

我对国内开源项目的思考

首先在阐述任何观点前, 大家都应该以一种批判的角度来看待和消化, 因为任何人的思考和观点都可能是局限的.

项目开源是一件非常崇高且有意思的事情. 这是我曾经一直持有的看法. 国外的开源大佬TJ等人, 国内的汤姆大叔等, 一直是我的技术偶像.

他们和我的唯一共同点就是不及格的发量, 这让我找到了些许安慰.

阅读这些大佬们优秀的开源项目让我成长很多, 也学到了真正有价值的开源项目该如何去做.

但是最近2年, 我在看github的trend的时候, 不免有点尴尬, 同时夹杂着些许的力不从心. 当我看到大量国内割韭菜式的开源项目之后, 不禁在草稿纸上写了一句:

好了, 不吐槽了, 接下来总结一下我对优秀开源项目的一些感悟.

从项目自生结构的角度

项目目录结构清晰

文件/文件夹命名规范, 可读性强

清晰完整的readme介绍

规范而详细的package.json文件(或者项目描述文件)

从项目实用性角度

当然还有一些方向可以去思考, 比如底层技术方案(操作系统, 基础语言等), 离我太远, 暂时搁置.

国内开源项目/社区的不良风向, 是如何加速招聘的“内卷”?

内卷: 本意是一类文化模式达到了某种最终的形态以后,既没有办法稳定下来,也没有办法转变为新的形态,而只能不断地在内部变得更加复杂的现象。

最近两年大家有没有发现, 各大技术社区内充斥着大量求职面试相关的文章, 层次不齐, 千篇多少有点一“绿”. 想认真看看技术文章, 还得花时间往下多翻几次, 因为顶部推荐基本被面试文, 进大厂文霸占了.

虽然求职找工作需要准备, 但是我个人觉得没必要过渡准备, 否则必然会遭遇我们最熟悉的名场面: "卷王面试官" 和“卷心菜求职者”的相爱相杀.

这里我来给大家伙分析一下为什么过度释放面经导致越来越卷的原因.

面试官想: 出什么面试题呢, 社区上这么多面经, 想必大家一定有所准备, 那就来点刚的(有难度的).

求职者想: 最近看各种面经, 不管是大厂小厂, 面试题都这么难, 我要多刷几道题. 

好的, 还没完, 接下来就是 github上的1000+笔/面试题, 刷去吧, 刷完了你没进大厂, 不是题的原因, 是你的原因.

好家伙, 被这样的环境培养出来的程序员, 未来对技术能有多大的想象空间呢? 这里不经让我想到我另一位偶像的经典名言:

想象力比知识更重要. —— Albert Einstein

同时想到一位想象力触及火星的国外老铁:

所以说这一节我主要想表达三个观点:

这里当然不是不鼓励这些, 意在不要过渡重视刷题, 其实偶尔做做有价值的开源项目, 也会为面试加分. 毕竟在近3年的求职面试中, 我是从来没有为面试做过任何准备的.

做开源项目能带给我们什么?

在上面几小节的观点中, 各位提炼有价值的观点即可. 我们接下来进入今天的正题.

做开源项目能带给我什么呢? 这也许是大部分想做开源项目的人的一个疑问. 大部分人也会走入一定的误区, 虽然这个问题很简单, 但是简单的问题往往更复杂.

首先一部分人会觉得, 开源项目可以给自己积累项目经验, 简历上加分, 巩固自己的知识体系, 积累人气等等. 我之前也是怎么认为的. 但是这种开源思维只适合初级开源, 一般的结果是: 虽然开源项目让自己加深了对技术的熟练度, 简历上也可以写写了, 但是随着时间流逝, 最终会被遗忘.

所以现在的我, 在思考这个问题前, 一定会先问自己几个问题:

在解答了以上4个问题之后, 我们做开源项目会更有目标和框架感, 也更能明确自己能得到什么:

所以我们不要过度的追求结果, 我们在做有价值的开源项目的过程中, 自然会让自己变得更有价值. 从做H5-Dooring这个项目之前, 我就已经充分回答了自己提的上述4个问题, 所以项目最终的结果, 大家也有目共睹. 在我做完H5-Dooring第一版之后, 为了解决第四个问题, 我就筛选了几个志同道合的朋友, 和我一起迭代, 让项目按照提前规划持续推进下去.

从零到一, 如何打造一个高执行力,快速迭代的开源项目?

就以我自己实际经历作为佐证, 来谈谈开源项目的打磨过程.

不要问我这个流程为什么像个“心”形, 我只是想表达开源作者们10个有7个都是为“爱”发电. (所以默默为这些优秀的人👏)

1.目标规划期

首先在明确了为什么要做这个项目之后, 我们需要对自己的开源项目有个清晰完整的规划路线. 比如1.0版本需要做哪些功能, 哪些功能是高优先级一定要完成的,哪些是不紧急的, 可以后期在完成. 所以我们要充分利用好四象限法则.

其次就是明确的功能拆分, 需求池管理, 学会过滤需求, 而不是一股脑的全盘接收, 因为有时候用户提的需求他自己也不知道, 所以需要评审.

有了以上目标规划和管理法则, 我们就能有一个清晰而高效的目标规划了.

2. 项目基建期

项目基建期主要是项目的雏形, 这个阶段一定是项目负责人搭建, 需要对项目的整体技术选型, 架构, 解决方案设计等有完整的思路和落地方案. 这样才能为以后团队开发, 迭代和项目优化打下基础, 否则最终会乱成一片. H5-Dooring在项目初期也是按照这个思路走的, 我先把项目完整流程设计出来, 并在github上开源, 后面才能找到一批直观且感兴趣的朋友来维护和优化.

3.团队组建期

团队组建也是非常关键的环节. 首先创始人需要具备一下特质:

只有具备以上3点以上, 才能打造高效且有凝聚力的团队.

同时, 我们只有选择价值观相同, 对项目感兴趣, 且有一定执行力的协作者, 开源项目才能稳步发展下去. 所以团队人数多不一定做的就快, 团队人数少, 也不一定做的就慢. 所以之前有很多朋友想加入dooring, 我都会请自和他们聊一下, 做一些基础性的考核和筛选. 目前我们DooringX的团队虽然人不多, 但是个有专长, 相信未来一定会把项目做的非常出色.

4.团队协作/磨合期

团队协作/磨合也就是我们在任务分工时, 相互之间做的一些交流, 沟通等.

我们需要让每个共建者明确我们共同的目标, 以及各自的分工. 这个阶段往往也是考核团队的最佳时期, 我们可以发现团队不同的成员擅长什么,可以胜任哪些工作, 哪些任务可以让他通过项目来获得提高和成长.

所以定期交流必不可少. 在dooring的磨合期确实也发现了一些不合适的朋友, 有些可能时间紧, 有些是价值观问题, 这些都需要沟通解决, 解决不了就要果断处理. 项目发起人不用过渡考虑个人感情问题, 彼此创造相对舒适的环境才是最重要的. 毕竟各自都有需要奔赴的彼岸.(有点谈恋爱分手论的感觉, 就此打住🐷)

还有一点就是善用人才, 虚心听取优秀的建议. 每个人都是团队的贡献者, 各司其职, 我们需要沿着我们目标的主线不断前进, 所以需要给合适的人分配合适的任务, 让优秀的人带动大家一起成长. 创始人是让项目成功的助推器,所以需要接纳优秀的建议和发展方向, 从而审视自身的局限. 毕竟, 每个人都有闪闪发光的地方.

5.版本迭代和复盘期

每个阶段我们的项目都需要有一次复盘, 反思. 所以做完是第一步, 如何让项目做的更好, 才是项目长期发展的关键. 团队中每个人都可以提建议, 提出自己的看法和发展方向, 不断的头脑风暴, 把项目做到极致. 当然其中需要把控, 取舍. 就好像PDCA 循环.

分享几个有价值的开源方向和开源项目

选择开源的方向其实我在上面的开源项目的实用性中已经阐述, 不过前提还是需要根据自身偏好和擅长点来选择, 笔者这里列出几个可以做的开源方向:

大家也可以参与如下几个现成的开源项目, 毕竟创始人都非常nice:

本文转载自微信公众号「趣谈前端」

 

来源:趣谈前端内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯