87
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
这个作业属于这个课程:https://gitcode.net/csdn/intro-ossd/
这个课程《开源软件开发导论》 的课程计划在这里: https://gitcode.net/csdn/intro-ossd/-/blob/master/plan/0.md
经过几次讲课,几次作业,几次提问回答,同学们对于开源软件开发应该有了足够的了解了。 下面就请大家开始实践。
请提交一个作业,说明你的开源实践项目的计划:
1)作业和课程的关系:照例,在作业开头,列出 [这是哪一个作业 https://bbs.csdn.net/topics/608463896 ]
2)实践的项目是哪一个: <这个项目目前的开源链接>
3) 和我合作的同学是哪几个: <同学的博客主页 URL>.
我们要求一定要有 2 个同学和你组队参与一个项目,形成 3 人团队。 如果你希望有不同的人数来组队,请和老师沟通,我们支持各种项目方式,但是要经过调研提出负责任的计划。
4)我在这个开源项目中希望达到的目的和我的计划。
大家会问,每个学生参与的开源项目并不一样,我们如何证明自己参与的开源项目达到了一定的水平,获得了一定的知识和技能呢? 这就要问这门课的培养计划中,老师希望这门课程能让学生达到什么水平: 请看这个文档: https://gitcode.net/csdn/intro-ossd/-/blob/master/chapters/1.md 里面写了这几点:
1)证明你有一定的专业知识,可以在开源社区工作。
2)证明你能和许多不同特点的人一起合作达到一个目标。 这说明你具备一定的 “沟通管理” 的实战技能。
3)你在开源社区的贡献,是你简历和声望的重要部分,它们为你将来的工业界和学术界的发展奠定了很好的基础。
4)为你在开源领域做学术研究做了一些初始的准备。
学生必须以这四点为基础,描述你的目的,你还可以写更多的目的和计划,但是上述的四点是必须的。
这是一个例子:
1)我通过参与这个项目,在某个技术领域,甚至是开源领域,大幅度提高了自己的知识和技能,我发布的产品(一个全新的版本, 一个版本中的某个功能)获得了 N 个用户的使用, 或者 M 个用户的正面评价。
2)为了达到我的一个目标 (例如:在软件中增加一个功能X 并成功发布), 我和这个项目的成员A,B,C 等有多次的交流(交流的讨论帖子链接)。 并且,我有下面的事实证据说明我在开源社区实践了一个完整的产品开发流程,并合作达到了目标:
2.1) 我发起了一个版本的计划 (sprint planning),提交了 issue, 或者提交了解决 issue 的计划, 并且和开源社区的其他成员达成了一致意见,大家同意我们这个版本的计划。 (建议:花 3 天时间提交计划,用自己的博客账号发布计划,issue 可以直接链接到开源的项目中)
2.2)我和我的同伴执行了这个版本的计划(有每天的签入, pull request,merge request)。 我们需要至少 5 天的工作成绩(在 5 天中必须有 PR,MR), 有最后的发布。 建议:花 10 天时间,每天都进行至少一小时工作,确保你有足够的工作量并提交 PR,要显示你们为这个项目贡献了多少行的代码。
2.3)我们按时发布了新版本或新功能,并通知了社区。 建议:花 2 小时准备你的新版本通知,发布在你的博客上。
2.4)我们有用户的 bug 报告(issue list),在这个版本的维护阶段,并且我们修复了至少 10 个 issue。 (建议:版本发布后,用 3 - 7 天收集反馈, 再用 7 天修复这些问题。 )
3)我在开源社区的贡献,获得了一定的学习成就 (请看 edu.csdn.net 的学习成就页), 并且我的技能也得到了这个开源项目成员的认可 (请看 edu.csdn.net 的技能认可功能介绍)。 这个 “认可” 也可以由参与同样项目的同学来写, 也可以由参与别的项目的同学来写,如果你在别的项目帮助了这个同学。
4)我计划写一篇实践总结 (利用了老师提到的论文和其他参考资料:链接1, 链接2 ...), 结合自己的实践,对开源社区的某个环节做了分析和总结, 或者, 对于自己的开源项目的成败做了分析,聚焦于 “在开源的环境中,如何提高项目的成功率”。 同学们在 第一次 和 第二次提问 的作业中至少提出了 10 个问题, 那么, 这个实践总结就是很好的机会, 大家要用这个机会回答自己提出的问题 --- 在实践中发现问题的答案,这才是高效率的学习。 (建议: 用平时的时间收集资料,并用 3 - 7 天时间写实践报告。 )
同学会问,我现在未必知道我要做的功能具体是什么,我怎么能预先知道我的功能会有什么 bug 呢? 好问题, 你的这个作业,至少要列出时间点和你的计划, 还是上面的模版:
1)我要做什么项目,合作者是谁,大致的用户量估计
2)目标
2.1) 预计在哪一天发布新版本计划
2.2)预计在哪一天完成所有具体编码、内容工作
2.3)预计在哪一天完成新版本
2.4)预计在哪一天修复所有报告的 issue
3)预计在哪一天可以收集到这些 “认可”
4)预计在哪一天完成我的实践报告
大家在大学阶段,已经做了不少项目,也观摩了不少项目,一种模式是:
一个人或者几个同学,在一个封闭的环境中,想象出一个需求,聚焦开发几天,交出一个产品,做个演示,老师简单看看,就获得通过,然后无人维护这个产品 ...
这种模式我们并不想要。
我们的 《开源软件开发导论》课程并不想重复乏味的项目或者让同学重复练习某种基础编程技能,而是要让同学们在 开源环境 这个貌似不太舒适的环境中,通过和陌生人合作,在一个全开源的项目中,把自己的价值增加进去,发布给所有人,接受所有用户的评价,并公开说明自己的贡献和收获。 这是这个课程的独特价值所在 --- 在开源的世界中学习、贡献、成长。
如果大家有疑问,可以在这个帖子下面提问,我们也通过开源的方式,把这个作业设计好,完成好。
几个同学合作完成一个项目的,可以写一个博客,然后每个同学转载同一个原创博客并注明原创博客的链接就好。
老师,十分抱歉,我在发布博客之后忘记在这里点击提交,这是我们组的第三次作业
请问这次作业是选择提供的几个开源项目中的一个进行吗