テスト駆動開発から始める Ruby 入門¶
概要¶
FizzBuzz 問題を題材に、テスト駆動開発(TDD)の基本サイクルから、開発環境の整備、オブジェクト指向設計、関数型プログラミングの活用まで、Ruby の特徴を活かしながら段階的に学びます。
対象読者¶
- Ruby の基本文法を理解しているプログラミング学習者
- TDD を体験してみたい開発者
- オブジェクト指向設計や関数型プログラミングに興味がある方
前提条件¶
- Ruby 3.3 以降がインストールされていること
- Bundler が利用可能であること(Nix 環境推奨:
nix develop .#ruby)
Ruby の特徴¶
| 特徴 | 説明 |
|---|---|
| 動的型付け | 変数に型宣言が不要、柔軟なプログラミングが可能 |
| オブジェクト指向 | すべてがオブジェクト、ダックタイピングによるポリモーフィズム |
| ブロック・Proc・Lambda | 高階関数をサポートする強力なクロージャ機構 |
| Enumerable | コレクション操作のための豊富なメソッド群 |
| オープンクラス | 既存クラスの拡張が可能 |
| パターンマッチング | Ruby 3.0 以降の構造的パターンマッチ |
開発ツール¶
| ツール | 用途 |
|---|---|
| Minitest | テスティングフレームワーク |
| Bundler | パッケージ管理 |
| RuboCop | リンター・フォーマッター |
| SimpleCov | カバレッジ計測 |
| Rake | タスクランナー |
目次¶
第 1 部: TDD の基本サイクル¶
第 2 部: 開発環境と自動化¶
第 3 部: オブジェクト指向設計¶
第 4 部: 関数型プログラミングへの展開¶
実装コード¶
本記事のすべてのコード例は apps/ruby/ に実装されています。
# 開発環境に入る
nix develop .#ruby
# テスト実行
cd apps/ruby
bundle exec rake test
参考文献¶
- Kent Beck 著『テスト駆動開発』
- Martin Fowler 著『リファクタリング: 既存のコードを安全に改善する』
- Robert C. Martin 著『Clean Code: アジャイルソフトウェア達人の技』
- David Thomas, Andrew Hunt 著『プログラミング Ruby 改訂版』