V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangchaojie
V2EX  ›  职场话题

从 0 做开源(上)—— 开源创意从何而来?

  •  4
     
  •   zhangchaojie · 2020-01-13 09:26:58 +08:00 · 3693 次点击
    这是一个创建于 1805 天前的主题,其中的信息可能已经有所发展或是发生改变。

    同款视频讲解 和 个人 Github 欢迎关注~~~

    众所周知, 开源无论是对跳槽找工作还是队升职加薪, 或者日常装 x 都起着举足轻重的作用。 但事实是, 我周围很多同事, 明明有了开源的实力, 却没有一个开源项目。但是对于开源之路很多人都有如下苦恼:

    • 怎么找到一个值得做的 idea ?
    • 怎么进行开源协作?
    • 如何让自己的 star 增长起来,获得更多关注?

    我经过自己的思考和总结,得到如下内容,并通过三篇内容详细阐述,希望能帮到大家:

    第一篇:idea 从何而来?

    首先要澄清一个问题,能做开源的并不一定是最优秀的人或者最牛的人,而是那些善于思考,并努力付诸实践的人,所以不要因为技术不够牛,没有达到顶尖水平就放弃做开源,很多时候都是先有一个好的想法, 然后去学习要做成这个想法的所需技能, 在我看来, 入行一年就可以拥有做一个好的开源的能力。

    创意来源 1:从变化中寻求机会

    在现在编程界尤其是前端,有一个很大的特点就是新东西出现的太快。变化快就会产生两方面的影响,第一, 我们很自然的感受就是要不断的学习,一天不学习好像就要被世界淘汰了,很多人很抱怨学不动了,(话锋一转),但是,你有没有想过,正是有了变化,才有了机会,才能够弯道超车

    具体到开源灵感来源(灵魂叩问):

    我们在做 iOS 开发时需要日历组件📅,在做 Android 时需要日历组件📅,难道当 flutter 出来后,不需要一个好用的日历组件📆吗?

    我们知道 PHP 有 Web 框架 laravel,Python 有 web 框架 Django,那当 Go 出来的时候呢? 那当 Node 出来的时候呢? 或者还没火的 Deno 语言呢,他们难道不需要一个 web 框架吗?他们不需要相应的配套生态吗?

    react 生态有某个组件,是不是能够迁移到 Vue 呢?

    简而言之,当新的语言 /框架 /库出现时,如果你认为是趋势(有些赌博风险,他可能不火了),你可以借鉴其它语言 /库 /框架,集众家所长,针对此语言 /库 /框架进行开发,相信是个不错的选择。

    创意来源 2:吐槽是你开源的契机

    你有没有在日常工作中吐槽 xx 组件 /库真是垃圾,真难用,要是我写,肯定比他好一万倍。 对,就是这个时刻,如果你发现自己在日常工作中使用的插件,组件,库,工具不够好用,有优化的空间时,记得拿笔记下,然后开始行动起来,相信你一定可以写出比他好一万倍的东西,祝福你㊗️。

    简而言之,我们要吐槽,但不仅仅要吐槽, 更要思考改进空间是什么。

    创意来源 3:再一再二不再三原则

    当你在写某段逻辑时,写了一遍,很正常; 当第二遍发现类似逻辑,拷贝一波,改改几个参数名就可以了,可以接受; 但是当你又发现了一处类似逻辑,你就要考虑是不是可以抽象出一个方法 /类 /库了。 当你抽象出来,放到你的项目后,如果挺不做,你就要考虑,是不是其他项目或者别人也需要类似一段代码,如果你的回答是肯定的,恭喜你,你可以开源一波了!

    简而言之,在日常的开发过程,我们要养成 don't repeat yourself 的思维,从更高纬度抽象业务,久而久之你就能感觉自己的升华了。

    创意来源 4:从无到有、从有到优、从收费到免费

    从无到有: 讲道理,说实话,从无到有是比较难的,你很难在 JQuery 时代去想做一个 MVVM 的框架,封装 DOM 操作,使用数据控制渲染;你很难在 Node 诞生前想象 JS 还能写后端;你也很难想想人工智能时代,前端是怎么的状态,但如果你想到了一个 idea,他能做到之前技术做不到的事,又便捷又好用,恭喜你,你是新时代的创造者

    从有到优: 这个相对简单一些,也对应着创意来源 2,当你发现你有一个比现有解决方案更优(更快?更小?更强?更简单?)的解决方案时,你就大胆的干吧(dayjs 的故事)

    从收费到免费: 看看你的电脑,有什么收费又好用的软件? 再看看日常开发中,有什么公司花钱买的? 能不能在不侵犯别人的权益下做一个类似的免费的,开源的软件,例如一个开源的小说网站,一个开源的 flutter 电商网站,一个开源的教育管理系统?

    创意来源 5:新需求

    由于业务的推动,新需求就会产生新问题,就需要有新的解决方案,就像雷老板说的, 如果你是一头^(* ̄(oo) ̄)^, 但是站在技术风口编程的,相信都会被吹飞。 下面简单总结了一下前端的几个新需求:

    • 微前端: 由于前端日益变得复杂和庞大,如果对前端系统进行有效的拆分和组合,值得思考;
    • serverless: 大前端趋势明显,但 serverless 目前仍没有较好的落地实践,你是不是可以尝试一波,并分享;
    • less code: 市场竞争从由于 To C 转到 To B 导致这两年,管理系统类开源项目越来越收欢迎,但由于后台系统的标准化和统一化,所以推出了很多通过可视化拖拽实现界面的,但让没有一方独大,你可以尝试;
    • 人工智能:你不主动革命,就会有别人革你的命,如何用人工智能帮助前端实现升华,是一个思考的方向;
    • WebAssembly: 讲道理,不是很懂,但应该是趋势。

    创意来源 6:资料的整理

    这个严格来说不能算编程,但也是开源的一个好方向,即通过收集一个专题资料,实现开源项目: 例如 awesome-vue / awesome-mac / 电子书 / 挣钱 等等。

    创意来源 7:知识分享

    你是不是也关注过某位大牛 xxx 原理分析,xxx 源码逐行分析的仓库,你是不是也将开过别人将 GitHub Issue 作为写技术文章的,没做,将 GitHub 作为技术分析分享和积累的地方,也是一个不错的开源选择。

    讲了这么多思路,你是不是也在脑海中闪现了一些想法,不要犹豫,赶紧行动起来,你和开源只差一个想法!

    听说看完文章点赞收藏的人都变帅 /漂亮了(✪ω✪) (^o^*) (ΦωΦ)

    视频地址: https://www.bilibili.com/video/av83163648/

    Github: https://github.com/dream2023

    18 条回复    2020-01-15 22:10:50 +08:00
    B1ankCat
        1
    B1ankCat  
       2020-01-13 10:07:18 +08:00
    为什么都不回复
    NasirQ
        2
    NasirQ  
       2020-01-13 10:32:55 +08:00   ❤️ 1
    非常赞,顶一波
    zhangchaojie
        3
    zhangchaojie  
    OP
       2020-01-13 11:42:58 +08:00 via iPhone
    zhangchaojie
        4
    zhangchaojie  
    OP
       2020-01-13 11:43:10 +08:00 via iPhone
    @NasirQ 多谢
    wzzzx
        5
    wzzzx  
       2020-01-13 13:18:54 +08:00 via Android
    我得好好思考一下了,谢谢楼主
    zhangchaojie
        6
    zhangchaojie  
    OP
       2020-01-13 14:06:18 +08:00 via iPhone
    @wzzzx 嗯那
    nmecury
        7
    nmecury  
       2020-01-13 14:28:21 +08:00
    说的很好,学习了。可惜我一个做算法的没什么有影响力的工作,开源的项目拿不到啥 star……
    noahsss
        8
    noahsss  
       2020-01-13 14:40:23 +08:00
    投个币支持
    zhangchaojie
        9
    zhangchaojie  
    OP
       2020-01-13 14:59:09 +08:00 via iPhone
    @noahsss ^ _ ^多谢多谢
    zhangchaojie
        10
    zhangchaojie  
    OP
       2020-01-13 14:59:34 +08:00 via iPhone
    @nmecury 人工智能不是能做很多吗
    UIXX
        11
    UIXX  
       2020-01-13 17:02:18 +08:00   ❤️ 1
    题目给我感觉很奇怪。开源创意...就好像为了开源而刻意去写一些博人眼球的东西。

    实际上,大部分开源项目(当然,除了应付简历的那些)都是先有项目,再有创作者对其开源的决定,而不是本末倒置。
    另一方面,开源只是创作者对于其作品处理方式的一种选择,而不是门槛,我想,并不存在“有开源实力却没有开源项目”这种说法。

    LZ 写的东西更像是一个项目创意的汇总,不必要挂上“开源”的名号。
    zhangchaojie
        12
    zhangchaojie  
    OP
       2020-01-13 18:51:41 +08:00 via iPhone
    @UIXX 不是为了开源而开源,是给那些有能力做开源,但是没有开源思路的人一些思路,抛砖引玉
    zhangchaojie
        13
    zhangchaojie  
    OP
       2020-01-13 18:52:56 +08:00 via iPhone
    @UIXX 可能标题起的不好,有兴趣的话,读一下帖子,不要看见标题就评价
    iamkun
        14
    iamkun  
       2020-01-15 17:34:32 +08:00
    看到提到 dayjs 路过,我一开始写 dayjs 的时候只是想解决我们项目里遇到的问题,后面开源也是顺便之举。可能这样的心态会更合适一些,而不是为了开源而写点啥。
    zhangchaojie
        15
    zhangchaojie  
    OP
       2020-01-15 17:44:13 +08:00 via iPhone
    @iamkun 大佬🧍‍♂️
    zhangchaojie
        16
    zhangchaojie  
    OP
       2020-01-15 18:02:34 +08:00
    @iamkun 不过, 这里也没有说刻意的为了开源而开源, 而是在日常工作中希望大家能够有将业务逻辑抽象的思想, 希望大佬见谅, 引用的您的例子
    iamkun
        17
    iamkun  
       2020-01-15 19:12:02 +08:00 via iPhone
    碰巧看见提到,就冒个泡,方法没有对错,做自己喜欢的事就好啦
    KeyboardManAnAn
        18
    KeyboardManAnAn  
       2020-01-15 22:10:50 +08:00 via iPhone
    不过近几年 star 的价值在逐渐贬值,markdown 程序员越来越多了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2914 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:58 · PVG 20:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.