คำถาม Framework ต่างกับ Library อย่างไร ?
คำตอบ สะกดต่างกันไงละ !!

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

แต่ถ้าอธิบายให้เห็นภาพก็คือ

Library นั้นคือสิ่งที่ code ของเราไปเรียกใช้งาน

ยกตัวอย่างเช่น

  • การจัดการ log เช่น log4j
  • การจัดการ JWT เช่น jsonwebtoken 

ดังนั้น code ของเราเป็นส่วนหลักของการทำงานและจัดการ
จากนั้นจึงไปเรียก library ต่าง ๆ มาใช้งาน

ส่วน Framework หรือกรอบการทำงาน จะตรงข้ามกับ Library

นั่นคือ framework จะกำหนดว่า code เราควรเป็นอย่างไร อยู่ตรงไหน
โดยรูปแบบของ framework จะมีทั้ง

แล้ว code ของเราจะทำงานได้ตามที่กำหนดไว้
ซึ่ง framework จะเชื่อม code ต่าง ๆ ของเราเข้าด้วยกัน
ตามชื่อ กรอบการทำงานมาก ๆ

สิ่งที่แตกต่างอีกคือ การแก้ไข

ในส่วนของ Framework นั้นเราไม่สามารถแก้ไขส่วนการทำงานหลักหรือ core ได้
(ทำได้นะ แต่อย่าหาทำ)
แต่สามารถทำการ extend หรือสร้างส่วนขยายได้
ส่วนของ Library นั้นอยากทำอะไร ทำได้เลย
หรือบ่อยครั้งเปลี่ยนไปใช้ library อื่น ๆ ได้ง่ายมาก ๆ

สุดท้าย Framework นั้นมักจะช่วยให้เกิดคำว่า standard หรือมาตรฐานในการทำงานขึ้นมา

ส่วนของ Library เกิดมาเพื่อช่วยให้การพัฒนางง่ายขึ้น
ทั้งเรื่องของ DRY (Don’t Repeat Yourself) และการ reuse นั่นเอง

สรุปได้สวยดี จาก DiffereceBetween

ปล. จะรู้ไปทำไมว่ามันต่างกันอย่างไร ?