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