อ่าน 4 นาที
ซีไซด์ (ซอฟต์แวร์)
Seasideซึ่งเป็นคำย่อของ “Squeak Enterprise Aubergines Server with Integrated Development Environment” คือซอฟต์แวร์ คอมพิวเตอร์ เฟรมเวิร์กสำหรับพัฒนาเว็บแอป พลิ เค ชัน
ซีไซด์ (ซอฟต์แวร์)
| ชายทะเล | |
|---|---|
โลโก้ริมทะเล | |
ภาพหน้าจอของเว็บแอปพลิเคชันในโหมดพัฒนา | |
| นักพัฒนา | ทีมซีไซด์[ 1 ] |
| ปล่อย | 2002 |
| เวอร์ชันเสถียร | |
| เขียนเป็น | การสนทนาเล็กๆ น้อยๆ |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| แพลตฟอร์ม | IA-32 , x86-64 , ARM |
| มีจำหน่ายใน | ภาษาอังกฤษ |
| พิมพ์ | เฟรมเวิร์กเว็บ |
| ใบอนุญาต | เอ็มไอที |
| เว็บไซต์ | www.seaside.st |
| ที่เก็บข้อมูล |
|
Seasideซึ่งเป็นคำย่อของ “Squeak Enterprise Aubergines Server with Integrated Development Environment” คือซอฟต์แวร์ คอมพิวเตอร์ เฟรมเวิร์กสำหรับพัฒนาเว็บแอป พลิ เค ชัน ด้วยภาษาโปรแกรมSmalltalkโดยเผยแพร่เป็นซอฟต์แวร์โอเพนซอร์สฟรีภายใต้ใบอนุญาต MIT
Seaside มีสถาปัตยกรรมส่วนประกอบซึ่งสร้างเว็บเพจ เป็นโครงสร้าง ต้นไม้ของส่วนประกอบแต่ละส่วนที่มีสถานะโดยแต่ละส่วนประกอบจะห่อหุ้มส่วนเล็ก ๆ ของเพจไว้ Seaside ใช้continuationsเพื่อจำลองการไหลอิสระหลายรายการระหว่างส่วนประกอบต่าง ๆ[ 3 ]ดังนั้นจึงเป็นเฟรมเวิร์กเว็บที่ใช้ continuation [ 4 ]โดยอาศัยความสามารถในการจัดการสแต็กการทำงานของการใช้งานSmalltalk บาง อย่าง
คุณสมบัติหลัก
แม้ว่าการปรับปรุงการจัดการสถานะใน เอนจิ้น JavaScript ของเว็บเบราว์เซอร์ในภายหลัง จะทำให้แง่มุมนี้มีความสำคัญน้อยลงในปัจจุบัน แต่วิธีการจัดการสถานะของเบราว์เซอร์ของ Seaside (ผ่านcontinuations ) ถือเป็นจุดสนใจในช่วงปีแรก ๆ หลังจากการเปิดตัวในปี 2002 กลไกนี้ช่วยให้สามารถย้อนกลับและดำเนินการต่อได้ ซึ่งช่วยแก้ปัญหาทั่วไปหลายประการที่เกิดขึ้นกับแอปพลิเคชันเว็บที่กำลังทำงานอยู่ และรักษาสถานะบนฝั่งเซิร์ฟเวอร์ได้อย่างเพียงพอแม้ว่าจะใช้ปุ่ม 'ย้อนกลับ' 'ไปข้างหน้า' หรือ 'รีเฟรช' ของเว็บเบราว์เซอร์ก็ตาม เซิร์ฟเวอร์ที่ใช้ continuations ช่วยให้นักพัฒนาสามารถรักษาสถานะบนเซิร์ฟเวอร์ในลักษณะที่ปรับขนาดได้[ 5 ]
คุณลักษณะเด่นของ Seaside คือสภาพแวดล้อมการพัฒนาแบบบูรณาการ ซึ่งช่วยให้เข้าถึงเครื่องมือการพัฒนาและการสนับสนุนการดีบักภายในแอปพลิเคชัน ในโหมดการพัฒนา ข้อผิดพลาดที่ไม่ได้รับการจัดการจะถูกรายงานไปยังเว็บเพจ นักพัฒนาสามารถเข้าถึงและแก้ไขรหัสโปรแกรมและสถานะได้โดยตรงจากเว็บเพจ ทำให้กระบวนการระบุและแก้ไขข้อบกพร่องเกิดขึ้นภายในสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) [ 6 ]
แอปพลิเคชัน Seaside คือชุดของส่วนประกอบที่ทำงานร่วมกัน แต่ละส่วนประกอบจะจัดเก็บสถานะระหว่างการแสดงผลหน้าเว็บ และสามารถแสดงผลตัวเองลงใน สตรีม HTMLได้ ดังนั้นจึงเขียนส่วนประกอบเพียงครั้งเดียวแล้วนำไปใช้ซ้ำในส่วนอื่น ๆ ของแอปพลิเคชันได้อย่างง่ายดาย นอกจากนี้ Seaside ยังรองรับแนวคิดของงาน (tasks) ซึ่งช่วยให้นักเขียนโปรแกรมสามารถอธิบายตรรกะระดับสูงของการทำงานร่วมกันของส่วนประกอบได้
Seaside ไม่ได้เน้นการใช้เทมเพลต และไม่มีฟังก์ชันในการสร้างหรือใช้เทมเพลต HTML การสร้างมาร์กอัป HTML จะทำโดยโปรแกรม ( เฟรมเวิร์กการจัดการเนื้อหา Pier ที่ใช้ Seaside มีไวยากรณ์ wiki-markup สำหรับการสร้างเทมเพลต) Seaside ใช้callbackบนclosureเพื่อระบุการกระทำที่จะเกิดขึ้นเมื่อคลิกที่ลิงก์หรือส่งแบบฟอร์ม นักพัฒนาและผู้ใช้ Seaside โต้แย้งว่าวิธีนี้ช่วยบังคับใช้การแยกโครงสร้าง (มาร์กอัป) ออกจากเนื้อหาและการนำเสนอ ( Cascading Style Sheets (CSS)) [ 7 ]การผสมผสานระหว่างคอมโพเนนต์ callback และ closure ของ Seaside สามารถลดช่องว่างทางความหมายระหว่างเวิร์กโฟลว์ที่ซับซ้อนและการแสดงผลในโค้ดได้อย่างมาก[ 8 ]
Seaside รองรับAjaxผ่านการผสานรวมกับscript.aculo.usและjQueryนอกจากนี้ Seaside ยังรองรับเทคโนโลยี server-push แบบComet อีกด้วย [ 9 ] Seaside สามารถทำงานได้กับเว็บเซิร์ฟเวอร์ที่ใช้ Smalltalk หรือเว็บเซิร์ฟเวอร์อื่นๆ ที่ไม่ใช่ Smalltalk (Nginx, Apache)
ปรัชญา
ในช่วงไม่กี่ปีที่ผ่านมา แนวทางปฏิบัติที่ดีที่สุดบางประการได้รับการยอมรับอย่างกว้างขวางในวงการพัฒนาเว็บไซต์:
- แบ่งปันข้อมูลของรัฐให้น้อยที่สุดเท่าที่จะเป็นไปได้
- ใช้ URLที่สะอาด สุภาพ และมีความหมาย
- ใช้เทมเพลตเพื่อแยกโมเดลออกจากงานนำเสนอ
Seaside จงใจฝ่าฝืนกฎเหล่านี้ทั้งหมด Avi Bryant ซึ่งขณะนั้นทำงานอยู่ที่ Dabble DB ในปี 2006 ได้อธิบายว่าเป็นกรอบการทำงานที่ 'นอกรีต' โดยโต้แย้งว่าการปฏิเสธภูมิปัญญาดั้งเดิมของการพัฒนาเว็บอย่างรอบคอบและมีเหตุผลนี้ นำไปสู่รูปแบบที่มีประสิทธิภาพมากสำหรับการพัฒนาเว็บแอปพลิเคชัน[ 10 ]
ท่าเรือ
การพัฒนาหลักของ Seaside นั้นดำเนินการในPharo Smalltalk [ 11 ]มีพอร์ตสำหรับ Smalltalk เวอร์ชันอื่นๆ การพัฒนา Seaside ครั้งแรกนั้นทำบนSqueakในช่วงต้นทศวรรษ 2000 Michel Bany ได้นำพอร์ตไปยังVisualWorksผ่าน Seaside เวอร์ชัน 2.7; Cincom Systemsสนับสนุน Seaside เป็นส่วนหนึ่งของVisualWorksตั้งแต่ต้นปี 2008 Instantiations ประกาศการสนับสนุน Seaside ในแพลตฟอร์ม VAST (VA Smalltalk) เวอร์ชัน 8.0 ในปี 2009 แพลตฟอร์ม VAST ยังคงสนับสนุน Seaside อย่างต่อเนื่องจนถึงเวอร์ชันล่าสุด Esteban Maringolo ดูแลพอร์ต 2.8 รวมถึงส่วนเสริมอื่นๆ (เช่นscript.aculo.us ) สำหรับDolphin Smalltalk X6 [ 12 ] Gemstone Systems ได้นำพอร์ตไปยังGemstone/ S [ 13 ] พอร์ตเวอร์ชัน 2.8 เสร็จสมบูรณ์สำหรับ GemStone [ 14 ]และเวอร์ชันเบื้องต้นของ 3.0 ทำงานบนGNU Smalltalk 3.0a และเวอร์ชันต่อมา[ 15 ]
แพ็คเกจเว็บเซิร์ฟเวอร์ในไลบรารีมาตรฐานของRacket (ภาษาโปรแกรม)ใช้ปรัชญาที่คล้ายคลึงกันมาก โดยอิงจากคอนทินิวเอชันเช่นกัน[ 16 ]
คำวิจารณ์
- เมื่อเทียบกับเฟรมเวิร์กเว็บ อื่นๆ Seaside ใช้หน่วยความจำค่อนข้างมากการใช้งาน หนึ่งครั้ง อาจใช้ RAM หลายร้อยกิโลไบต์ แต่ในเวอร์ชัน 2.8 ที่ออกมาภายหลังได้ลดขนาดไฟล์ลงอย่างมาก (เช่น จากเดิมขนาด 200 KB เหลือเพียง 50 KB)
- โดยค่าเริ่มต้นSeaside ไม่ได้ใช้ โปรโตคอล การถ่ายโอนสถานะแบบ REST (Representational State Transfer ) แต่จะใช้ Uniform Resource Locator (URL) ในการเก็บข้อมูลคีย์เซสชัน และต้องสร้าง URL ที่มีความหมายขึ้นมาอย่างชัดเจน
โครงการโอเพนซอร์สที่ใช้มัน
โครงการโอเพนซอร์สจำนวนมากใช้ Seaside ซึ่งบางส่วนได้แก่:
- Magritte – กรอบงานเมตาดีสคริปชันที่ผสานรวมเข้ากับ Seaside อย่างแน่นหนา
- Pier – ระบบจัดการเนื้อหาและกรอบงานแอปพลิเคชันระดับสูงสำหรับ Seaside
- โครงการ ADK
โครงการที่เป็นกรรมสิทธิ์ซึ่งใช้งานสิ่งนี้
โครงการที่เป็นกรรมสิทธิ์หลายโครงการใช้ Seaside ซึ่งบางส่วนได้แก่:
- Dabble DB – แอปพลิเคชันฐานข้อมูลบนเว็บ[ 17 ]
- Cmsbox – ระบบจัดการเนื้อหา (CMS) ที่ netstyle.ch นำเสนอสำหรับตลาดสวิตเซอร์แลนด์
ดูเพิ่มเติม
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
- เว็บไซต์อย่างเป็นทางการ
- ชายทะเลบนGitHub
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ซีไซด์ (ซอฟต์แวร์)
Seasideซึ่งเป็นคำย่อของ “Squeak Enterprise Aubergines Server with Integrated Development Environment” คือซอฟต์แวร์ คอมพิวเตอร์ เฟรมเวิร์กสำหรับพัฒนาเว็บแอป พลิ เค ชัน
คุณสมบัติหลัก
แม้ว่าการปรับปรุงการจัดการสถานะใน เอนจิ้น JavaScript ของเว็บเบราว์เซอร์ในภายหลัง จะทำให้แง่มุมนี้มีความสำคัญน้อยลงในปัจจุบัน แต่วิธีการจัดการสถานะของเบราว์เซอร์ของ Seaside (ผ่าน continuations ) ถือเป็นจุดสนใจในช่วงปีแรก ๆ หลังจากการเปิดตัวในปี 2002...
ปรัชญา
ในช่วงไม่กี่ปีที่ผ่านมา แนวทางปฏิบัติที่ดีที่สุดบางประการได้รับการยอมรับอย่างกว้างขวางในวงการพัฒนาเว็บไซต์:
ท่าเรือ
การพัฒนาหลักของ Seaside นั้นดำเนินการใน Pharo Smalltalk [ 11 ] มีพอร์ตสำหรับ Smalltalk เวอร์ชันอื่นๆ การพัฒนา Seaside ครั้งแรกนั้นทำบน Squeak ในช่วงต้นทศวรรษ 2000 Michel Bany ได้นำพอร์ตไปยัง VisualWorks ผ่าน Seaside เวอร์ชัน 2.