开源应该是每一个优秀程序员的必经之路
python-wechaty之开源软件2020峰会
非常有幸能够参加此次是开源软件供应链2020峰会,本次峰会由中国科学院软件研究所、openEuler社区主办,中科院软件研究所南京软件技术研究院承办,峰会主题为“共献·开源”,包括1个主论坛、7个分论坛以及1场学生专题报告,而我代表wechaty
社区导师之一参加此“开源&教育”分论坛的分享活动,会上有来自全国各地的开源软件从业者、企业技术专家、高校及科研机构代表、开源社区代表、学生等300余人现场参会、2.3万余人同步线上参会。
我是如何开始python-wechaty开源项目的
其实一切都要从一场活动开始…
各位同学以及已经工作了的同事,都可以尝试着参加一些开放性的沙龙和技术峰会,在会上你能够和其他人交流想法,探讨问题,结识志同道合的人,收获你意想不到的体验。
在分享会上我了解到wechaty
项目,特别是被佳芮的live coding环节吸引到了,通过简单的几行代码就可以开发一个非常好玩的聊天机器人,接下来通过一段时间的学习和探索掌握了wechaty
的基本使用。
然而,最初的wechaty
版本只有TypeScript
版本,并没有目前的多语言版本,而我自己又是一个python
的忠实粉丝,觉得这么好用的一个开源框架怎么可能没有一个python
开发版本呢?这个疑问一直围绕在我的心头。
终于,在今年二月份疫情期间,大家都被困在家里,预期说被困,不如说是解放。因为我们拥有大把的时间坐在房间,和网友讨论各种问题,而wechaty
社区尤为活跃,当是我已能够帮助大家解决一部分问题。
突然,其中就有人开始问我心目中的那个问题了:为什么wechaty
没有一个python
版本的开发框架呢?作者(李卓桓)便开始鼓励我们上手开发,而我当时第一个报名(也不知道当时有什么勇气,现在看来非常感谢当初的那份无畏勇气),经过了两个月的折腾之后,便有了python-wechaty的第一个ding-dong版本。
开源项目并没有你想的那么难
其实在这两个月期间我过的还是挺痛苦的,因为作者(李卓桓)给python-wechaty
制定的代码质量要求还挺高的(高是一个相对性词),需要经过各种代码审查才能够通过,而这些代码审查的工具我是从来都没有用过,在实际开发的过程中遇到了各种坑儿。让我印象最深刻的就是需要解决python中最经典的问题:包的循环引用的问题。虽然解决方案有很多,可是需要寻找一种能够通过严格代码审查的解决方案对应当时我的而言还是非常有难度。
在开发的过程中,每个函数的命名,注释以及代码风格当时都做了很多的讨论,让我印象最深刻的就是关于数组类型的命名的讨论:比如好友ID列表变量命名,有room_ids
和 room_id_list
两种风格的讨论。通过这些非常细致的技术讨论,让我对编程有了一个全新的认识:写代码并不只是完成了一个功能就行了,而是需要在阅读性,代码风格,代码鲁棒性等各个层面作出权衡。
虽然以上都是一些小细节的问题,可是正是细节处才能够体现出能力,而只需要付出足够的时间,就能够被解决,你就能够拥有这些能力。
所以开源项目并没有你想象的那么难,只需要你付出足够的努力就可以获得对应的硬实力。
开源项目并没有你想的那么简单
自从开源项目逐步稳定,参与的人也越来越多,于是你作为项目的主要推动人,需要组织和管理项目的issue
和pull request
,需要协调参与项目的每个人,而大家都是来自于开源社区,处于一个松散合作,并非使用强制性约束来做项目,所以此时的项目管理就变得非常难以推动。
于是我请教了wechaty
开源社区多个不同的作者,他们不吝赐教,给予我非常多有价值的建议以及未来的一些规划的看法,于是我开始进行一些调整,和团队的人积极沟通每一个细节问题,并能够顺利的基于github中的issue和pr来管理所有的事情。
开源项目其实是一种以开源的思想来和世界上任何一个人合作开发,并没有一种强制性的约束,更多的是开放性思维来协作,这些东西都是需要深度学习的,
所以开源项目并没有你想象的那么简单,只需要你付出足够的坚持就可以获得对应的软实力
一定要积极参加开源项目
其实很多开源项目都非常欢迎新鲜的血液,也愿意去指导那些愿意学习的同学,所以如果你有一颗想要开源的心,就勇敢的尝试参与开源项目把,在里面你将收获非常多的提升和帮助,也会帮你认识很多优秀的人。
Talk: Multi-Wechaty SDK for Chatbot
YouTube: https://youtu.be/ncSWIRtHyAo
Vlog: Wechaty社区南京开源峰会之旅
YouTube: https://youtu.be/0ARx1cCf5p0