โฮมเพจ » ออกแบบเว็บไซต์ » หมายถึงข้อดีและข้อเสียของโคมไฟสแต็ค

    หมายถึงข้อดีและข้อเสียของโคมไฟสแต็ค

    เว็บสแต็ค มีการพัฒนามานานหลายทศวรรษด้วยความก้าวหน้าทางเทคโนโลยีและภาษาแบ็กเอนด์ ปัจจุบันเว็บที่ได้รับความนิยมสูงสุดสองแห่งคือ LAMP และ MEAN พวกเขาพึ่งพาเทคโนโลยีที่แตกต่างกันสองอย่างสำหรับภาษาแบ็กเอนด์ฐานข้อมูลและสภาพแวดล้อมเซิร์ฟเวอร์ คำว่า "stack" หมายถึง เทคโนโลยีที่ซ้อนทับกันเพื่อสร้างสภาพแวดล้อมของเว็บเซิร์ฟเวอร์.

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

    การพัฒนาหลอดไฟแบบดั้งเดิม

    นักพัฒนาส่วนใหญ่ควรรู้เกี่ยวกับ LAMP stack แบบดั้งเดิมเพราะมันมีมาตั้งแต่เว็บก่อน. โคมไฟ หมายถึง Linux, Apache, MySQL และ PHP. แต่ละชุดเหล่านี้เป็นชุดซอฟต์แวร์ส่วนบุคคลที่รวมกันเพื่อสร้างโซลูชันเซิร์ฟเวอร์อเนกประสงค์.

    เหตุผลที่ดีที่สุดที่จะยึดติดกับ LAMP คือ ความปลอดภัยและการสนับสนุนอย่างกว้างขวาง. มันมีมานานหลายทศวรรษและเป็นวิธีการพิสูจน์แล้วของการโฮสต์เว็บไซต์.

    เทคโนโลยีแบ็กเอนด์ทั้งหมดเช่น PHP และ MySQL เป็นที่รู้จักกันดีและ สนับสนุนโดยผู้ให้บริการโฮสต์รายใหญ่ทุกราย. หากคุณทำงานกับ LAMP stack คุณสามารถโฮสต์ได้ทุกที่ นอกจากนี้คุณจะได้รับ เข้าถึงเอนจิน CMS ที่นิยมมากที่สุด. WordPress, Drupal และ Joomla ทำงานบน PHP / MySQL.

    มี ตัวเลือกที่ปรับแต่งได้ ภายในสถาปัตยกรรม LAMP เช่น LEMP แทนที่ Apache ด้วย nginx คุณสามารถเรียกใช้ตัวแปรบนเซิร์ฟเวอร์ Windows ในรูปแบบสแต็ก WAMP.

    อย่างไรก็ตามซอฟต์แวร์หลักทั้งหมดรวมถึง Apache, MySQL และ PHP - ถูกเปิดแหล่งที่มา, และทำขึ้นเป็นหลักสำหรับ Linux นี่คือเหตุผลว่าทำไม Linux จึงเหมาะสมที่สุดสำหรับสภาพแวดล้อมเซิร์ฟเวอร์และนั่นเป็นสาเหตุที่ LAMP ได้ทดสอบเวลาในการพัฒนาเว็บไซต์ที่ทันสมัย.

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

    แบ็กเอนด์ JavaScript ด้วย MEAN

    Node.js เป็นเทคโนโลยีใหม่ล่าสุดสำหรับนักพัฒนาที่ตั้งใจจะรันแอปพลิเคชั่นที่ปรับขนาดได้ที่สร้างด้วย JavaScript ปม เพิ่มพลังให้กอง MEAN, และนำเสนอข้อได้เปรียบหลัก: ทุกอย่าง ทำงานในภาษาเดียว.

    หมายถึง หมายถึง MongoDB, Express.js, Angular.js, และแน่นอน Node.js. ตัวย่อนี้ไม่มีข้อกำหนดสำหรับระบบปฏิบัติการเซิร์ฟเวอร์หรือซอฟต์แวร์เซิร์ฟเวอร์ กองหมายถึง สามารถทำงานบนระบบปฏิบัติการใด ๆ, และโหนดยังมาพร้อมกับเซิร์ฟเวอร์ของตัวเองเพื่อจัดการ JS บนแบ็กเอนด์.

    คุณจะพบเอกสารและการสนับสนุนมากมายบนเว็บไซต์ Mean.io.

    แม้ว่าสแต็กนี้จะได้รับความสนใจจำนวนมาก แต่ก็ยังไม่มีที่ไหนใกล้กับจำนวนของการสนับสนุนที่มีเสถียรภาพในฐานะสแต็คไฟแบบดั้งเดิม.

    ดังนั้นทำไมทุกคนจะไปกับ MEAN เพราะมัน ในที่สุดเร็วขึ้น และ ง่ายต่อการปรับขนาด. MongoDB เป็น ฐานข้อมูล NoSQL ซึ่งปรับการค้นหาให้เหมาะสม การใช้งานจาวาสคริปต์ fullstack ยังช่วยปรับปรุงการพัฒนาเพราะภาษาหนึ่งใช้สำหรับส่วนหน้าและส่วนหลังทั้งหมด.

    บวกกับเฟรมเวิร์ก JS อื่น ๆ อีกมากมายกำลังตีตลาดเป็นโซลูชั่นที่มีเสถียรภาพ ตัวอย่างเช่น MEAN สามารถสลับไปเป็น MEEN สแต็ก แทนที่ Angular ด้วย Ember.

    โปรแกรมเมอร์จะรักกอง MEAN เพราะมัน แยกรหัสเพื่อการบำรุงรักษาและการเติบโต. สิ่งนี้ทำให้มัน ง่ายต่อการจัดระเบียบเว็บแอป JavaScript ของคุณเพื่อให้ทำงานในสภาพแวดล้อมที่เป็นธรรมชาติ.

    มีจำนวนมากที่ต้องเรียนรู้ในเรื่องนี้และนั่นอาจเป็นอุปสรรคที่ใหญ่ที่สุดในการเข้าสู่นักพัฒนาใหม่ การเรียนรู้เทคโนโลยีทั้งหมดที่จำเป็นในการจัดการแอพ MEAN นั้นอาจใช้เวลาเป็นเดือน แต่ถ้าคุณรักโหนดและต้องการรันทุกอย่างบน JavaScript นี่ก็คุ้มค่ากับความพยายาม.

    นี่คือแบบฝึกหัดเริ่มต้นบางส่วนเพื่อให้คุณเริ่มต้น.

    • คู่มือเริ่มต้นของ Absolute to Node.js
    • คู่มือการเริ่มต้นของ Felix's Node.js
    • รู้เบื้องต้นเกี่ยวกับ Express.js
    • เรียนรู้การสร้างเว็บแอปที่ทันสมัยด้วย MEAN
    • เริ่มต้นใช้งานด้วย Node.js, Express และ MongoDB

    PHP กับโหนด

    PHP มีมาตั้งแต่กลางทศวรรษที่ 90 และเป็นภาษาแบ็คเอนด์ที่เป็นที่นิยมมากที่สุด นักพัฒนาเว็บหลายคนเริ่มต้นด้วย PHP (หรือเรียนรู้ในที่สุด) PHP เพราะมันเด่นในทุกแพลตฟอร์มเว็บและผู้ให้บริการโฮสติ้ง.

    โหนดเป็นกรอบงานที่ใหม่กว่า แต่ความนิยมของมันเพิ่มขึ้นอย่างรวดเร็วเป็นพิเศษ ซึ่งรวมถึงความนิยมของ NPM ในฐานะผู้จัดการแพ็คเกจสำหรับนักพัฒนาเว็บและขยายขอบเขตไปสู่เฟรมเวิร์กส่วนหน้าอันทรงพลังเช่น Angular 2.

    ประโยชน์อื่น ๆ ของโหนดคือมัน มาพร้อมกับเว็บเซิร์ฟเวอร์ของตัวเอง. JavaScript คือรากของทุกสิ่งในกอง MEAN ดังนั้นถ้าคุณรัก JS คุณจะรักการสร้างเว็บแอป MEAN จริงๆ.

    นักพัฒนาหลายคนรู้สึกว่า PHP เป็นภาษาที่ออกแบบได้ไม่ดีนักเพราะผู้สร้าง, Rasmus Lerdorf ไม่ได้ออกแบบให้เป็นภาษา. PHP เริ่มเป็น โซลูชันทั่วไปสำหรับเว็บไซต์, และเติบโตอย่างรวดเร็วในห้องสมุดขนาดใหญ่ของฟังก์ชั่นที่ไม่เกี่ยวข้อง.

    แต่ด้วย PHP 7 พยายามแก้ไขข้อผิดพลาดหลายภาษาและฟรี OOP เฟรมเวิร์กเช่น Laravel, PHP เป็นภาษาที่ดีกว่าตอนนี้มากกว่าที่เคยเป็นมา.

    IMAGE: Stackoverflow

    ดังนั้นการถกเถียงทางภาษาจึงลงมา ทางเลือกส่วนตัวของคุณ. คุณชอบที่จะเขียน JavaScript หรือไม่? จากนั้นโหนดที่มีสแต็กหมายถึงอาจมีมูลค่าการพิจารณา.

    หากคุณรู้จัก PHP อยู่แล้วและต้องการที่จะยึดติดกับสิ่งที่คุณรู้ LAMP ก็เป็นเส้นทางที่ปฏิบัติได้เช่นกัน.

    ข้อดีและข้อเสียโดยรวม:

    มี หลายชั้น ของแต่ละเว็บสแต็คเพื่อเปรียบเทียบรวมถึงระบบปฏิบัติการซอฟต์แวร์เซิร์ฟเวอร์ฐานข้อมูลและภาษาเบื้องหลัง.

    (1) หมายถึงสแต็ก ด้วย รวมถึงเชิงมุม ซึ่งเป็นส่วนหน้ากรอบ ไม่มีกรอบงานใด ๆ ที่จำเป็นใน LAMP stack แต่คุณสามารถเพิ่มของคุณเองลงในแอพใดก็ได้ที่คุณสร้าง.

    (2) สำหรับระบบปฏิบัติการ LAMP stack จะมองหาอนุพันธ์ของ Linux. ปกติแล้ว Linux เป็นตัวเลือกที่ดีที่สุด สำหรับสภาพแวดล้อมเซิร์ฟเวอร์โดยไม่คำนึงถึงสแต็กและเป็นจริงสำหรับ MEAN เช่นกัน.

    (3) ตอนนี้ระบบปฏิบัติการของเซิร์ฟเวอร์เป็นเพียงซอฟต์แวร์คอมพิวเตอร์ แต่ไม่ใช่ ซอฟต์แวร์เว็บเซิร์ฟเวอร์. เพื่อให้ได้สิ่งนี้คุณต้องมีโปรแกรมเช่น Apache หรือ nginx LAMP ใช้ Apache เพราะเป็นหนึ่งในตัวเลือกที่เสถียรที่สุด.

    (4) MEAN ใช้เซิร์ฟเวอร์ Node.js ซึ่งก็คือ ส่วนหนึ่งของแพ็คเกจโหนด. มันยังค่อนข้างใหม่และในขณะที่มีการสนับสนุนมากมายโหนดก็ไม่ได้อยู่ใกล้กับชุมชนขนาดเดียวกับ Apache.

    (5) ยังต้องใช้เซิร์ฟเวอร์โหนด แบ็กเอนด์ของ JavaScript (ไม่มีส่วนขยาย) อาปาเช่ อนุญาตให้ใช้ภาษาแบ็กเอนด์ส่วนใหญ่, และมีส่วนขยายฟรีมากมายสำหรับการสนับสนุนที่ดีกว่า แต่ ณ ตอนนี้ Apache ไม่มีอะไรให้การสนับสนุน Node.

    (6) การจัดการฐานข้อมูล คุณจะพบที่ไหน ความแตกต่างที่ใหญ่ที่สุด. LAMP ใช้ MySQL สำหรับการจัดเก็บข้อมูลเชิงสัมพันธ์ในขณะที่ MEAN ใช้ MongoDB ซึ่งเป็นฐานข้อมูลที่ไม่เกี่ยวข้อง ฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์คือ เร็วกว่ามาก, และให้วิธีการปรับอัตราส่วนที่ง่ายขึ้นด้วยปริมาณการใช้งานที่สูงขึ้น.

    (7) พึงระลึกไว้เสมอว่า PHP ไม่ได้ จำกัด อยู่ที่ MySQL เท่านั้น. สามารถใช้ MongoDB และทางเลือกอื่น ๆ เช่น PostgreSQL หรือ SQLite เป็นเพียงที่นักพัฒนา PHP ส่วนใหญ่รู้จัก MySQL ดังนั้นจึงเป็นคู่แข่งหลักของกอง LAMP ทั่วไป.

    (8) หมายถึงสแต็คโดยทั่วไป วิ่งเร็วกว่า และ ขนาดใหญ่ขึ้น, แต่ต้องใช้เวลามากและความรู้เซิร์ฟเวอร์ในการเรียนรู้ระบบ โคมไฟกองอยู่ พยายามและความจริง, และพวกเขามา ออกจากกล่อง ด้วยโครงสร้างพื้นฐานที่ปลอดภัยที่สุดและการสนับสนุนที่กว้างที่สุดเท่าที่จะจินตนาการได้.

    (9) ภาษาการเขียนโปรแกรมสร้างความแตกต่างที่สำคัญระหว่างสองกอง LAMP ใช้งานได้บน PHP เป็นหลักซึ่งรวมถึง WordPress และ Laravel framework MEAN ทำงานบน ExpressJS / NodeJS สำหรับแบ็กเอนด์ที่มี AngularJS ที่ส่วนหน้า.

    (10) หมายถึง JavaScript แบบเต็มสแต็ค, และมีหลายสิ่งที่คุณจะต้องเรียนรู้เพื่อให้ทำงานได้ มันคือ ทางเลือกบ่อย ๆ ของ startups ใหม่ ยินดีที่จะผลักดันขอบเขตในการพัฒนาเว็บแอพ โคมไฟแบบดั้งเดิมมากขึ้นด้วย JS ในส่วนหน้า, PHP ในส่วนหลัง. มันถูกสร้างขึ้นมาสำหรับคนที่ต้องการเพียงแค่ รับเว็บไซต์ออนไลน์โดยไม่ต้องกังวลมากเกินไป.

    โปรดอ่านคู่มือการเปรียบเทียบนี้เพื่อเรียนรู้เพิ่มเติมอีกเล็กน้อย ตัวเลือกไม่ถูกหรือผิดแตกต่างกันและสร้างขึ้นสำหรับโครงการที่แตกต่างกัน.

    ห่อ

    ฉันจะบอกว่าเว็บไซต์ส่วนใหญ่โน้มตัวไปทางกอง LAMP เพราะผ่านการทดสอบแล้วและมีการจัดทำดัชนีคำถามและคำตอบที่เป็นประโยชน์มากมายใน Google หมายถึงยังคงเติบโตและได้รับการสนับสนุนมากมาย แต่อาจมีเทคนิคมากกว่าที่คนส่วนใหญ่ต้องการจัดการ.

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

    และหากคุณกำลังมองหาข้อมูลเพิ่มเติมเกี่ยวกับสแต็คทั้งสองฉันได้รวบรวมลิงก์ที่มีประโยชน์ไว้ด้านล่าง.

    • เรียนรู้การสร้างเว็บแอปที่ทันสมัยด้วย MEAN (thinkster.io)
    • Docker LAMP Stack Admin (jessesnet.com)
    • วิธีการติดตั้ง Linux, Apache, MySQL, PHP (LAMP) Stack บน Debian 8 (digitalocean.com)