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

2020-01-13 09:26:58 +08:00
 zhangchaojie

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

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

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

第一篇: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) ̄)^, 但是站在技术风口编程的,相信都会被吹飞。 下面简单总结了一下前端的几个新需求:

创意来源 6:资料的整理

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

创意来源 7:知识分享

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

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

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

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

Github: https://github.com/dream2023

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

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

LZ 写的东西更像是一个项目创意的汇总,不必要挂上“开源”的名号。
zhangchaojie
2020-01-13 18:51:41 +08:00
@UIXX 不是为了开源而开源,是给那些有能力做开源,但是没有开源思路的人一些思路,抛砖引玉
zhangchaojie
2020-01-13 18:52:56 +08:00
@UIXX 可能标题起的不好,有兴趣的话,读一下帖子,不要看见标题就评价
iamkun
2020-01-15 17:34:32 +08:00
看到提到 dayjs 路过,我一开始写 dayjs 的时候只是想解决我们项目里遇到的问题,后面开源也是顺便之举。可能这样的心态会更合适一些,而不是为了开源而写点啥。
zhangchaojie
2020-01-15 17:44:13 +08:00
@iamkun 大佬🧍‍♂️
zhangchaojie
2020-01-15 18:02:34 +08:00
@iamkun 不过, 这里也没有说刻意的为了开源而开源, 而是在日常工作中希望大家能够有将业务逻辑抽象的思想, 希望大佬见谅, 引用的您的例子
iamkun
2020-01-15 19:12:02 +08:00
碰巧看见提到,就冒个泡,方法没有对错,做自己喜欢的事就好啦
KeyboardManAnAn
2020-01-15 22:10:50 +08:00
不过近几年 star 的价值在逐渐贬值,markdown 程序员越来越多了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637380

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX