Tuesday, February 17, 2015

Refactoring กับ Performance


พอดีไปอ่านเจอในหนังสือ Refactoring to patterns เลยอยากมาแชร์ครับ

คือเรามักจะกังวลไปก่อนว่า เวลาเราทำการRefactorให้Functionมันเล็กๆ แล้ว มันเรียกต่อๆกันเยอะๆแล้วมันจะต้องมีปัญหาเรื่องPerformanceตามมา

ด้วยเหตุผลนี้ เราก็เลยไม่ค่อยอยากจะRefactorเป็นFunctionเล็กๆ กัน (หรือแค่ขี้เกียจก็ไม่รู้นะครับ ฮ่าๆๆ)

ซึ่งในความจริงแล้ว มันเป็นอย่างนั้นจริงหรือเปล่านะ

ในหนังสือเขาว่าไว้อย่างนี้ครับ


First, good designers don't prematurely optimize code

Second, chaining together small method calls often costs very little in performance—a fact you can confirm by using a profiler.

Third, if you do happen to experience performance problems, you can often refactor to improve performance without having to give up your small methods.

สรุปแบบง่ายๆ
ข้อแรก อย่าเพิ่งคิดเรื่อง Performance ตั้งแต่แรก
ข้อสอง มันมีผลกับ Performance นิดเดียวเท่านั้นแหละ ไม่เชื่อก็เอา Profiler มาจับดู
ข้อสาม ถ้าถึงเวลาเจอปัญหา Performance จริงๆ มันแก้ไขได้โดยไม่ต้องไปทำอะไรกับ Function เล็กๆเลยนะ ผมว่าแก้ง่ายกว่าเขียน Functionใหญ่ๆ ยุ่งๆอีก

ลองไปหาอ่านกันดูนะครับ