关于写开源库的一些思考
大家好啊
端午假几乎没出门,宅家里写了一个开源库。一个基于Flask的openapi文档生成库。不过这篇文章先不介绍这个库,明天在单独写。
今天说点关于实现开源库的一碎碎念。
当我们尝试去写框架或者说公共库的时候,其难度肯定要比写业务代码难的,更考验你的抽象能力。
上次写开源库还是一个基于知乎的api,几年过去了,现在还时不时有人问我这个项目的一些问题。但是我并不想花精力在上面去做维护。毕竟这个项目关注的人越多风险越大,所以更新了前几版之后就没维护过了,在GitHub也就千来个star。
这个假期是我正儿八经写的第二个开源库,收获很多
写开源代码你要转变思维方式,这时候你不再纯粹是一个api的调用者,而是一个创造者。作为创造者,你要考虑的问题就是如何让调用者可以很舒服的是使用你的接口。什么事情应该留给开发者,什么事情是你要帮开发者做好的,这是你要思考的。这其实跟我们做产品类似,本质上你写的框架或者库也是一个产品,只不过面向的用户是开发者群体。而站在用户角度是去思考问题能帮助写出更好用的产品出来。
对于没有这方面的经验的同学来说,怎么快速上手呢。个人认为最简单的一种方式,就是把你项目中一些业务无关的代码抽出来,是不是其它项目也会用得到,做成一个独立库像API一样去调用看看是否方便。
其实很多开源项目、包括大型的框架、组件或者是一些工具库,早期大部门都是从业务代码中提取独立出来的。你去翻翻那些知名框架,大抵都是如此。
当然,多去阅读优秀的开源代码,看看别人是怎么写的,真的可以给你很多启发,正所谓站在巨人的肩膀人,先模仿再超越。 不过行动永远比语言更有说服力。现在就去做吧!
评论