Framework คือ

MVC คือ หนึ่งใน design pattern ที่ programming framework ใช้กันมากที่สุดในโลก

ผมมีคำถามว่า MVC มีประโยชน์อย่างไร (ห้ามไป google นะครับ)

.

.

.

.

.

ตอนที่ผมถามคำถามนี้กับตัวเอง คำตอบแรกในใจของผม คือ loosely coupling ระหว่าง M, V และ C เพื่อประโยชน์ในการถอดเปลี่ยน หรือทำ unit test

แต่วันนี้ คำตอบคำถามนี้ของผม จากเพื่อนร่วมงานคนหนึ่งคือ “เพื่อจะได้แยก code ออกตามการทำงาน และทำให้ดูง่าย” 

อื้มมม ก็ถูก

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

คำตอบในใจก็บอกว่า ใช่

พอถามตัวเองว่า ทำไมคำตอบนี้ไม่ใช่คำตอบแรกในใจ ก็ได้คำตอบว่า ส่วนตัวคิดอยู่เสมอว่า ไม่ว่าเราจะเขียนโดยใช้ MVC หรือไม่ เราก็ควรจะต้องทำให้ code ของเราดูง่ายอยู่แล้ว

ผมเลยคิดว่า จริงๆ แล้ว programmer มีความต้องการที่จะทำในสิ่งที่ดีๆ (เช่น การจัด code ให้เป็นระเบียบ) อยู่แล้ว เพียงแต่ว่า บางครั้งมันเข้าใจยาก มันเสียเวลา ฯลฯ การที่มีสิ่งที่มาแนะนำสิ่งที่ควรทำ พร้อมมี guideline ที่เข้าใจง่าย และปฏิบัติตามง่าย จึงน่าจะเป็นสาเหตุที่ทำให้ MVC แทบจะกลายเป็น defacto standard ของ web development ในยุคที่ผ่านมาจนถึงปัจจุบัน

 

และจากเรื่องนี้ทำให้ผมเข้าใจ คำว่า framework ที่แปลเป็นภาษาไทยว่า “กรอบวิธี” ในมุมที่ผมไม่เคยเข้าใจมาก่อน

ก่อนหน้านี้ผมเข้าใจเพียงว่า framework คือ การนำ library/tool/utility ที่เกี่ยวๆข้องกันในเรื่องหนึ่งๆ หลายๆ อันมารวมกัน เพื่อช่วยในงานทำสิ่งใดสิ่งหนึ่ง มาโดยตลอด โดยบางครั้งอาจจะต้องทำตาม step บางอย่าง เพื่อให้มันทำงานได้ เลยคิดว่านี่หละมั้ง “กรอบ”

เป็นผลให้ผมไม่เคยเข้าใจ ในเวลาผมได้ยินคำว่า framework จากสาขาอื่นๆ เพราะมันไม่เห็นดูเป็น library/tool/utility ตรงไหน มันกลับกลายเป็นวิธีที่บอกให้เราทำตาม อย่างโน้น อย่างนี้ เป็นขั้นๆ โดยมุ่งหวังให้ประสบความสำเร็จในสิ่งหนึ่งๆ ยกตัวอย่างเช่น framework ในวิชา SE หรือ framework ในพวก management

 

สรุป เราสามารถสร้าง programming framework ที่มีประโยชน์ได้ ด้วย framework นี้ (ขำๆ อย่าจริงจังมากนะครับ)

  1. มองหาส่วนใดใน code ที่ควรจะทำ แต่โปรแกรมเมอร์ส่วนใหญ่ละเลย
  2. ทำการเขียน code ที่เป็น guideline ในส่วนนั้น
  3. ตั้งชื่อ
  4. เตรียมคำอธิบายวิธีการทำตาม ที่เข้าใจง่าย
  5. เผยแพร่
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s