扫码阅读
手机扫码阅读

2016年1月更新:编程操练神器Cyber-dojo私有服务器搭建

254 2023-08-22

Cyber-dojo(www.cyber-dojo.org)是由居住在英国的软件开发培训师和咨询师Jon Jagger于2010年前后开发的用浏览器来使用的免费在线编程道场,用来在软件开发者中推广刻意的编程操练(http://blog.cyber-dojo.org/p/learn-more.html)。在2015年底cyber-dojo进行了更新,界面更炫,编程语言更多(支持ES6 JavaScript和Bash等),编程招式更多(比如多了fizz buzz plus),每个招式支持同时在线人数高达64人。

Cyber-dojo支持20多种编程语言,每种编程语言有至少一种测试框架可供选择。Jon统计了15000个在线cyber-dojo编程操练发现,数量最多的前5个编程语言和测试框架为:

3125 Java JUnit

2881 C# NUnit

1087 Python unittest

1071 C++ assert

904 C assert

上面编程语言和测试框架的组合,都能用来操练多达41个编程招式。Jon在15000个操练中统计的最受欢迎的前5个招式为:

2091 Fizz Buzz

1830 100 doors

924 Verbal

787 Calc Stats

778 Leap Years

Cyber-dojo的使用场景主要有4个:

1)程序员使用熟悉的编程语言进行TDD编程操练

2)程序员学习新编程语言

3)编程道场的组织者为活动参与者提供开发环境,请参加结对编程的参加者,用各自的电脑中的浏览器,通过局域网来访问组织者电脑中的cyber-dojo私有服务器或cyber-dojo.org,来进行编程操练,其间能通过Cyber-dojo提供的统计页面来观察各对编程者测试运行的状态;

4)面试程序员,请程序员在cyber-dojo.org上做编程题目,考官可以使用cyber-dojo的code review工具来查看程序员每一次提交的代码变化。

由于Cyber-dojo在浏览器中不提供编程语言关键字高亮显示,不提供命令提示和自动补足,也不提供重构工具,使得一些重度依赖IDE的程序员会很不适应,但Jon说得好:

“不要试图走得太快,要开始尝试走得慢一些;

不要总想着完成,要始终想着改进

要想着以团队的形式一起来操练。

本文描述了在OS X 10.11.2的电脑上安装Cyber-dojo服务器的步骤。由于这些步骤主要是在TurnKey Linux虚拟机里完成,所以对于Host OS是Linux或Windows的读者来说,只要安装了诸如VirtualBox或VMWare这样的虚拟机工具,也能参照本文描述的步骤进行安装。

上述步骤基于Jon Jagger的博文:http://blog.cyber-dojo.org/2014/09/setting-up-your-own-cyber-dojo-server.html。另外,程序员李小康也为笔者安装Cyber-dojo服务器提供了重要的帮助,在此表示感谢!另外Jon在5小时内解决了我安装新版cyber-dojo时遇到的bug,使得我能顺利安装,并产生了本文的更新,感激之余在cyber-dojo.org官网上捐款10英镑,给孩子们买树莓派迷你电脑学习新技术。

* 下载并安装VirtualBox 5.0

从https://www.virtualbox.org/wiki/下载VirtualBox 5.0,并安装到OS X上。

* 下载TurnKey Linux Rails 14.0虚拟机image文件

从http://www.turnkeylinux.org/rails页面上,点击“VMDK”链接,下载turnkey-rails-14.0-jessie-amd64-vmdk.zip,并解压。

* 创建虚拟机

在VirtualBox中,按“Command + N”键创建虚拟机。在"Name and operating system"对话框中填写以下内容:

Name: turn-key-linux-rails

Type: Linux

Version: Ubuntu (64 bit)

Hard drive: Use an existing virtual hard drive file

选择下载的VMDK文件

按"Create"创建虚拟机

* 启动上述虚拟机

在启动上述虚拟机的过程中,填写以下内容:

