Skip to content

Aid-On/aid-on-js-training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aid-on-js-training

JavaScriptプログラミング学習のための問題集です。テストコードが付属しており、自分の回答が正しいかどうかを自動的に確認できます。

📚 概要

このリポジトリは、JavaScriptを初めて学ぶ方向けの段階的な学習教材です。以下の特徴があります:

  • ✅ テスト駆動開発(TDD)形式の学習
  • 📈 基礎から応用まで段階的に学べる構成
  • 🔍 自動採点機能付き
  • 📝 詳細な問題説明(日本語)

🎯 問題の構成

問題は以下の4つのセクションに分かれています:

1️⃣ 基本セクション(000-019)

  • 変数の使い方
  • 配列の操作
  • 関数の作成方法
  • 基本的なループ処理
  • など

2️⃣ 中級セクション(020-039)

より発展的な問題を解いていきます

3️⃣ 応用セクション(040-059)

実践的な問題に挑戦します

4️⃣ Reactセクション(060-079)

Reactを使用したフロントエンド開発を学びます

🚀 使い方

環境構築

  1. リポジトリのクローン
git clone [リポジトリURL]
cd aid-on-js-training
  1. 依存パッケージのインストール
npm install

テストの実行方法

全てのテストを実行:

npm test

特定のセクションのテストを実行:

# 000-019のテスト
npm run test1

# 020-039のテスト
npm run test2

# 040-059のテスト
npm run test3

# 060-079(React)のテスト
npm run test4

問題の解き方

  1. src000_019(他のセクションも同様)ディレクトリ内の問題ファイル(例:knock000.js)を開きます
  2. ファイル内のknock関数を実装します(全ての問題で関数名はknockで統一されています)
  3. npm testを実行して、実装が正しいかテストで確認します

例:

/**
 * No. 00 ごあいさつ
 * 実行するとHello World!と表示するプログラムを作成せよ。
 * @returns {string} "Hello, World!" + 改行文字
 */
export const knock = () => {
  // ここに実装を書く
  return "Hello, World!\n";
};

💡 学習のヒント

JSDocについて

各問題には、JSDoc形式のドキュメントが付いています:

  • 問題の説明
  • 関数の引数(@param)の説明(引数がある場合は必ず型情報を含める)
  • 戻り値(@returns)の型と説明

テストケースの読み方

test000_019(他のセクションも同様)ディレクトリ内のテストファイルで、各問題の期待される動作を確認できます:

describe("No. 00 Hello World", () => {
  test("基本的なケース", () => {
    expect(knock()).toBe("Hello, World!\n");
  });
});

TrainingSkipErrorについて

  • 未実装の問題はTrainingSkipErrorを返すようになっています
  • これにより、未解答の問題がスキップされる仕組みになっています
  • src/common/TrainingSkipError.jsに定義された独自のJest Reporterを使用
  • 問題を解く際は、TrainingSkipErrorを適切な実装に置き換えてください

🎓 学習のポイント

  1. 一つずつ順番に

    • 基本的な問題(000)から順番に取り組むことをお勧めします
    • 各セクションは難易度順に並んでいます
  2. テストを活用

    • テストケースを読むことで、期待される動作を理解できます
    • 自分の実装が正しいかすぐに確認できます
  3. ドキュメントを読む

    • 各問題のJSDocには重要な情報が書かれています
    • 引数の型や戻り値の形式をよく確認しましょう

🤝 コントリビューション

問題の追加や改善案がある場合は、プルリクエストを歓迎します。その際は以下の点に注意してください:

  • 新しい問題を追加する場合は、対応するテストも作成してください
  • JSDocによる問題の説明を必ず含めてください
  • 引数がある場合は、型情報とドキュメントコメントを追加してください
  • 関数名はknockで統一してください

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages