กลับไปหน้าบทความ

อ่าน 3 นาที

เฟรมเวิร์กซอฟต์แวร์

เฟรมเวิร์กซอฟต์แวร์คือซอฟต์แวร์ที่ให้ฟังก์ชันการทำงานทั่วไปที่สามารถนำกลับมาใช้ใหม่ได้ ซึ่งนักพัฒนาสามารถขยายหรือปรับแต่งเพื่อสร้างโซลูชันที่สมบูรณ์ได้...

เฟรมเวิร์กซอฟต์แวร์

เฟรมเวิร์กซอฟต์แวร์คือซอฟต์แวร์ที่ให้ฟังก์ชันการทำงานทั่วไปที่สามารถนำกลับมาใช้ใหม่ได้ ซึ่งนักพัฒนาสามารถขยายหรือปรับแต่งเพื่อสร้างโซลูชันที่สมบูรณ์ได้ เฟรมเวิร์กนี้มีเลเยอร์นามธรรมเหนือโค้ดและโครงสร้างพื้นฐานระดับล่าง ช่วยให้นักพัฒนาสามารถมุ่งเน้นไปที่การใช้งานตรรกะทางธุรกิจแทนที่จะสร้างฟังก์ชันการทำงานทั่วไปตั้งแต่เริ่มต้น โดยทั่วไปแล้ว เฟรมเวิร์กมีจุดประสงค์เพื่อเพิ่มผลผลิตโดยอนุญาตให้นักพัฒนามุ่งเน้นไปที่การตอบสนองความต้องการทางธุรกิจแทนที่จะเขียนฟังก์ชันการทำงานทั่วไปขึ้นมาใหม่[ 1 ]เฟรมเวิร์กมักจะรวมถึงโปรแกรมสนับสนุนคอมไพเลอร์ชุดพัฒนาซอฟต์แวร์ไลบรารีโค้ดชุดเครื่องมือ และAPIที่รวมส่วนประกอบ ต่างๆ เข้าไว้ ใน แพลตฟอร์ม หรือสภาพแวดล้อม ซอฟต์แวร์ ขนาดใหญ่

แตกต่างจากไลบรารี ที่โค้ดของผู้ใช้ควบคุม การไหลของโปรแกรมเฟรมเวิร์กจะใช้ หลักการ ควบคุมแบบกลับด้าน (inversion of control ) โดยกำหนดโครงสร้างโดยรวมและเรียกใช้โค้ดของผู้ใช้ ณ จุดขยายที่กำหนดไว้ล่วงหน้า (เช่น ผ่านเมธอดเทมเพลตหรือฮุก ) เฟรมเวิร์กยังให้พฤติกรรมเริ่มต้นที่ใช้งานได้ทันที กลไกที่มีโครงสร้างสำหรับการขยายและแกนหลักที่คงที่ซึ่งยอมรับส่วนขยาย (เช่น ปลั๊กอินหรือคลาสย่อย) โดยไม่ต้องแก้ไขโดยตรง

เฟรมเวิร์กแตกต่างจากแอปพลิเคชันที่สามารถขยายได้ เช่นเว็บเบราว์เซอร์ผ่านส่วนขยายหรือวิดีโอเกมผ่านม็อดตรงที่เฟรมเวิร์กเป็นโครงสร้างพื้นฐานที่ตั้งใจให้ไม่สมบูรณ์ ออกแบบมาเพื่อให้เติมเต็มผ่านจุดขยายต่างๆ โดยต้องปฏิบัติตามรูปแบบสถาปัตยกรรมเฉพาะ ตัวอย่างเช่น ทีมที่ใช้เฟรมเวิร์กเว็บในการพัฒนาเว็บไซต์ธนาคาร สามารถมุ่งเน้นไปที่การเขียนตรรกะทางธุรกิจของธนาคาร แทนที่จะจัดการรายละเอียดระดับต่ำ เช่น การประมวล ผลคำขอเว็บหรือ การ จัดการ สถานะ

การเปรียบเทียบกับห้องสมุด

