本文仍在持续更新中……

🧱开发 & 提交流程

本次比赛的主办方强烈推荐参赛的各支队伍依托 GitHub 平台展开合作。当然,我们不能强制参赛队伍使用GitHub进行协作,但是最终的作品提交与评比则将统一依托GitHub进行。从开发到提交,参赛队伍需要涉及GitHub平台的流程大致如下:

  1. GitHub组织并将组员拉入;
  2. 在该组织下为参赛项目新建一个private仓库且比赛过程中库保持private
  3. 给添爬虫账号为Member
  4. 将该仓库的地址提交给组委会;
  5. 进行开发并不断将进度推到您的仓库中;
  6. 为最后一次提交打上名为DONETag以完成提交;
  7. 将库设为public以供star投票;

🎚 参数

参数
主办方爬虫GitHub 首页 https://github.com/Bot4Hackathon2020
项目地址提交收集表链接 https://forms.office.com/Pages/ResponsePage.aspx?id=DQSIkWdsW0yxEjajBLZtrQAAAAAAAAAAAAMAADVOd2xURFlFNkxIWktDNzkyU0dDVjdLVU9YWkU3OS4u

您提交的文件应包括

  • 源代码
  • 工程文件
  • 素材
  • 最终打包好的可执行文件
  • 版权信息,包括所采用的开源项目
  • README.md

README建议:

  1. 需要至少包含项目介绍,以方便评审以及选手间互评;
  2. 图片推荐使用图床,以保证可直接访问;
  3. 如果您使用了开源项目,请注明;
  4. 除项目介绍外,操作指导、设计思想等都是文档中的可选内容。

如果您已熟悉Github,可直接按照上面的流程进行开发与提交。

如果您不熟悉,也没有关系,下面展示了一个Demo项目的提交流程。

参考链接

廖雪峰的Git教程

https://www.liaoxuefeng.com/wiki/896043488029600

给某个用户添加项目权限 - GitHub官方文档

https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository

Tag和Release - GitHub官方文档

https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/managing-releases-in-a-repository

🧒 下面是保姆级教程

创建一个 GitHub Organization

步骤 说明
image-20201125222927275
image-20201125222905149
image-20201125223047495 选择 Free 版本就可以了。
image-20201125223120469 按照页面提示依次填写相关信息以完成 Organization 的创建。具体的步骤在此处省略。
image-20201125224457037 邀请您的队员。
image-20201125224532232 输入您的队员的相关信息进行搜索,GitHub会给他发邮件,他点击确认后即可加入队伍。

创建一个仓库并给与队员和爬虫权限

步骤 说明
image-20201125223737428
image-20201125223922351 细节可据需要更改,但仓库初始应为private
image-20201125224200477 进入该页面需确认密码,上方改队内权限、下方添队外权限
image-20201125224702870 更改队内权限(PS:给Admin权限要慎重,除非主负责人一般给Write
image-20201125224958495 给主办方的爬虫账号添加 read权限,主办方可能需要一段时间后才能接受邀请

利用GitHub进行协作

此部分不做展开。

当然,如果您懒得思考,装好Git环境后。三种命令就够了。

1
2
3
git add <path>
git commit -m [message]
git push

提交作品并令仓库public

步骤 说明
image-20201125232159889
image-20201125232241599
image-20201125232350091 如果不是最后的提交的话可以写版本号辅助开发,如果是最终版本请命名为DONE
image-20201125232629934 正常提交后的效果,我们会检查该次提交的时间戳。
image-20201125232834898 完成提交后,进入 Settings 页面,将可见性改为 public
image-20201125233138481 进入此页面可能需要确认密码
image-20201125233218674 在此种情形下,你的项目将会向全网公开,在互评环节中,我们将会记录队员相互的 star 数作为投票数
https://github.com/hackathon2020eastchina/submissionDEMO 公开后的项目的地址(private时也会有这样的链接,但是没有被授权的用户访问会得到404)

🧀 Tips

🖋 需求分析与开发

需求分析到实现开发的过程,大致是:

  1. 确定要改变的现状/要解决的问题,并确定一个可估量的指标,用于评价最后的成果
  2. 分析清楚实现过程中需要经历的几个宏观环节
  3. 细化各环节并加入技术解决方案
  4. 分工并开始实现

上面四个步骤推进起来都会有困难,对于最开始确定需求,可以用5w1h方法:什么时间(when)什么地点(where)什么人(who)做什么(what)以及为什么做(why)如何去做(how);在分析宏观环节时,可以按照状态转化的思路去分析,什么时候事物的状态变了,那有可能就进入了下一个环节;细化及加入解决方案的过程中,一定要考虑实现的难度、有没有现成的解决方案(轮子)。

例如,目前,在抗疫的信息化上,已经有很多成熟的应用被开发出来并得到了广泛使用。想要进一步用数字化为抗疫提效,或许可以从以下方向继续挖掘新的需求:

  • 发掘一个新的领域,创造新的蛋糕。
  • 选择一个垂直领域,着重于细分场景下的提效,如学校或家庭内的高度信息化/自动化。
  • 将现有的解决方案整合起来。参考开发中比较流行的持续集成概念,可以尝试构建一个一站式平台,或是一个全自动化的流程管道,等等。

参考链接

需求入门: 需求工程=需求开发+需求管理 (uml.org.cn)

🎟 开发TIPS

  • 善用协作工具,如使用 Git 管理项目,使用 VS Live Share 以合作编辑与讨论,减少多人合作带来的额外沟通开销;

  • 建议有灵感与设计后首先制作一份 Prototype,用以验证想法,同时也能避免到截止时间时无可用作品可交的窘况。

  • 相比于良好的技术实践,请更注重 Demo 的展示。好的架构与代码都是可以之后通过重构等方法迭代优化的。

以下内容来自于SWI, NJU的18级cq

  • 在某些情境下,交互效果的重要性往往大于技术;
  • 在交互的过程中美工固然重要,但只是锦上添花,更重要的是交互的逻辑;
  • 赢在互动,重视场景感的构造;
stateDiagram [*] --> Still Still --> [*] Still --> Code Code --> Still Code --> Crash Crash --> [*]
1
2
3
4
5
6
7
stateDiagram
[*] --> Still
Still --> [*]
Still --> Code
Code --> Still
Code --> Crash
Crash --> [*]