About

dojoについて

Javaコードを実際に書いて、その場でサーバーサイドが本物のコンパイル・JUnit実行で自動採点する実践的なハンズオン演習サイトです。

この道場でできること

座学で学んだ知識を「知っている」から「書ける」に変えるための実践環境を提供します。

直接コードを書く

ローカル環境の構築不要で、ブラウザ上のエディタから直接Javaコードを記述して課題に取り組みます。

自動で採点される

提出されたコードはバックエンドで本物のコンパイラとテストコード(JUnit)によって検証され、即座にフィードバックを得られます。

反復して定着する

段階的なヒントを活用しながら、何度でもやり直して正解に辿り着く過程で、実践的な実装力が身につきます。

演習の進め方

STEP 1 課題を選ぶ

左メニューの「演習一覧」から、挑戦したいテーマを選んで開きます。

STEP 2 コードを書く

お題と条件を読み、ブラウザ上のエディタで要件を満たすJavaコードを記述します。

STEP 3 提出・テスト

提出ボタンを押すと自動テストが実行され、結果がすぐに表示されます。失敗したら修正して再提出!

STEP 4 深く学ぶ

見事クリアしたら、「解説記事を読む」からブログの本編に戻り、設計の理論を深く学びます。

羅針盤サイト群の役割分担

当道場は、エンジニア羅針盤プロジェクトを構成する4つのサイトの1つです。
エンジニア羅針盤全体としては、以下のように役割を分けて学習をサポートします。

エンジニア羅針盤
(ブログ・本館)

「座学でしっかり学ぶ」

詳細な解説、クラス関連図(UML)、実践的なソースコードを掲載しています。設計の理論を学ぶメインの場所です。

道場 (dojo)
(当サイト)

「書いて実装力を鍛える」

ブラウザ上で直接Javaコードを記述し、その場で自動採点(コンパイル・テスト実行)を行うハンズオン環境です。

パターン PG
(デモ環境)

「動かして直感的に理解する」

ブログ記事だけではイメージしづらい「振る舞い」を、実際にパラメータを変えながら体験するサンドボックス環境です。

学習トラッカー
(進捗管理)

「学びを記録・定着させる」

読解や演習の進捗を記録し、次に何を学ぶべきか(学習のロードマップ)をナビゲートするシステムです。

技術スタック・仕様

アーキテクチャ

  • Java 21 / Spring Boot 3 / Thymeleaf
  • フロントエンドは素のCSSとJS (フレームワーク不使用)、エディタにCodeMirror 5を採用しています。
  • 自動採点システムは、提出されたコードを使い捨てのDockerコンテナ(Firecracker microVM等で隔離)内でコンパイル・JUnit実行する仕組みです。

できること・できないこと

  • 提出できるのはJavaファイル1つのみです(複数ファイル提出や外部ライブラリの追加はできません)。
  • アカウント登録は不要です。演習の合格状況はお使いのブラウザ(localStorage)にのみ保存されます。
  • 実行されるコンテナから外部ネットワークへの通信は遮断されています。

制限値

提出コードのサイズ32KB以内
コンパイルの制限時間30秒
実行の制限時間15秒
提出制限(目安)1時間あたり約20回まで(過度な連続送信はブロックされます)