คำถาม Framework ต่างกับ Library อย่างไร ?
คำตอบ สะกดต่างกันไงละ !!
เป็นคำถามที่ยินบ่อย ๆ ว่ามันต่างกันอย่างไร
บ่อยครั้งจะตอบแบบผ่าน ๆ ไปว่า มันก็เหมือน ๆ กันนั่นแหละ
มันคือสิ่งที่เราไม่ได้สร้างขึ้นมาเอง
เอามาใช้เพื่อแก้ไขปัญหาของเราไป
แต่ถ้าอธิบายให้เห็นภาพก็คือ
Library นั้นคือสิ่งที่ code ของเราไปเรียกใช้งาน
ยกตัวอย่างเช่น
- การจัดการ log เช่น log4j
- การจัดการ JWT เช่น jsonwebtoken
ดังนั้น code ของเราเป็นส่วนหลักของการทำงานและจัดการ
จากนั้นจึงไปเรียก library ต่าง ๆ มาใช้งาน
ส่วน Framework หรือกรอบการทำงาน จะตรงข้ามกับ Library
นั่นคือ framework จะกำหนดว่า code เราควรเป็นอย่างไร อยู่ตรงไหน
โดยรูปแบบของ framework จะมีทั้ง
- Configuration-based
- Convention over Configuration
แล้ว code ของเราจะทำงานได้ตามที่กำหนดไว้
ซึ่ง framework จะเชื่อม code ต่าง ๆ ของเราเข้าด้วยกัน
ตามชื่อ กรอบการทำงานมาก ๆ
สิ่งที่แตกต่างอีกคือ การแก้ไข
ในส่วนของ Framework นั้นเราไม่สามารถแก้ไขส่วนการทำงานหลักหรือ core ได้
(ทำได้นะ แต่อย่าหาทำ)
แต่สามารถทำการ extend หรือสร้างส่วนขยายได้
ส่วนของ Library นั้นอยากทำอะไร ทำได้เลย
หรือบ่อยครั้งเปลี่ยนไปใช้ library อื่น ๆ ได้ง่ายมาก ๆ
สุดท้าย Framework นั้นมักจะช่วยให้เกิดคำว่า standard หรือมาตรฐานในการทำงานขึ้นมา
ส่วนของ Library เกิดมาเพื่อช่วยให้การพัฒนางง่ายขึ้น
ทั้งเรื่องของ DRY (Don’t Repeat Yourself) และการ reuse นั่นเอง
สรุปได้สวยดี จาก DiffereceBetween
ปล. จะรู้ไปทำไมว่ามันต่างกันอย่างไร ?