กระแสการเคลื่อนไหวที่เติบโตขึ้นในหมู่นักพัฒนากำลังท้าทายความซับซ้อนของการพัฒนาเว็บสมัยใหม่ด้วยการกลับไปใช้วิธีการที่เรียบง่ายกว่า การเปลี่ยนแปลงนี้เกี่ยวข้องกับการละทิ้ง frontend framework ที่ซับซ้อนและระบบ build เพื่อใช้ HTML, CSS และ JavaScript พื้นฐาน - เหมือนกับการพัฒนาเว็บในช่วงปลายทศวรรษ 2000
การอภิปรายเริ่มต้นจากประสบการณ์ของนักพัฒนาในการสร้างระบบจัดอันดับง่าย ๆ โดยใช้เทคโนโลยีเก่าที่พิสูจน์แล้ว แทนที่จะใช้ stack ที่ใช้ React สมัยใหม่ พวกเขาเลือกใช้ Sinatra framework ของ Ruby, ฐานข้อมูล SQLite และ server-side rendering ผลลัพธ์ที่ได้คือแอปพลิเคชันที่เร็วและเบา ซึ่งจุดประกายความหลงใหลในการเขียนโปรแกรมของพวกเขาขึ้นมาใหม่
ประโยชน์ด้านประสิทธิภาพของการใช้วิธีเรียบง่าย
เบราว์เซอร์สมัยใหม่ได้พัฒนาไปอย่างมาก ทำให้ระบบ build ที่ซับซ้อนหลาย ๆ อย่างไม่จำเป็นสำหรับแอปพลิเคชันพื้นฐาน นักพัฒนาพบว่า server-side rendering แบบเรียบง่ายสามารถทำงานได้ทันทีเมื่อ backend เร็วพอ วิธีการนี้ช่วยขจัด overhead ของ JavaScript framework ในขณะที่ยังคงให้ประสบการณ์ผู้ใช้ที่ยอดเยี่ยม
ความแตกต่างด้านประสิทธิภาพเด่นชัดเมื่อเปรียบเทียบกับเว็บไซต์สมัยใหม่ เว็บไซต์แบบเรียบง่ายโหลดเร็วและตอบสนองทันที ในขณะที่แอปพลิเคชันร่วมสมัยหลาย ๆ ตัวต้องดิ้นรนกับ JavaScript bundle ที่บวมโต ซึ่งสามารถทำให้เบราว์เซอร์ในอุปกรณ์เก่า ๆ ค้าง
การเปรียบเทียบเทคโนโลยี
แนวทางแบบเรียบง่าย (ยุค 2007):
- Backend: Ruby Sinatra framework
- ฐานข้อมูล: SQLite
- Frontend: แบบฟอร์ม HTML แบบธรรมดาและการ render ฝั่ง server
- การ Deploy: rsync ไปยัง VPS
- ปริมาณการใช้งาน network ทั้งหมด: ต่ำกว่า 200KB ต่อหน้า
แนวทางสมัยใหม่ (ยุค 2020s):
- Backend: Node.js / React พร้อมระบบ build ที่ซับซ้อน
- ฐานข้อมูล: หลายบริการและ APIs
- Frontend: JavaScript frameworks พร้อม npm dependencies
- การ Deploy: Kubernetes / containerization
- การใช้งาน Network: มักจะหลาย megabytes ต่อหน้า
ความกระตือรือร้นของชุมชนต่อแนวทางมินิมอล
ชุมชนนักพัฒนาตอบสนองด้วยความกระตือรือร้นต่อแนวทางกลับไปสู่พื้นฐานนี้ โปรแกรมเมอร์หลายคนรายงานว่าได้ค้นพบความสุขในการเขียนโค้ดขึ้นมาใหม่เมื่อพ้นจาก toolchain และกระบวนการ build ที่ซับซ้อน ความสามารถในการทำซ้ำและทดลองอย่างรวดเร็วโดยไม่ต้องต่อสู้กับไฟล์ configuration ได้พิสูจน์แล้วว่าเป็นการปลดปล่อย
คุณสามารถทำ state management ได้ง่าย ๆ ด้วยตัวแปรและฟังก์ชัน rerender React และอื่น ๆ ให้การอัปเดต DOM แบบละเอียดเพื่อประสิทธิภาพ แต่สำหรับแอปง่าย ๆ มันไม่สำคัญจริง ๆ
ความรู้สึกนี้สะท้อนการตระหนักรู้ที่กว้างขึ้นว่าแอปพลิเคชันหลาย ๆ ตัวไม่ต้องการความซับซ้อนที่ framework สมัยใหม่นำมา การส่งฟอร์มแบบเรียบง่าย การโต้ตอบพื้นฐาน และการแสดงข้อมูลตรงไปตรงมาสามารถจัดการได้อย่างมีประสิทธิภาพด้วยเทคโนโลยี vanilla
เมื่อ Framework สมัยใหม่ยังคงสมเหตุสมผล
อย่างไรก็ตาม การอภิปรายยังยอมรับข้อจำกัดของแนวทางเรียบง่าย แอปพลิเคชันที่ซับซ้อนซึ่งมีการโต้ตอบของผู้ใช้อย่างกว้างขวาง ฟีเจอร์การทำงานร่วมกันแบบเรียลไทม์ หรือการจัดการ state ที่ซับซ้อนอาจยังคงได้ประโยชน์จาก framework สมัยใหม่ ข้อมูลเชิงลึกที่สำคัญคือการจับคู่ความซับซ้อนของเครื่องมือกับความต้องการของโครงการ แทนที่จะใช้เทคโนโลยีล่าสุดเป็นค่าเริ่มต้น
นักพัฒนาบางคนสังเกตว่า framework มีค่าเมื่อต้องประสานงานทีมใหญ่ที่ทำงานใน codebase เดียวกัน โครงสร้างและแบบแผนที่พวกเขาให้ช่วยรักษาความสอดคล้องระหว่างผู้ร่วมงานหลายคน แม้ว่าจะไม่จำเป็นสำหรับโครงการเดี่ยว
ผลกระทบที่กว้างขึ้นสำหรับ Startup และโครงการเล็ก ๆ
แนวโน้มนี้มีความเกี่ยวข้องเป็นพิเศษสำหรับ startup และโครงการเล็ก ๆ ที่มักจะ over-engineer โซลูชันเริ่มต้นของพวกเขา แอปพลิเคชันที่ประสบความสำเร็จหลาย ๆ ตัวสามารถสร้างได้เร็วกว่าและดูแลรักษาได้ง่ายกว่าโดยใช้เทคโนโลยีที่เรียบง่ายกว่า ความซับซ้อนที่ลดลงยังหมายถึงต้นทุน hosting ที่ต่ำลงและกระบวนการ deployment ที่ง่ายขึ้น
การเคลื่อนไหวนี้แสดงถึงมากกว่าแค่ความคิดถึง - มันเป็นการตอบสนองที่ปฏิบัติได้จริงต่อความซับซ้อนที่เพิ่มขึ้นของเครื่องมือพัฒนาเว็บ เมื่อคอมพิวเตอร์มีประสิทธิภาพมากขึ้นและการเชื่อมต่ออินเทอร์เน็ตเร็วขึ้น การเพิ่มประสิทธิภาพที่ขับเคลื่อนการนำ framework มาใช้อาจมีความสำคัญน้อยกว่าที่เคยคิดไว้
การฟื้นคืนของแนวทางการพัฒนาเว็บแบบเรียบง่ายแสดงให้เห็นว่าอุตสาหกรรมอาจพร้อมที่จะตั้งคำถามว่าความซับซ้อนเท่ากับความก้าหน้าเสมอหรือไม่ สำหรับโครงการหลาย ๆ โครงการ เส้นทางไปข้างหน้าอาจเกี่ยวข้องกับการมองย้อนกลับเพื่อค้นพบพื้นฐานที่ทำให้การพัฒนาเว็บเข้าถึงได้และสนุกในตอนแรก
อ้างอิง: The Dumbest Thing I Could Do