What is Framework(s)? - A simplest explanation ever?

Share
What is Framework(s)? - A simplest explanation ever?
Photo by Xavi Cabrera / Unsplash
"Project นี้เราจะใช้ Spring Boot framework สำหรับ backend นะ..."

บทสนทนาทั่วไปที่เราคงจะเคยได้ยินมาอยู่เป็นประจำ ไม่ว่าคุณจะเป็น frontend หรือ backend คำว่า framework ก็เป็นสิ่งที่ทุกคนนั้นพูดถึงอยู่เป็นประจำ

Framework...Framework...Framework... – เป็นคำที่คนที่อยู่ในวงการ Software Engineer น่าจะได้เคยได้ยินหรืออย่างน้อยก็ต้องเคยพูดถึงมันบ้างซักครั้งแหละ

ซึ่งก็เคยมีคนถามผู้เขียนเหมือนกันว่า

พี่ๆ แล้ว Framework มันคืออะไร?

แน่นอนเราก็เอาคำว่า framework ไปใส่ใน Google Translate มันก็จะแปลว่าาา

ex-best friend before AI

กรอบ...โครง...เค้าโครง...ถ้าเราเอามาแปลซื่อ ๆ แบบนี้ ก็งงสิครับ ซึ่ง ณ ตอนนั้นผู้เขียนก็ไม่สามารถอธิบายได้ว่า Framework มันคืออะไรได้อย่างเต็มปาก นอกจากคำแปลที่ได้จาก Google Translate ที่ไม่ได้ช่วยให้เราเข้าใจมันมากขึ้นเลย


ซึ่งเวลาก็ได้ผ่านไปโดยที่คำถามนี้ก็ยังอยู่ในหัวของผู้เขียนตลอดเวลา จนกระทั่งวันหนึ่งผู้เขียนกำลังมองหาเก้าอี้ใหม่ที่จะนำมาใช้ในครัวอยู่ ซึ่งแน่นอนเราก็ต้องหาจากหลาย ๆ ที่ไม่ว่าจะเป็น IKEA, SB Furniture, Index Living, etc

ซึ่งแน่นอน แต่ละแบรนด์ก็มี design ที่แตกต่างกัน หรือ บางทีก็ตอบโจทย์คนละอย่างกัน

"เปรี้ยง เสมือนท้องฟ้าวิปริตแปรปรวนทันใด อังกอร์" ไม่ใช่! อยู่ดี ๆ ผู้เขียนก็เข้าใจว่า เราจะอธิบายคำว่า Framework ให้มัน simple ที่สุดได้ยังไง

Then, what is Framework?

ไหนแล้วมันคืออะไร

ให้เราลองเปรียบว่าถ้าเราอยากจะสร้าง service ซักตัว ก็เหมือนการที่เราอยากได้เก้าอี้ตัวนึง

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

แน่นอนการสร้าง service ก็เหมือนกัน ถ้าเราจะสร้างมันตั้งแต่ต้นเลย เราก็ทำได้เช่นกัน แต่แน่นอนก็ต้องใช้ทั้งเวลา และ แรงกาย แรงใจ อย่างมากเพื่อที่จะสามารถให้มันใช้บน production ได้

ดังนั้น Framework ต่าง ๆ เราที่เลือกใช้ก็เหมือนพวกแบรนด์เฟอร์นิเจอร์ที่เราไปหาซื้อเก้าอี้นั่นแหละ

ยกตัวอย่าง IKEA ถึงแม้เราจะต้องเอามาต่อเอง แต่อย่างน้อยเค้าก็ได้เตรียมขนาดไม้ที่ถูกต้อง น๊อตที่ต้องใช้ แล้วยังมี instruction มาให้เราด้วยว่าต้องเริ่มจากจุดไหนไปจุดไหน ทำให้เราสามารถสร้างเก้าอี้โดยใช้เวลาน้อยที่สุดและมั่นใจแน่ ๆ ว่าเราจะนั่งมันได้ ... ถ้าประกอบถูกอ่ะนะ

ดังนั้น Framework ที่เราพูดถึงหรือเลือกใช้กันนั้นก็คือสิ่งที่ถูกเตรียมไว้เพื่อให้เราสามารถสร้างสิ่งต่าง ๆ ได้อย่างง่ายและรวดเร็วยิ่งขึ้น ซึ่งแต่ละ Framework ก็มี document ให้เราทำตามได้ เช่นเดียวกับ instruction ของเก้าอี้จาก IKEA หรือ แบรนด์อื่น ๆ

ซึ่งแต่ละ Framework ก็จะมีจุดประสงค์หรือจุดเด่นของตัวเองแตกต่างกัน เช่นเดียวกับเก้าอี้จากแบรนด์ต่าง ๆ ที่ถึงแม้จะมีไว้นั่งเหมือนกัน แต่ก็อาจจะ design มาเพื่อจุดประสงค์ที่แตกต่างกันก็เป็นได้


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

หวังว่าบทความนี้จะเป็นประโยชน์ไม่มากก็น้อย

💡
Fun Fact: จริง ๆ ผู้เขียนนึกเรื่องนี้ได้ตอนขับรถอยู่แต่เปลี่ยนเนื้อหาเพื่อความ smooth ของบทความ 😂

Read more

Distributed Decision Making

Distributed Decision Making

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

By Chokchai Phatharamalai
Risk Management: The Hard Test

Risk Management: The Hard Test

ท้ายหนังสือ Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency ของ Tom DeMarco ได้ให้เทคนิคใหม่ในการจัดการความเสี่ยงกับผม ทอมสอนว่าในการทำงานยุคปัจจุบัน งานมีความเสี่ยงกระจายอยู่เต็มไปหมด ซึ่งในความเสี่ยงนั้น เรามีโอกาสโชคดีและมีโอกาสโชคร้าย การจัดการความเสี่ยงเป็นสิ

By Chokchai Phatharamalai
วิธีปรับเวลาการนอน

วิธีปรับเวลาการนอน

ผมเดินทางกลับมาจาก Conference ของ Berkeley ที่ซานฟรานซิสโก เครื่องลงที่สนามบินสุวรรณภูมิประมาณ 22:30 น. กว่าจะถึงบ้านก็เกือบเที่ยงคืน ยังดีที่ขากลับไม่เหนื่อยเท่าขาไป เพราะลองซื้อหมอนรองคอจาก Duty Free ที่ซานฟรานซิสโกมาใช้ดู หมอนเป็นลายการ์ตูน มีรูปสะพาน

By Chokchai Phatharamalai
เร็วแค่ไหนก็ไร้ค่า ถ้าไปผิดทาง

เร็วแค่ไหนก็ไร้ค่า ถ้าไปผิดทาง

อีกบทเรียนที่ผมได้จากหนังสือ Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency ของ Tom DeMarco คือ ทำไมองค์กรใหญ่ ๆ ถึงยึดมั่นกับ Efficiency กันนัก Efficiency คืออะไร? Efficiency แปลว่า "ประสิทธิภาพ" ยกตัวอย่างเช่น

By Chokchai Phatharamalai