10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

海外メンターからコードレビューを受けられる!「Exercism」のすゝめ

Last updated at Posted at 2019-07-20

Exercismとは

メンターからコードレビューを受けられるサービスです。

あらゆるプログラミング言語に対応しています。
GitHubアカウントで登録可能です。

Exercism

良いところ

無料

それな。

英語を学べる

2019年7月現在、サービス自体に日本語版はありません。
コードレビューも海外メンターから受けるので、当然英語です。

しかし、翻訳ツールを使って適宜わからない単語を調べれば、ほとんど問題はないです。

英語を学べるのも良いですが、海の向こうの人たちとプログラミングについて語り合えるのが嬉しい。あと単純にカッコいい。

他人のコードが読める

  • この実装、もっと良い書き方ないかな?
  • 他の人はどういう書き方をしているんだろう・・・

課題完了後は他の人のコードが読めます。新たな発見があるかもしれません。

UIが使いやすい

課題のダウンロードから提出までCUIで進められるのが良いです。
シンプルなサイトデザインも含め、1つのサービスとして素晴らしいと思います。

悪いところ

進み方が遅い

課題はメインのcore trackと、追加演習のExtra exercisesに分かれています。

core trackはメンターの承認を受けないと次の課題がアンロックされません。基本24時間以内にメンターからレビューを受けられますが、時間がかかる場合もあります。

自己判断で課題を完了することもできます。
が、一度完了させてしまうと、その課題について再度メンターと交流することができなくなります。

ちなみにindependent-modeという設定でガンガン進めることもできますが、コードレビューの優先順位が下がるそうです。

Mentored Mode vs Independent Mode

アルゴリズムはあまり学べない

まだ課題をあまり進めていないので断言はできませんが、アルゴリズムはあまり学べない印象です。
それより組み込み関数を如何に上手く使えるかが問われると思います。

課題を進めれば印象が変わるかもしれません。

課題の内容が分かりにくい

課題によっては、説明文だけでは内容がわからないものがあります。
具体的な仕様はテストコードから判断するしかありません。

テストコードを理解する練習にもなるので、逆にメリットかもしれません。

設定から課題完了まで

サイトでチュートリアルを見ることができますが、メモしておきます。

exercismの設定

パッケージ管理システムのHomebrewを使用してインストールします。

$ brew install exercism
$ exercism version
exercism version 3.0.11

マイページから個別に割り当てられたトークンを確認できるので、それを設定します。
演習に必要なファイルは、ここで表示されるWorkspaceに生成されます。

$ exercism configure --token=my_token

You have configured the Exercism command-line client:

Config dir:                       /Users/yuki/.config/exercism
Token:         (-t, --token)      my_token
Workspace:     (-w, --workspace)  /Users/yuki/Exercism
API Base URL:  (-a, --api)        https://api.exercism.io/v1

課題のダウンロード

$ exercism download --exercise=hello-world --track=php

Downloaded to
/Users/yuki/Exercism/php/hello-world

Workspace配下に言語毎のディレクトリ、その配下に課題毎のディレクトリが生成されます。

テストツールのインストール

PHPを選択した場合、PHPUnitを使用することができます。
最初の演習時に設定します。

wgetコマンドを使える状態にしておきます。

$ brew install wget

Workspaceの場所を確認し、配下にあるphpディレクトリに移動します。

$ exercism debug | grep Workspace

Workspace: /Users/yuki/Exercism

PHPUnitをインストールします。

$ wget --no-check-certificate https://phar.phpunit.de/phpunit.phar

phpunit.pharに実行権限を付与します。

$ chmod +x phpunit.phar

演習

課題名のディレクトリが生成されているので、その中に課題名.phpを作成し、課題を進めます。

README.mdに課題の内容が書いてありますが、わからない場合は既存の課題名_test.phpを読みながら詳しい仕様を把握します。

作成が完了したら、テストを実行します。

$ ./phpunit.phar hello-world/hello-world_test.php

提出

テストが通ったら、課題を提出します。

$ exercism submit /Users/yuki/Exercism/php/hello-world/hello-world.php

コードレビュー

課題提出後、メンターからコードレビューがもらえるのでマイページで確認します。
修正がある場合は再度提出します。

メンターから承認が下りた後は課題を完了することができ、次の課題がアンロックされます。
どんどん進めていきましょう〜

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?