眾所周知, 開(kāi)源無(wú)論是對(duì)跳槽找工作還是隊(duì)升職加薪, 或者日常裝x都起著舉足輕重的作用已脓。 但事實(shí)是, 我周圍很多同事, 明明有了開(kāi)源的實(shí)力, 卻沒(méi)有一個(gè)開(kāi)源項(xiàng)目珊楼。但是對(duì)于開(kāi)源之路很多人都有如下苦惱:
- 怎么找到一個(gè)值得做的idea?
- 怎么進(jìn)行開(kāi)源協(xié)作度液?
- 如何讓自己的star增長(zhǎng)起來(lái)厕宗,獲得更多關(guān)注?
我經(jīng)過(guò)自己的思考和總結(jié)堕担,得到如下內(nèi)容已慢,并通過(guò)三篇內(nèi)容詳細(xì)闡述,希望能幫到大家:
第一篇:idea從何而來(lái)?
首先要澄清一個(gè)問(wèn)題霹购,能做開(kāi)源的并不一定是最優(yōu)秀的人或者最牛的人佑惠,而是那些善于思考,并努力付諸實(shí)踐的人,所以不要因?yàn)榧夹g(shù)不夠牛膜楷,沒(méi)有達(dá)到頂尖水平就放棄做開(kāi)源乍丈,很多時(shí)候都是先有一個(gè)好的想法, 然后去學(xué)習(xí)要做成這個(gè)想法的所需技能, 在我看來(lái), 入行一年就可以擁有做一個(gè)好的開(kāi)源的能力。
創(chuàng)意來(lái)源1:從變化中尋求機(jī)會(huì)
在現(xiàn)在編程界尤其是前端把将,有一個(gè)很大的特點(diǎn)就是新東西出現(xiàn)的太快轻专。變化快就會(huì)產(chǎn)生兩方面的影響,第一, 我們很自然的感受就是要不斷的學(xué)習(xí)察蹲,一天不學(xué)習(xí)好像就要被世界淘汰了请垛,很多人很抱怨學(xué)不動(dòng)了,(話鋒一轉(zhuǎn))洽议,但是宗收,你有沒(méi)有想過(guò),正是有了變化亚兄,才有了機(jī)會(huì)混稽,才能夠彎道超車。
具體到開(kāi)源靈感來(lái)源(靈魂叩問(wèn)):
我們?cè)谧鰅OS開(kāi)發(fā)時(shí)需要日歷組件??审胚,在做Android時(shí)需要日歷組件??匈勋,難道當(dāng)flutter出來(lái)后,不需要一個(gè)好用的日歷組件??嗎?
我們知道PHP有Web框架laravel膳叨,Python有web框架 Django洽洁,那當(dāng)Go出來(lái)的時(shí)候呢? 那當(dāng)Node出來(lái)的時(shí)候呢? 或者還沒(méi)火的Deno語(yǔ)言呢,他們難道不需要一個(gè)web框架嗎?他們不需要相應(yīng)的配套生態(tài)嗎?
react生態(tài)有某個(gè)組件菲嘴,是不是能夠遷移到Vue呢?
簡(jiǎn)而言之饿自,當(dāng)新的語(yǔ)言/框架/庫(kù)出現(xiàn)時(shí),如果你認(rèn)為是趨勢(shì)(有些賭博風(fēng)險(xiǎn)龄坪,他可能不火了)昭雌,你可以借鑒其它語(yǔ)言/庫(kù)/框架,集眾家所長(zhǎng)健田,針對(duì)此語(yǔ)言/庫(kù)/框架進(jìn)行開(kāi)發(fā)烛卧,相信是個(gè)不錯(cuò)的選擇。
創(chuàng)意來(lái)源2:吐槽是你開(kāi)源的契機(jī)
你有沒(méi)有在日常工作中吐槽xx組件/庫(kù)真是垃圾抄课,真難用唱星,要是我寫雳旅,肯定比他好一萬(wàn)倍跟磨。 對(duì),就是這個(gè)時(shí)刻攒盈,如果你發(fā)現(xiàn)自己在日常工作中使用的插件抵拘,組件,庫(kù)型豁,工具不夠好用僵蛛,有優(yōu)化的空間時(shí)尚蝌,記得拿筆記下,然后開(kāi)始行動(dòng)起來(lái)充尉,相信你一定可以寫出比他好一萬(wàn)倍的東西飘言,祝福你祝?。
簡(jiǎn)而言之驼侠,我們要吐槽姿鸿,但不僅僅要吐槽, 更要思考改進(jìn)空間是什么倒源。
創(chuàng)意來(lái)源3:再一再二不再三原則
當(dāng)你在寫某段邏輯時(shí)苛预,寫了一遍,很正常; 當(dāng)?shù)诙榘l(fā)現(xiàn)類似邏輯笋熬,拷貝一波热某,改改幾個(gè)參數(shù)名就可以了,可以接受; 但是當(dāng)你又發(fā)現(xiàn)了一處類似邏輯胳螟,你就要考慮是不是可以抽象出一個(gè)方法/類/庫(kù)了昔馋。 當(dāng)你抽象出來(lái),放到你的項(xiàng)目后糖耸,如果挺不做绒极,你就要考慮,是不是其他項(xiàng)目或者別人也需要類似一段代碼蔬捷,如果你的回答是肯定的垄提,恭喜你,你可以開(kāi)源一波了!
簡(jiǎn)而言之周拐,在日常的開(kāi)發(fā)過(guò)程铡俐,我們要養(yǎng)成don't repeat yourself的思維,從更高緯度抽象業(yè)務(wù)妥粟,久而久之你就能感覺(jué)自己的升華了审丘。
創(chuàng)意來(lái)源4:從無(wú)到有、從有到優(yōu)勾给、從收費(fèi)到免費(fèi)
從無(wú)到有: 講道理滩报,說(shuō)實(shí)話,從無(wú)到有是比較難的播急,你很難在JQuery時(shí)代去想做一個(gè)MVVM的框架脓钾,封裝DOM操作,使用數(shù)據(jù)控制渲染桩警;你很難在Node誕生前想象JS還能寫后端可训;你也很難想想人工智能時(shí)代,前端是怎么的狀態(tài),但如果你想到了一個(gè)idea握截,他能做到之前技術(shù)做不到的事飞崖,又便捷又好用,恭喜你谨胞,你是新時(shí)代的創(chuàng)造者固歪。
從有到優(yōu): 這個(gè)相對(duì)簡(jiǎn)單一些,也對(duì)應(yīng)著創(chuàng)意來(lái)源2胯努,當(dāng)你發(fā)現(xiàn)你有一個(gè)比現(xiàn)有解決方案更優(yōu)(更快?更小?更強(qiáng)?更簡(jiǎn)單?)的解決方案時(shí)昼牛,你就大膽的干吧(dayjs的故事)
從收費(fèi)到免費(fèi): 看看你的電腦,有什么收費(fèi)又好用的軟件? 再看看日常開(kāi)發(fā)中康聂,有什么公司花錢買的? 能不能在不侵犯別人的權(quán)益下做一個(gè)類似的免費(fèi)的,開(kāi)源的軟件贰健,例如一個(gè)開(kāi)源的小說(shuō)網(wǎng)站,一個(gè)開(kāi)源的flutter電商網(wǎng)站恬汁,一個(gè)開(kāi)源的教育管理系統(tǒng)?
創(chuàng)意來(lái)源5:新需求
由于業(yè)務(wù)的推動(dòng)伶椿,新需求就會(huì)產(chǎn)生新問(wèn)題,就需要有新的解決方案氓侧,就像雷老板說(shuō)的脊另, 如果你是一頭^(* ̄(oo) ̄)^
, 但是站在技術(shù)風(fēng)口編程的,相信都會(huì)被吹飛约巷。 下面簡(jiǎn)單總結(jié)了一下前端的幾個(gè)新需求:
- 微前端: 由于前端日益變得復(fù)雜和龐大偎痛,如果對(duì)前端系統(tǒng)進(jìn)行有效的拆分和組合,值得思考独郎;
- serverless: 大前端趨勢(shì)明顯踩麦,但 serverless 目前仍沒(méi)有較好的落地實(shí)踐,你是不是可以嘗試一波氓癌,并分享谓谦;
- less code: 市場(chǎng)競(jìng)爭(zhēng)從由于To C轉(zhuǎn)到To B導(dǎo)致這兩年,管理系統(tǒng)類開(kāi)源項(xiàng)目越來(lái)越收歡迎贪婉,但由于后臺(tái)系統(tǒng)的標(biāo)準(zhǔn)化和統(tǒng)一化反粥,所以推出了很多通過(guò)可視化拖拽實(shí)現(xiàn)界面的,但讓沒(méi)有一方獨(dú)大疲迂,你可以嘗試才顿;
- 人工智能:你不主動(dòng)革命,就會(huì)有別人革你的命尤蒿,如何用人工智能幫助前端實(shí)現(xiàn)升華郑气,是一個(gè)思考的方向;
- WebAssembly: 講道理优质,不是很懂竣贪,但應(yīng)該是趨勢(shì)军洼。
創(chuàng)意來(lái)源6:資料的整理
這個(gè)嚴(yán)格來(lái)說(shuō)不能算編程巩螃,但也是開(kāi)源的一個(gè)好方向演怎,即通過(guò)收集一個(gè)專題資料,實(shí)現(xiàn)開(kāi)源項(xiàng)目: 例如 awesome-vue / awesome-mac / 電子書 / 掙錢 等等避乏。
創(chuàng)意來(lái)源7:知識(shí)分享
你是不是也關(guān)注過(guò)某位大牛 xxx原理分析爷耀,xxx源碼逐行分析的倉(cāng)庫(kù),你是不是也將開(kāi)過(guò)別人將GitHub Issue作為寫技術(shù)文章的拍皮,沒(méi)做歹叮,將GitHub作為技術(shù)分析分享和積累的地方,也是一個(gè)不錯(cuò)的開(kāi)源選擇铆帽。
講了這么多思路咆耿,你是不是也在腦海中閃現(xiàn)了一些想法,不要猶豫爹橱,趕緊行動(dòng)起來(lái)萨螺,你和開(kāi)源只差一個(gè)想法!
聽(tīng)說(shuō)看完文章點(diǎn)贊的人都變帥/漂亮了(?ω?) (o) (ΦωΦ*)
Github: https://github.com/dream2023