本文仍在持续更新中……
🧱开发 & 提交流程
本次比赛的主办方强烈推荐参赛的各支队伍依托 GitHub
平台展开合作。当然,我们不能强制参赛队伍使用GitHub进行协作,但是最终的作品提交与评比则将统一依托GitHub进行。从开发到提交,参赛队伍需要涉及GitHub平台的流程大致如下:
- 建
GitHub
组织并将组员拉入; - 在该组织下为参赛项目新建一个
private
仓库且比赛过程中库保持private
; - 给添爬虫账号为
Member
; - 将该仓库的地址提交给组委会;
- 进行开发并不断将进度推到您的仓库中;
- 为最后一次提交打上名为
DONE
的Tag
以完成提交; - 将库设为
public
以供star
投票;
🎚 参数
您提交的文件应包括
- 源代码
- 工程文件
- 素材
- 最终打包好的可执行文件
- 版权信息,包括所采用的开源项目
- README.md
README建议:
- 需要至少包含项目介绍,以方便评审以及选手间互评;
- 图片推荐使用图床,以保证可直接访问;
- 如果您使用了开源项目,请注明;
- 除项目介绍外,操作指导、设计思想等都是文档中的可选内容。
如果您已熟悉Github,可直接按照上面的流程进行开发与提交。
如果您不熟悉,也没有关系,下面展示了一个Demo项目的提交流程。
参考链接
廖雪峰的Git教程
https://www.liaoxuefeng.com/wiki/896043488029600
给某个用户添加项目权限 -
GitHub官方文档
Tag和Release -
GitHub官方文档
🧒 下面是保姆级教程
创建一个 GitHub Organization
步骤 | 说明 |
---|---|
选择 Free 版本就可以了。 |
|
按照页面提示依次填写相关信息以完成 Organization 的创建。具体的步骤在此处省略。 |
|
邀请您的队员。 | |
输入您的队员的相关信息进行搜索,GitHub会给他发邮件,他点击确认后即可加入队伍。 |
创建一个仓库并给与队员和爬虫权限
步骤 | 说明 |
---|---|
细节可据需要更改,但仓库初始应为private 。 |
|
进入该页面需确认密码,上方改队内权限、下方添队外权限 | |
更改队内权限(PS:给Admin 权限要慎重,除非主负责人一般给Write ) |
|
给主办方的爬虫账号添加 read 权限,主办方可能需要一段时间后才能接受邀请 |
利用GitHub
进行协作
此部分不做展开。
当然,如果您懒得思考,装好Git
环境后。三种命令就够了。
1 | git add <path> |
提交作品并令仓库public
步骤 | 说明 |
---|---|
如果不是最后的提交的话可以写版本号辅助开发,如果是最终版本请命名为DONE |
|
正常提交后的效果,我们会检查该次提交的时间戳。 | |
完成提交后,进入 Settings 页面,将可见性改为 public |
|
进入此页面可能需要确认密码 | |
在此种情形下,你的项目将会向全网公开,在互评环节中,我们将会记录队员相互的 star 数作为投票数 |
|
https://github.com/hackathon2020eastchina/submissionDEMO | 公开后的项目的地址(private 时也会有这样的链接,但是没有被授权的用户访问会得到404) |
🧀 Tips
🖋 需求分析与开发
需求分析到实现开发的过程,大致是:
- 确定要改变的现状/要解决的问题,并确定一个可估量的指标,用于评价最后的成果
- 分析清楚实现过程中需要经历的几个宏观环节
- 细化各环节并加入技术解决方案
- 分工并开始实现
上面四个步骤推进起来都会有困难,对于最开始确定需求,可以用5w1h
方法:什么时间(when)
、什么地点(where)
、什么人(who)
、做什么(what)
以及为什么做(why)
、如何去做(how)
;在分析宏观环节时,可以按照状态转化的思路去分析,什么时候事物的状态变了,那有可能就进入了下一个环节;细化及加入解决方案的过程中,一定要考虑实现的难度、有没有现成的解决方案(轮子)。
例如,目前,在抗疫的信息化上,已经有很多成熟的应用被开发出来并得到了广泛使用。想要进一步用数字化为抗疫提效,或许可以从以下方向继续挖掘新的需求:
- 发掘一个新的领域,创造新的蛋糕。
- 选择一个垂直领域,着重于细分场景下的提效,如学校或家庭内的高度信息化/自动化。
- 将现有的解决方案整合起来。参考开发中比较流行的持续集成概念,可以尝试构建一个一站式平台,或是一个全自动化的流程管道,等等。
参考链接
🎟 开发TIPS
善用协作工具,如使用 Git 管理项目,使用 VS Live Share 以合作编辑与讨论,减少多人合作带来的额外沟通开销;
建议有灵感与设计后首先制作一份 Prototype,用以验证想法,同时也能避免到截止时间时无可用作品可交的窘况。
相比于良好的技术实践,请更注重 Demo 的展示。好的架构与代码都是可以之后通过重构等方法迭代优化的。
以下内容来自于SWI, NJU的18级cq
- 在某些情境下,交互效果的重要性往往大于技术;
- 在交互的过程中美工固然重要,但只是锦上添花,更重要的是交互的逻辑;
- 赢在互动,重视场景感的构造;
1 | stateDiagram |