https://cn.codecombat.com
https://www.zhihu.com/question/29372574
https://zhuanlan.zhihu.com/p/24425116