# Refactor

## Refactor กันหน่อย

**ViewController** ถ้าเห็นแล้วก็คงจะ งง ไม่รู้ว่ามันคือหน้าแสดง List todo ของเรา มาแก้ชื่อกันหน่อย

**คลิ๊กขวาที่ชื่อคลาส เลือก Refactor -> Rename** จากนั้น Xcode จะหาให้เราว่ามีที่ไหนใช้บ้าง แล้วแก้ทีเดียวเป็น **TodoListViewController** (จะเห็นว่ามีใช้ใน Storyboard ด้วย)

![Rename ViewController to TodoListViewController](https://144845262-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGk7Utff0rVWsqK4eYO%2F-LfNnP8izhM11IzoNxv-%2F-LfNnSxhoXK_2a03QOCV%2F41.gif?alt=media\&token=6603ada8-7abf-4e91-92e7-a50d404b5e11)

จากนั้นให้เราทำแบบเดียวกับ **AddNewItemViewController** เพราะตอนนี้มันไม่ได้ Add อย่างเดียวแล้วนะ เป็น **ItemDetailViewController**

ตามมาด้วย Protocol ของเรา **AddNewItemViewControllerDelegate** เป็น **ItemDetailViewControllerDelegate**

**อย่าลืมชื่อฟังก์ชั่นใน Protocol ด้วยนะ แล้วเราก็จะได้แบบนี้**

```swift
protocol ItemDetailViewControllerDelegate: class {
    func itemDetailViewController(controller: ItemDetailViewController, didAdd item: TodoItem)
    func itemDetailViewController(controller: ItemDetailViewController, didEdit item: TodoItem)
    func itemDetailViewControllerDidCancel(controller: ItemDetailViewController)
}
```

## จัด structure ไฟล์กันหน่อย

จากนั้นเราก็มาจัดให้มันเป็นกลุ่ม ๆ กันหน่อยจะได้หาง่าย

![](https://144845262-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGk7Utff0rVWsqK4eYO%2F-LfNnP8izhM11IzoNxv-%2F-LfNna7rrE-B4tVb9yta%2FScreen%20Shot%202019-05-21%20at%2012.11.37.png?alt=media\&token=fc888ae2-7327-4621-84a2-d0770b97dc20)

พอเราจัดเสร็จ ถ้าเราย้าย info.plist ไปอยู่ในโฟลเดอร์ ทีนี้จะ Build ไม่ผ่าน ให้เราตามไปแก้คอนฟิกเราด้วยที่ Build Settings ให้ search ว่า info.plist แล้วเปลี่ยน path ใหม่

![](https://144845262-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGk7Utff0rVWsqK4eYO%2F-LfNnP8izhM11IzoNxv-%2F-LfNnfVCkFLhuBLHKS0-%2FScreen%20Shot%202019-05-21%20at%2012.11.47.png?alt=media\&token=c2d55693-ec15-4d51-a39b-6572b5b3d369)

## จัด section ให้โค้ดของเราหน่อย

เวลา controller หรือ class ของเรามันใหญ่ขึ้นการหาฟังก์ชั่นหรือของต่าง ๆ ก็จะยากไปด้วย เราสามารถจัดกลุ่มในโค้ดของเราได้ด้วยการใส่

```swift
//MARK: - Group name
```

จะทำให้เราสามารถหาของได้ง่ายขึ้น

![จัดกลุ่มในโค้ดเป็นเรื่อง ๆ](https://144845262-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGk7Utff0rVWsqK4eYO%2F-LHNNzRbrwEc-FiKpa5_%2F-LHNOz50VuwallFnnP6J%2Fmark.gif?alt=media\&token=deac05e7-70c0-4d09-bd9d-e7921b009442)
