kingbabu / PotterShoppingCart

0 stars 0 forks source link

建議 #1

Closed hatelove closed 8 years ago

hatelove commented 8 years ago
  1. 所有的 TestMethod 開頭的 Test 都拼錯了
  2. 不要去測試測試類別裡面的 private function, 而該測試 production code 的 class 的 public function
  3. 要更熟悉一下 LINQ 的寫法,例如 .Select(Func).Sum() 通常可以直接寫成 Sum(Func);
  4. 不要隨便去動傳入的參數,除非你真的需要對原本的內容做處理。
  5. class HarryPotterDiscountCollection 的必要性評估
  6. getDiscount() 可以用 dictionary, 速度會比 switch case 更快。(接近 O(1))

最後的 public double GetShoppingcartTotalPrice(List<HarryPotter> books) 寫得很漂亮。

最大的問題是,在想要通過第二個測試案例的時候,就把七個測試案例需求的 production code 一次寫完了,會導致:

  1. TDD 節奏混亂
  2. 一次要想太多
  3. 最後重構的內容過多,成本增加,耦合增加

其他請見 commit history 裡面的 review comment

kingbabu commented 8 years ago

看起來最大要改的毛病是會 不知不覺一次想完production code