Pair Coding 08.18 FAQ | FCC 广州线下活动

Pair Coding 08.18 FAQ | FCC 广州线下活动
0

Q1:活动时间?
A1:8月18日(星期日)下午 2 时至 5 时。

Q2:活动地点?
A2:世联空间广州塔店。

世联空间是世联行旗下办公品牌,由世联行控股子公司世联君汇创立的成熟综合办公服务品牌,以“空间+服务+资源”为理念,构建的联合办公空间。项目内部打造了企业会客厅,规划了公共洽谈区、公共多媒体会议室、公共打印室以服务入驻企业,同时,设置了咖啡吧、公共茶水间用以服务入驻企业员工。此外,空间更为企业提供增值服务,对资源进行全方位嫁接

Q3:什么是 pair coding?
A3:Pair coding 中文为“结对编程”。在 pair coding 中,每两人组成一队来实现指定的需求。每队其中一个人负责编写代码,另一个人则实时进行 code review(代码审查),即”一个人写,另一个人看“。
负责代码审查的队友要留意写代码的队友有没有犯一些低级错误,例如拼写错误,忘了关闭文件或者数据库连接之类的。负责代码审查的队友还可以要求队友写出可读性好的代码,一旦发现队友写的代码艰涩难懂,则要求队友改正。写代码的队友可以一边写代码,一边向代码审查的队友说明自己的设计思路和代码逻辑,与队友一起探讨实现方式是否可行以及最优。

Q4:这次活动要带电脑去吗?
A4:是的。因为要在活动现场写代码。

Q5:这次 pair coding 要做什么?
A5:编写一个 web 服务实现大量用户抢购某个商品的功能。要求:

  1. 提供一个 web API,可以基于 HTTP 或 TCP,输入为一个用户 ID,输出该用户是否抢到商品;
  2. 最终被抢到的商品的数量要等于库存数量;
  3. 每个用户会连续发送两次抢购请求(无论第一次抢没抢到),但是系统要保证一个用户最多只能抢到一个商品,不能多抢,最终抢到商品的用户数应该等于商品的库存数;
  4. 用户 ID 数至少是商品库存数的 100 倍;
  5. 抢购请求的吞吐量要超过关系式数据库处理能力至少一倍;
  6. 用户是否抢到商品的结果要持久化到磁盘上,重启服务后仍能查询到结果;
  7. 提供 web API 的程序只在一台电脑上运行,不做集群和负载均衡。

Q6:有规定用什么编程语言吗?
A6:编程语言不限,只要最终提供的 web API 是基于 HTTP 或 TCP 即可。

Q7:编程小白可以参加这次活动吗?
A7:这次活动需要参与者至少会写一个程序提供一个基于 HTTP 或 TCP 的 web API。

Q8:参加这次活动需要做些什么准备?
A8:参与者需要先搭好开发和测试的环境:

  1. 搭好开发 web API 的环境。例如使用 Java 的开发者需要安装好 JDK、Maven、Eclipse 之类的,使用 Node.js 的开发者需要安装好 Node.js、NPM 之类的,使用 Python 的开发者需要安装好 Python、PIP 之类的……
  2. 安装用于压力测试的 JMeter 以及运行 JMeter 所需的 Java 运行环境(JRE)。

JMeter 界面截图:

Q9:可以先写好程序带过去吗?
A9:最好不要。在 pair coding 中向队友展现自己编码时的整个思考过程是 pair coding 的重要元素。但是如果你使用了一些 web 框架,例如 Spring Boot,你可以先把程序的框架搭起来,如把 Maven 项目的 pom.xml 文件写好。

Q10:如何组队?
A10:报名后会有组织者把你拉进活动群。建议提前在群里组好队,否则会在活动现场随机指定队伍。

Q11:可以跟自己的男/女朋友或老公/老婆一起组队吗?
A11:可以。但是跟陌生人组队可能更能获得启发哦,”他山之石可以攻玉“嘛。

Q12:如何报名参加这次活动?
A12:你可以添加 FCC 广州组织者”兔纸“的微信,并给他发一个你安装好 JMeter 的截图。

Q13:本次活动会有续集吗?
A13:可能会有续集,在阿里云上申请几台机器,让大家试试用集群和负载均衡来应对秒杀的高并发。

1赞