https://refactoring.guru/refactoring/catalog ได้อ่านเอกสารเรื่อง Refactoring :: When Do i Start ? ของคุณ J. B. Rainsberger แล้วคิดว่าน่าจะมีประโยชน์ จึงได้ทำการสรุปออกมา โดยเน้นย้ำเรื่องของ refactoring คืออะไร และอธิบายความแตกต่างระหว่าง refactoring กับ rewrite ส่วนเรื่องอื่นๆ เอาไว้สรุปกันวันอื่น เริ่มต้นอธิบายว่า Refactoring คืออะไร คือการกระทำเพื่อปรับปรุงการออกแบบของ code ที่มีอยู่แล้ว ถ้าไปดูความหมาย Refactoring จากคุณ Martin Folwer จะเขียนไว้ว่า เป็นการเปลี่ยนแปลงโครงสร้างของ code โดยไม่เปลี่ยนแปลงพฤติกรรมการทำงาน ซึ่งทางคุณ J. B. Rainsberger ได้อธิบายว่า มันจะขาดเรื่องของการปรับปรุงไป นั่นหมายความว่า Refactoring มันควรจะหมายถึง วิธีการหรือการกระทำ เพื่อแก้ไขปัญหาแบบเฉพาะเจาะจงใน code โดยให้ความสำคัญกับการปรับปรุง code ให้ดีขึ้นด้วย การปรับปรุงนั้นจะเป็นไปในแบบค่อยเป็นค่อยไป ปัญหาที่จะทำการแก้ไขและปรับปรุงนั้น จะถูกเรียกว่า Code smell ดังนั้นถ้าเราสามารถหา Code smell ได้ เราก็สามารถระบุปัญหา และส่งผลให้สามารถทำการ Refactoring ได้อย่างถูกจุด และสุดท้าย C