เฟรมเวิร์กซอฟต์แวร์แตกต่างจากไลบรารีมาตรฐานในหลายประเด็นสำคัญ:

  • การควบคุมแบบกลับด้าน (Inversion of control ): ในไลบรารี โค้ดของผู้ใช้จะควบคุมการไหลของโปรแกรมและเรียกใช้ฟังก์ชันของไลบรารีตามความจำเป็น ในเฟรมเวิร์ก เฟรมเวิร์กจะควบคุมการไหลและเรียกใช้โค้ดของผู้ใช้ในจุดที่เฉพาะเจาะจง ซึ่งมักจะผ่านรูปแบบTemplate Method Pattern
  • พฤติกรรมเริ่มต้น: เฟรมเวิร์กจะให้ฟังก์ชันการทำงานที่ถูกนำมาใช้ล่วงหน้า (เช่น คุณสมบัติมาตรฐานหรือเวิร์กโฟลว์) ซึ่งสามารถใช้งานได้ทันทีหรือปรับแต่งภายในโครงสร้างที่กำหนดไว้ล่วงหน้า ในทางตรงกันข้าม ไลบรารีต้องการโค้ดจากผู้ใช้เพื่อประกอบและกำหนดค่าฟังก์ชันการทำงาน
  • ความสามารถในการขยายแบบมีโครงสร้าง: เฟรมเวิร์กช่วยให้สามารถเพิ่มคุณสมบัติใหม่หรือเปลี่ยนแปลงพฤติกรรมได้ผ่านกลไกที่มีโครงสร้าง เช่น ฮุก คอลแบ็ก หรือ API ในขณะที่ไลบรารีช่วยให้สามารถขยายได้ แต่ไม่มีจุดเชื่อมต่อที่กำหนดไว้ล่วงหน้า ต้องอาศัยโค้ดของผู้ใช้ในการเชื่อมต่อ
  • หลักการเปิด-ปิด : ตรรกะหลักของเฟรมเวิร์กโดยทั่วไปจะคงที่ อนุญาตให้มีการต่อเติม (เช่น ปลั๊กอินหรือคลาสย่อย) แต่ไม่อนุญาตให้แก้ไขตัวเฟรมเวิร์กเอง

ลวดลาย

ตามที่ Pree กล่าวไว้[ 2 ]เฟรมเวิร์กซอฟต์แวร์ประกอบด้วยจุดที่หยุดนิ่งและจุดที่ร้อนจุดที่หยุดนิ่งกำหนดสถาปัตยกรรมโดยรวมของระบบซอฟต์แวร์ กล่าวคือส่วนประกอบพื้นฐานและความสัมพันธ์ระหว่างส่วนประกอบเหล่านั้น สิ่งเหล่านี้ยังคงไม่เปลี่ยนแปลง (หยุดนิ่ง) ในทุกอินสแตนซ์ของเฟรมเวิร์กแอปพลิเคชันจุดที่ร้อนแสดงถึงส่วนที่โปรแกรมเมอร์ที่ใช้เฟรมเวิร์กเพิ่มโค้ดของตนเองเพื่อเพิ่มฟังก์ชันการทำงานเฉพาะสำหรับโครงการของตนเอง

ฟังก์ชันการทำงานที่จำเป็นสามารถนำไปใช้ได้โดยใช้รูปแบบ Template Method Patternซึ่งจุดที่คงที่เรียกว่าเมธอดที่ไม่เปลี่ยนแปลง (invariant methods) และจุดที่เปลี่ยนแปลงบ่อยเรียกว่าเมธอดแบบแปรผัน (variant or hook methods) เมธอดที่ไม่เปลี่ยนแปลงในคลาสแม่จะให้พฤติกรรมเริ่มต้น ในขณะที่เมธอดแบบผันผันในแต่ละคลาสย่อยจะให้พฤติกรรมที่กำหนดเอง

เมื่อพัฒนาระบบซอฟต์แวร์ที่เป็นรูปธรรมด้วยเฟรมเวิร์กซอฟต์แวร์ นักพัฒนาจะใช้ฮอตสปอตตามความต้องการและข้อกำหนดเฉพาะของระบบ เฟรมเวิร์กซอฟต์แวร์อาศัยหลักการฮอลลีวูดที่ว่า "อย่าโทรหาเรา เราจะโทรหาคุณเอง" [ 3 ] [ 4 ]ซึ่งหมายความว่าคลาสที่ผู้ใช้กำหนด (เช่น คลาสย่อยใหม่) จะได้รับข้อความจากคลาสเฟรมเวิร์กที่กำหนดไว้ล่วงหน้า นักพัฒนามักจะจัดการเรื่องนี้โดยการใช้เมธอดนามธรรมของ คลาสแม่

