Long Method

Posted on:June 25, 2022

Long Method

คือ method ที่ code ทำงานยาวๆ หรือทำงานมากกว่า 1 อย่าง มีจำนวนบรรทัดที่มากจนเกินไป อาจส่งผลให้ team members ทำความเข้าใจและ maintain ได้ยากและอาจทำให้การพัฒนาช้าลงเรื่อยๆ

แค่ไหนที่เรียกว่า Long

long method ของแต่ละคนไม่เท่ากัน บางคนอาจจะบอกว่า 15 บรรทัด อีกคน 10 บรรทัด หรือบางคนบอก 58 .. ถ้าความยาวของบรรทัดมันเกินตัวเลขในใจไปแล้ว ให้ลองเริ่มตั้งคำถามว่า code ใน method นี้ยังทำงานเพื่อจุดประสงค์ 1 อย่างอยู่หรือป่าว 🤔

A heuristic

Refactoring

หนังสือ Refactoring แนะนำว่า เมื่อไรก็ตามที่เราจำเป็นต้อง comment code เพื่ออะไรอธิบายว่า method นี้ไว้ทำอะไร เราควรเขียนเป็น method แทน ใน method นั่น จะมี code ที่เราต้องการ comment แม้ว่าจะมีแค่บรรทัดเดียวก็ตาม Martin Fowler และ Kent Beck ให้เหตุผลว่า กุญแจสำคัญที่แท้จริงในการทำให้ method เล็กๆ เข้าใจได้ง่ายคือการตั้งชื่อที่ดี หากคุณมีชื่อที่ดีสำหรับ method คุณไม่จำเป็นต้อง jump to method เพื่อดูว่ามันทำงานยังไง หรือ comment เพื่อบอกว่ามันคืออะไร

Extract Method

วิธีการที่คุณจะเปลี่ยนจาก long method เป็น small functions คือ Extract Method ปัจจุบัน IDE มี Build in Refactor สะดวกในการทำสิ่งนี้มากกกกก ❤️ Extract Method

Introduce Parameter Object

ถ้า method มีการประกาศ parameters ที่มากจนเกินไป หลังจาก Extract Method ต้องส่ง parameters จำนวนมากตามไปด้วย มันจะทำให้ method อ่านยากขึ้น สามารถแก้ปัญหาด้วย Introduce Parameter Object

if-then/else, switch, loops