Please enter new password for the root account:

Confirm Password:

Please enter new password for the MySQL 'root' account:

Confirm Password:

initialize Hub services -> skip

Security updates -> skip

RAILS appliance services -> Advanced Menu

Advanced Menu -> Networking

Networking -> DHCP

Select "Back" and select "Reboot"

RAILS appliance services -> Advanced Menu

Advanced Menu -> Quit

* git克隆Cyber-dojo的在github repo上的源文件

以root登录TurnKey Linux后,运行下面命令

$ cd /var/www

$ git clone https://JonJagger@github.com/JonJagger/cyber-dojo

(注意是"cyber-dojo",中间有减号。旧版的cyber-dojo中间没有减号。)

* 安装Cyber-dojo服务器、gems和docker

运行下面命令安装服务器。

$ cd /var/www/cyber-dojo/admin_scripts

$ ./pull.sh

$ ./setup_turnkey_server.sh

* 安装预建的cyber-dojo docker-images

以root身份运行命令:

$ cd /var/www/cyber-dojo/languages

$ ./docker_list_all_images.rb

此时能看到cyber-dojo所支持的编程语言与测试框架:

...

cyberdojofoundation/clangpp_googletest == C++ (clang++), GoogleTest

cyberdojofoundation/coffeescript_jasmine == CoffeeScript, jasmine

cyberdojofoundation/csharp_nunit == C#, NUnit

cyberdojofoundation/csharp_specflow == C#, SpecFlow

cyberdojofoundation/d_unittest == D, unittest

cyberdojofoundation/erlang_eunit == Erlang, eunit

cyberdojofoundation/fortran_funit == Fortran, FUnit

cyberdojofoundation/fsharp_nunit == F#, NUnit

cyberdojofoundation/gcc_assert == C (gcc), assert

...

根据上表,运行下述命令安装你需要的编程语言与测试框架的image:

$ docker pull

例如:

$ docker pull cyberdojofoundation/clangpp_googletest

(这里翻墙后速度更快。注意,一旦运行这个命令下载了新的编程语言与测试框架,你需要执行下面的更新缓存的命令来令其生效。)

* 更新缓存

以root身份运行下述命令:

$ cd /var/www/cyber-dojo/caches

$ ./refresh_all.sh

* 重启web服务器

以root身份运行:

$ service apache2 restart

* 设置eth0的IP地址并将TurnKey Linux虚拟机关机

运行命令“shutdown -r now”重启TurnKey Linux。在随后出现的"RAILS appliance services"界面中进行以下操作:

"Adanced Menu" -> Networking -> eth0 (确保它的旁边有一个星号*) -> DHCP -> Back to "Advanced Menu" -> Shutdown

* 映射端口

在OS X中运行以下命令来将Host OS(即OS X)的8000端口映射到Guest OS(即TurnKey Linux)的80端口,以便从Host OS及其所连接的其他机器上访问该Guest OS上运行的Cyber-dojo服务器。

$ VBoxManage modifyvm "turn-key-linux-rails" --natpf1 "guestssh,tcp,,8000,,80"

* 访问Cyber-dojo服务器

启动TurnKey Linux虚拟机,在OS X中,用浏览器访问http://localhost:8000/,能够看到Cyber-dojo的首页。点击create a practice session,开始享受编程乐趣~

--------------------

操练成就匠艺。全栈开发者的编程操练社区:bjdp.org北京设计模式学习组。微信订阅号:bjdp_org,QQ群号:235913915。

原文链接: http://mp.weixin.qq.com/s?__biz=MjM5MjEwNTEzOQ==&mid=403286697&idx=1&sn=4401f8ecd8b3a51665cc61f257fe015a&chksm=3b565d750c21d46339363a1f2d0012d854a62052f1daff8c29f1ee4f635c27761453ea757c8c#rd

用好企业软件系统稳定性与混沌工程相关技术和过程。

35 篇文章
浏览 11.4K
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线