ข้อแลกเปลี่ยน

ข้อเสียเปรียบอย่างหนึ่งของการใช้เฟรมเวิร์กคือมันทำให้ขนาดของโปรแกรมเพิ่มขึ้น ซึ่งเป็นปรากฏการณ์ที่เรียกว่า " โค้ดบวม" (code bloat ) ปัญหานี้อาจรุนแรงขึ้นได้หากใช้เฟรมเวิร์กหลายตัว หรือบางครั้งอาจเป็นเฟรมเวิร์กที่แข่งขันกันเอง ในโค้ดเบสเดียวกัน

การเรียนรู้วิธีการใช้เฟรมเวิร์กอาจต้องใช้เวลามาก ประสิทธิภาพที่คาดหวังจากการใช้เฟรมเวิร์กอาจถูกหักล้างด้วยต้นทุนในการเรียนรู้ โดยเฉพาะอย่างยิ่งสำหรับเฟรมเวิร์กที่ทีมพัฒนาไม่คุ้นเคย[ 5 ]อย่างไรก็ตาม เมื่อเรียนรู้เฟรมเวิร์กแล้ว ความเร็วของทีมพัฒนาอาจเพิ่มขึ้นสำหรับงานในอนาคต

บางคนอ้างว่าเฟรมเวิร์กที่มีประสิทธิภาพมากที่สุดนั้นพัฒนามาจากการปรับปรุงแก้ไขโซลูชันที่มีอยู่แล้ว เช่น เฟรมเวิร์กแบบสำเร็จรูปที่พัฒนาโดยบุคคลที่สามเพื่อวัตถุประสงค์ทั่วไป มากกว่าการพัฒนาตั้งแต่เริ่มต้นใหม่ทั้งหมด

ตัวอย่าง

โดยทั่วไปแล้ว กรอบแนวคิดจะมุ่งเน้นไปที่ขอบเขตปัญหาเฉพาะด้าน ซึ่งรวมถึง:

กรอบการทำงานที่น่าสนใจบางส่วน:

ดูเพิ่มเติม

  • โลโก้ Wiktionaryคำจำกัดความของคำว่า " เฟรมเวิร์กซอฟต์แวร์"ในวิกิพีเดีย
  • โลโก้ Wikimedia Commonsสื่อที่เกี่ยวข้องกับเฟรมเวิร์กซอฟต์แวร์ในวิกิมีเดียคอมมอนส์
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Software_framework&oldid=1356278729 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เฟรมเวิร์กซอฟต์แวร์

เฟรมเวิร์กซอฟต์แวร์คือซอฟต์แวร์ที่ให้ฟังก์ชันการทำงานทั่วไปที่สามารถนำกลับมาใช้ใหม่ได้ ซึ่งนักพัฒนาสามารถขยายหรือปรับแต่งเพื่อสร้างโซลูชันที่สมบูรณ์ได้...

การเปรียบเทียบกับห้องสมุด

เฟรมเวิร์กซอฟต์แวร์แตกต่างจากไลบรารีมาตรฐานในหลายประเด็นสำคัญ:

ลวดลาย

ตามที่ Pree กล่าวไว้ [ 2 ] เฟรมเวิร์กซอฟต์แวร์ประกอบด้วย จุดที่หยุดนิ่ง และ จุดที่ร้อน จุดที่หยุดนิ่ง กำหนดสถาปัตยกรรมโดยรวมของระบบซอฟต์แวร์ กล่าวคือส่วนประกอบพื้นฐานและความสัมพันธ์ระหว่างส่วนประกอบเหล่านั้น สิ่งเหล่านี้ยังคงไม่เปลี่ยนแปลง (หยุดนิ่ง)...

ข้อแลกเปลี่ยน

ข้อเสียเปรียบอย่างหนึ่งของการใช้เฟรมเวิร์กคือมันทำให้ขนาดของโปรแกรมเพิ่มขึ้น ซึ่งเป็นปรากฏการณ์ที่เรียกว่า " โค้ดบวม" (code bloat ) ปัญหานี้อาจรุนแรงขึ้นได้หากใช้เฟรมเวิร์กหลายตัว หรือบางครั้งอาจเป็นเฟรมเวิร์กที่แข่งขันกันเอง ในโค้ดเบสเดียวกัน