Skip to content

Jigsaw comp game 2017 FAQ

陈旭 edited this page Nov 4, 2017 · 16 revisions

目录

FAQ

参赛条件是什么?

只要你拥有一个github账号就可以参赛了,还没有github账号?单击这里赶紧注册一个吧。登录github后,请给Jigsaw工程点一个星星,最好能够watch它,这样后续大赛有任何新的进展,github都会以email的形式通知你。

为了公平起见,Jigsaw开发团队的所有成员都没有参赛资格,而且后续在代码评审、讲解(我们可能会要求视频讲解)过程中发现有类似情况的,一律取消参赛资格。

如何报名参赛?

无需报名,有意参赛者参考这里直接提交PR即可。

但是为了让我们更好的了解你,你可通过下面两个方式事先介绍一下你自己(这是可选的):

  • 单击这里创建一个issue,标题写上[jigsaw comp game 2017] 报名参赛,issue的内容可以写上你或者你的团队的简介,并留下你的常用email。后续赛程相关信息,我们会通过这个email和你联系。
  • 直接给chen.xu8@zte.com.cn发送email,标题写上[jigsaw comp game 2017] 报名参赛email的内容必须留下你的github账号名,其他的可选信息包括你或者你的团队的简介,或者其他人和你想告诉我们的信息。

注意:大赛只通过chen.xu8@zte.com.cn或者chenxucc@qq.com这2个email和你联系,请无视其他email账号的邮件,以免上当。

如何给参赛者记分?记分的规则是什么?

大赛一共设计了6个赛题,每个赛题都有对应的难度系数。详细的记分规则是这样的:

  • 大赛的评委会根据参赛者的实现对赛题需求的满足度打一个基础分
    • 完全满足赛题需求的,打90分;
    • 参赛者如果未能完全覆盖赛题的需求的,则低于90分,具体分数由评委给出;
    • 参赛者如果能够在赛题需求的基础上做出适当&合理的扩展,并且得到评委的认可,则可以有额外的加分,最多加10分;
  • 参赛者在某个赛题上的最终得分算法为基础分*赛题难度系数,称之为综合分;
  • 参赛者可以同时实现多个赛题,大赛会取综合分数最高前3题的分数累加,作为参赛者的最终得分;
    • 这个规则的主要目的是我们不鼓励多而滥的作品,而是少而精的作品;

提示:我们对每个赛题的难点都做了评价,其中也涵盖了实现该赛题所需的技能,参赛者可以根据自身的技能挑选难度合适的赛题,并尽可能全面的覆盖赛题的需求,这样才能够得到高分。

大赛的奖励是什么?

大赛分三个奖项:

  • 一等奖1名,现金2000元,对应的正明证书等其他;
  • 二等奖2名,现金1200元,对应的正明证书等其他;
  • 三等奖3名,现金500元,对应的正明证书等其他;

如何搭建Jigsaw开发环境?

如果你对npm比较熟悉,那一切都很简单,如果不是,则可能会有些许麻烦。但是无论如何,根据这个文档的说明操作即可。注意,不要用cnpm来安装依赖,有坑!

如何提交代码?

通过github提交(推荐)

参赛者通过Github标准的Fork + Pull Request的方式来提交参赛代码,要求

  1. PR的标题类似这样的:[jigsaw comp game 2017] implements JigsawRate and JigsawSteps component
  2. PR的内容包含你这个PR所解决的哪些赛题的issue编号,例如 fixes #257, #257,其他可选的信息包括:你认为对我们review这个PR的代码有帮助的信息。如果你事先未告知我们你的联系方式,则请在PR的内容中留下联系方式。注意PR中的内容是全世界公开的,因此如果你不希望公开你的联系方式,则请发送邮件给chen.xu8@zte.com.cn,邮件中带上有的PR地址,你的联系方式。我们会严格保密。

提交代码的过程和平时你参与他人的开源工程的过程完全一样。对于这个过程不熟悉的同学,可以参考github的官方说明,或者我找了一份汉语版的说明,虽然上面的配图有点老了,不过流程基本上是一致的。

在Jigsaw的pull request页中看到你的PR,表示提交代码成功。

在中兴内网提交代码

考虑到一些神奇的原因github会打不开,中兴内网的同学可以将代码提交到这个工程 http://gitlab.zte.com.cn/10045812/jigsaw

参赛代码的公共要求是什么?

我们对参赛的代码有如下的要求:

  • 代码格式良好,可读性高;
  • 代码符合typescript开发规范,符合angular开发规范;
  • 参赛者实现某个组件或者功能之后,需要有至少一个live-demo
    • 这个live-demo需要体现出当前组件或者功能的最佳使用方式和使用场合;
    • 这个live-demo最好能够带有一定的实际场景而非纯功能演示;
    • 这个live-demo必须带有一个readme.md,用于介绍这个组件或者功能的最佳使用方式,或者最佳功能组合;如果有局限或者已知的坑,也需要详细说明;必要的话可以包含少量的原理介绍,但无需涉及过多的实现细节;
    • 这个live-demo请放在src/app/live-demo中,参考其他的live-demo的目录结构,注意demo的url和其存放的目录名必须一致,否则CI无法通过;
  • 关于自动化测试的要求:
    • 需要对该组件或者功能实现对应的自动化测试用例,存放在src/e2e目录下,要求自动化测试用例能够覆盖该组件的所有功能点;
    • 提示:注意自动化测试用例需要有被测页面,而一般来说live-demo就是绝佳的被测页面,你可以编写自动化用例对live-demo做测试;
    • 提示:一些live-demo无法覆盖到,但又是自动化测试所需的功能点,可以以demo的方式编写独立的被测页面,存放到src/app/e2e-testee中;
    • 单元自动化测试用例不做要求;
    • 如果参赛者的PR的CI运行结果如果是红色的,则会扣除一定的分数;
  • 关于浏览器兼容性的要求:
    • 参赛者实现的功能,需要能完美的兼容Chrome、FireFox、IE11等浏览器;
    • Chrome、FireFox只考虑最新的前四五个版本即可,较老的版本无需考虑;IE10及以下的浏览器无需考虑;
    • 提示:要注意要关注你的代码在IE11上的运行效率;
  • 本次所有赛题的实现,都不要有任何第三方依赖;

如何申请为评委?

我们欢迎任何有angular经验的大神来担当本次大会的评委,会有礼品相赠。有意者请将你在angular方面的相关经验简介发送给chen.xu8@zte.com.cn,我们会和你联系。