關(guān)于寫開(kāi)源庫(kù)的一些思考
大家好啊
端午假幾乎沒(méi)出門,宅家里寫了一個(gè)開(kāi)源庫(kù)。一個(gè)基于Flask的openapi文檔生成庫(kù)。不過(guò)這篇文章先不介紹這個(gè)庫(kù),明天在單獨(dú)寫。
今天說(shuō)點(diǎn)關(guān)于實(shí)現(xiàn)開(kāi)源庫(kù)的一碎碎念。
當(dāng)我們嘗試去寫框架或者說(shuō)公共庫(kù)的時(shí)候,其難度肯定要比寫業(yè)務(wù)代碼難的,更考驗(yàn)?zāi)愕某橄竽芰Α?/p>
上次寫開(kāi)源庫(kù)還是一個(gè)基于知乎的api,幾年過(guò)去了,現(xiàn)在還時(shí)不時(shí)有人問(wèn)我這個(gè)項(xiàng)目的一些問(wèn)題。但是我并不想花精力在上面去做維護(hù)。畢竟這個(gè)項(xiàng)目關(guān)注的人越多風(fēng)險(xiǎn)越大,所以更新了前幾版之后就沒(méi)維護(hù)過(guò)了,在GitHub也就千來(lái)個(gè)star。
這個(gè)假期是我正兒八經(jīng)寫的第二個(gè)開(kāi)源庫(kù),收獲很多
寫開(kāi)源代碼你要轉(zhuǎn)變思維方式,這時(shí)候你不再純粹是一個(gè)api的調(diào)用者,而是一個(gè)創(chuàng)造者。作為創(chuàng)造者,你要考慮的問(wèn)題就是如何讓調(diào)用者可以很舒服的是使用你的接口。什么事情應(yīng)該留給開(kāi)發(fā)者,什么事情是你要幫開(kāi)發(fā)者做好的,這是你要思考的。這其實(shí)跟我們做產(chǎn)品類似,本質(zhì)上你寫的框架或者庫(kù)也是一個(gè)產(chǎn)品,只不過(guò)面向的用戶是開(kāi)發(fā)者群體。而站在用戶角度是去思考問(wèn)題能幫助寫出更好用的產(chǎn)品出來(lái)。
對(duì)于沒(méi)有這方面的經(jīng)驗(yàn)的同學(xué)來(lái)說(shuō),怎么快速上手呢。個(gè)人認(rèn)為最簡(jiǎn)單的一種方式,就是把你項(xiàng)目中一些業(yè)務(wù)無(wú)關(guān)的代碼抽出來(lái),是不是其它項(xiàng)目也會(huì)用得到,做成一個(gè)獨(dú)立庫(kù)像API一樣去調(diào)用看看是否方便。
其實(shí)很多開(kāi)源項(xiàng)目、包括大型的框架、組件或者是一些工具庫(kù),早期大部門都是從業(yè)務(wù)代碼中提取獨(dú)立出來(lái)的。你去翻翻那些知名框架,大抵都是如此。
當(dāng)然,多去閱讀優(yōu)秀的開(kāi)源代碼,看看別人是怎么寫的,真的可以給你很多啟發(fā),正所謂站在巨人的肩膀人,先模仿再超越。?不過(guò)行動(dòng)永遠(yuǎn)比語(yǔ)言更有說(shuō)服力?,F(xiàn)在就去做吧!
