mpp21x / PHP-GildedRoseRefactoringKata

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GildedRose Factoring Kata

這個是?

GildedRose Factoring Kata 社群 Domain Driven Design(DDD Taiwan) 所舉辦的讀書會 Legacy Code 讀書會 3rd (Ch 8, 9) 所分享的重構練習題目,程式碼來源 在這裡,這個 Repository 為筆者的完整練習過程,按照以下的需求撰寫測試,並且重構程式碼之後,再以 TDD 開發方式新增功能。

鍍金玫瑰團隊

需求


嗨,歡迎來到鍍金玫瑰團隊。如您所知,我們是一家小旅館,位於一線城市的黃金地段,旅館老闆是艾里森(Allison)。我們只銷售高級商品。不過每件商品都有一個銷售剩餘天數。隨著時間的推移,商品的品質會不斷下降。我們擁有一個可以更新庫存訊息的系統。有位名叫River的開發人員開發了這個系統,之後就離開了。你的任務是將新功能添加到該系統中,以便我們可以開始銷售新種類的商品。

  1. 所有商品(item)都有一個銷售剩餘天數(SellIn)值,表示該商品必須在該值所代表的天數內銷售出去。
  2. 所有商品都有一個品質(Quality)值,表明該商品當前的品質。
  3. 每天結束時,系統會降低每個商品的上述兩個值。
  4. 一但商品過了銷售剩餘天數之後還沒未賣出,那麼其每日品質下降的速度就會加倍。
  5. 商品的品質不能為負數。
  6. 陳年乾酪(Aged Brie)的品質值隨著時間的推移,不減反增。
  7. 商品的品質的上限為50。
  8. 魔法錘(Sulfuras)是一個傳奇商品,其銷售剩餘天數和品質都不會變化。
  9. 劇院後台通行證(Backstage passes),就像陳年乾酪一樣,其品質會隨著銷售剩餘天數的減少而提高-當離演出開始不到10天時,品質每日提高2;當不到5天時,品質值每日提高3,當演出結束後,品質歸0。

魔法(Conjured)商品每日品質下降速度是正常商品的2倍(新需求)

About


Languages

Language:PHP 100.0%