このアプリケーションでは、現実社会でのショッピングに関するやりとりをプログラミング言語(Ruby)を用いて再現しています。
ソースコードのことを活気のある住民であふれた世界だと考えてみよう。そこには、変数、クラス、メソッドなどが住んでいる。技術的な話にしたいなら、住民たちのことを言語要素(language constructs)と呼んでもいい。
Rubyのような言語では、実行時はにぎやかな市場のようだ。ほとんどの言語要素がそこにいて、あちこちでガヤガヤとうるさい。言語要素に近づいて質問することもできる。
Paolo Perrota. “1.1 ゴースタウンと市場”. メタプログラミング Ruby. 角 征典訳. 第2版, O.REILLY, 2015, p.3-3
- shopping_appの実行
$ ruby lib/shopping_app.rb
- テストの実行
$ rspec
🤖 あなたの名前を教えてください
Yohei Goto
🏧 ウォレットにチャージする金額を入力にしてください
1000000
🛍️ ショッピングを開始します
📜 商品リスト
+----+------------------+-----+----+
|番号|商品名 |金額 |数量|
+----+------------------+-----+----+
|0 |CPU |40830|10 |
|1 |メモリー |13880|10 |
|2 |マザーボード |28980|10 |
|3 |電源ユニット |8980 |10 |
|4 |PCケース |8727 |10 |
|5 |3.5インチHDD |10980|10 |
|6 |2.5インチSSD |13370|10 |
|7 |M.2 SSD |12980|10 |
|8 |CPUクーラー |13400|10 |
|9 |グラフィックボード|23800|10 |
+----+------------------+-----+----+
⛏ 商品番号を入力してください
0
⛏ 商品数量を入力してください
5
🛒 カートの中身
+----+------+-----+----+
|番号|商品名|金額 |数量|
+----+------+-----+----+
|0 |CPU |40830|5 |
+----+------+-----+----+
🤑 合計金額: 204150
😭 買い物を終了しますか?(yes/no)
no
📜 商品リスト
+----+------------------+-----+----+
|番号|商品名 |金額 |数量|
+----+------------------+-----+----+
|0 |CPU |40830|10 |
|1 |メモリー |13880|10 |
|2 |マザーボード |28980|10 |
|3 |電源ユニット |8980 |10 |
|4 |PCケース |8727 |10 |
|5 |3.5インチHDD |10980|10 |
|6 |2.5インチSSD |13370|10 |
|7 |M.2 SSD |12980|10 |
|8 |CPUクーラー |13400|10 |
|9 |グラフィックボード|23800|10 |
+----+------------------+-----+----+
⛏ 商品番号を入力してください
9
⛏ 商品数量を入力してください
4
🛒 カートの中身
+----+------------------+-----+----+
|番号|商品名 |金額 |数量|
+----+------------------+-----+----+
|0 |CPU |40830|5 |
|1 |グラフィックボード|23800|4 |
+----+------------------+-----+----+
🤑 合計金額: 299350
😭 買い物を終了しますか?(yes/no)
yes
💸 購入を確定しますか?(yes/no)
yes
୨୧┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈結果┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈୨୧
🛍️ ️Yohei Gotoの所有物
+----+------------------+-----+----+
|番号|商品名 |金額 |数量|
+----+------------------+-----+----+
|0 |CPU |40830|5 |
|1 |グラフィックボード|23800|4 |
+----+------------------+-----+----+
😱👛 Yohei Gotoのウォレット残高: 700650
📦 DICストアの在庫状況
+----+------------------+-----+----+
|番号|商品名 |金額 |数量|
+----+------------------+-----+----+
|0 |CPU |40830|5 |
|1 |メモリー |13880|10 |
|2 |マザーボード |28980|10 |
|3 |電源ユニット |8980 |10 |
|4 |PCケース |8727 |10 |
|5 |3.5インチHDD |10980|10 |
|6 |2.5インチSSD |13370|10 |
|7 |M.2 SSD |12980|10 |
|8 |CPUクーラー |13400|10 |
|9 |グラフィックボード|23800|6 |
+----+------------------+-----+----+
😻👛 DICストアのウォレット残高: 299350
🛒 カートの中身
+----+------+----+----+
|番号|商品名|金額|数量|
+----+------+----+----+
+----+------+----+----+
🌚 合計金額: 0
🎉 終了