แสดงบทความที่มีป้ายกำกับ Refactoring แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Refactoring แสดงบทความทั้งหมด

วันจันทร์ที่ 29 มิถุนายน พ.ศ. 2558

Refactoring - Composing Methods

 จากหนังสือ Refactoring Improving Design Existing Code

บทที่ 6 Composing Methods

Extract Method

การแยก code ส่วนนึงออก โดยพิจารณาจาก
  • มี code ส่วนนี้เป็นเนื้อหาย่อยของชื่อ method หรือไม่
  • มี comment ที่บอกว่า code ส่วนนี้เป็นอีกเรื่องนึงที่ทำงาน
เราก็ลอง extract method ออกไป แต่ให่เราคำนึงถึงชื่อที่ตั้งให้ method ด้วยน่ะว่า
  • ชื่อต้องสื่อถึงการทำงานของ code ที่ extract ออกไป

Example

Example: No Local Variables

Example: Using Local Variables

Example: Reassigning a Local Variable


แล้ว rename outstanding => result เพื่อให้เข้าใจง่ายของการทำงานใน method นี้

Next Example

Inline Method

การยุบ Method ที่ไม่จำเป็นต้องมี อาจจะพิจารณาได้จาก
  • เรียกจากที่เดียว
  • method ทำงานแค่ 1 บรรทัด

Example

Inline Temp

การยุบ Object Temp ที่เรียกใช้งานเพียงครั้งเดียว

Example

Replace Temp with Query

การยุบ Object ที่เป็นการคิด หรือทำอะไรเพียงเล็กน้อย แล้ว Extract Method ออกไป

Example

Example

ใส่ final ไว้เพื่อให้มั่นใจว่าจะได้รับการ assign value เพียงครั้งเดียว

Introduce Explaining Variable

ค่าที่มีที่มาเพียงอย่างเดียวหรือเงื่อนไขชัดเจนสามารถแยกออกไปได้

Example

Example

Example with Extract Method

Split Temporary Variable

ค่าของ temp เป็นคนละเรื่องกัน ก็ควรแยกชื่อกัน เพื่อความเข้าใจที่ง่ายกว่า

Example

การใช้ object มาเป็น temp กับ loop ก็อาจจะมีปัญหาได้

Example

Remove Assignments to Parameters

ไม่ใช้ Object ที่ส่งมาโดยตรง

Example

Replace Method with Method Object


Example


Substitute Algorithm

Example