开源软件开发导论 第二次作业
这个作业的要求是: https://bbs.csdn.net/topics/608215808
我提问的开源项目是:https://gitcode.net/csdn/skill_tree_opensource
合作者:
https://blog.csdn.net/zkllll23
我们采用腾讯会议+git仓库共享编辑的方式进行合作。
0、关于第一印象
开源软件开发技能树这个项目是技能森林的一部分。贡献者只需要按格式在对应节点下创建节点与创建习题文件即可,相关配置文件通过引入skill_tree的包来管理,对于贡献者来说只需聚焦如何增加或修改习题便可以轻松做出贡献。我在尝试创建了一个习题后,感觉这个过程十分简单且操作性强。
1、关于readme
这个项目本身十分简单易上手,可以感觉到skill_tree的开发人员有意降低了这样的技能树的参与门槛,但我注意到readme文件本身似乎对于新上手的用户不是十分友好,例如新增一个习题这样的贡献者比较关注的操作,相关说明却在默认生成的readme文件的最下方。
提问1:关于技能树开发,有没有可能通过引入教程,使得参与者更容易上手?或是通过修改readme文件,使其更容易被不熟悉的参与者上手?这样做对于这个项目或者类似定位的项目的发展受益大吗?
我还注意到在例如python相关的技能树中,出现了一些默认readme中没有的新增的习题的解析方式,如下图:
提问2:这些新的解析方式没有在默认的readme中提及,在尝试进行测试后,我发现这些新的方式在解析时没有报错。因为不知道后台对于习题信息的处理方式,这些新的解析方式在开源软件开发技能树中也是可用的吗?如果可用,哪些内容适合使用这些新的解析方式?
2、关于习题创建
我浏览了python相关的技能树的内容,发现其习题类型只有选择题和连接至论坛的QA两种类型。
提问3:我想知道此外技能树还能添加新的种类的习题吗?在技能森林中多样的习题类型有利于用户在相关技能树的学习吗?
3、关于库文件
我在尝试创建一个新的习题时,运行main.py出现了如下图所示问题:
出错的代码貌似是为了实现让节点的序号序列化。
问题可复现,经检查是在我本地vs code环境下,子文件夹已经被vs code占用,os.rename()
无法重命名导致的。在cmd下执行main.py则正常运行。我在本地的库文件将这一行重命名移入了if
语句下,本地vs code环境下可正常运行。
提问4:在这一行中,将某文件命名为与原文件相同的名字是必要的吗?os
相关操作无法执行时,有必要报出相关提示信息吗?
4、关于技能树的改进
通过阅读项目介绍,我们知道了开源软件开发技能树是CSDN技能森林的一部分。我阅读了其他技能森林的的相关内容,并查看了其他技能树的内容。我发现,这些技能树都有习题和相关资料。 但是在本开源项目中,并没有给每一章配备相关资料的方法。如下图:
可见,参考资料的设置与本开源项目中习题的设计是分离的,其他技能树项目有可能是在前端添加的。我认为这样的设计或许并不理想,先通过资料学习,再做习题是掌握知识的必要途径,能够统一设置习题与参考资料或许能够使得技能树的学习更加系统。
提问5:该项目以后会增加这一部分功能吗?未来还有什么好用的功能会添加?
5、如何让一个开源项目有更多的参与者?(前瞻性问题)
我们以这个项目为例,老师在作业中介绍了这个项目。如果不是因为这次作业,我们很可能永远无法接触到这个开源项目。在查看了本开源项目的贡献者次数时,我发现这个项目的贡献者和commit次数很少。
提问6:我们如何让更多的人参与到一个开源项目中呢?宣传开源项目有什么有效方法吗?此外,如何增加一个社区的活跃度呢?
6、协作说明
我和swmrw7同学先通过腾讯会议确定了查看的开源项目,然后使用gitee仓库统一我们的文档进度,一同查看了开源项目的源码,从不同角度提出问题。我从较为宏观的方面提供思路,而他是从细节出发。最后,我们在汇总然后一并提交。