2020年期间我有幸参加了启智开源项目,在这个活动中,我主要参加了启智磐石的开发,最终项目顺利上线并开始提供服务,这次我想分享一下我参与这个活动以及开源社区的感受与收获。
毫无疑问,参加一个开源项目是非常令人激动的,看着开源项目一步一步完善直到上线,这花费了我不少时间。但我从中也学到很多。由于以前并没有参加开源项目的经验,因此总结了一些心得,作为一个开源开发和之前工作中的不同之处。
1、在编码风格方面不需要太严格
编码风格的问题,当项目中设计了过于复杂的规则将增加开发的成本,人们会实时关注空格缩进带来的困扰,最好的方式是能用脚本自动化处理开发中的编码风格问题,比如将常用的eslint,go fmt工具封装为全局脚本。这样项目合作中可以很方便的进行沟通,而不需要经常通过人工来修改。最终,代码的提交以pull request的方式进行合并,最终我一点都不担心编码风格、测试会带来问题。
2、代码即文档
在开发的过程中我经常感受到,相比于不知道何时更新的文档,编写有清晰结构的代码和测试比文档更有用处。我可以毫不夸张的说:好的代码就是好的文档。当需要给系统增加功能时,最好的熟悉现有功能的方式不是找开发文档和寻找当时开发文档的开发人员进行询问,当项目足够健康时候,最好的方式就是阅读结构代码和测试。此外,别忘了swagger,当我们采用swagger时能够快速生成api的文档,这都能很好的提升开发速度。最后也有例外,比如当需要和第三方系统对接时文档的重要性就不言而喻。
3、有高效的沟通方式
在项目开发过程中,项目进度的控制时至关重要,我们在项目开发中沟通采用类似github的模式,由开发或测试人员在项目管理中添加任务,管理人员指派成员,尽量避免无意义的会议,如果沟通的越顺畅,我们自己就会越信任自己的项目。
4、多接触其他的开源项目
经常关注开源社区的项目以及他们的issuse和pr,特别是目前Golang社区里有很多优秀的项目。在他们的issue中和pr中很多人对项目的理解都很高,他们乐于分享在项目中遇到问题,经常阅读别人已经合并的pr已经代码能够拓宽视野,在遇到问题的时候能从多个角度思考问题。
5.收获
参加这次的开源项目带给我了很多收获:
第一是让我完全参与到开源之中,之前只在有些项目中提过一些pr去解决小问题,这次明确了开发目的切身体会了一次开源的感受。
第二在工作中也获得了很多启发,包括处理分布式大文件时候的一些项目经验,使得我可以更好地理解研究问题中的一些概念。
作者:严翔东
上一篇:开源分享——优秀开发者心得
下一篇:参与启智社区开源项目心得分享——陈彦骐