ฉันพยายามที่จะเข้าใจภูมิทัศน์ของวิธีการที่แตกต่างกันและแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการพัฒนา JavaScript ฝั่งไคลเอ็นต์ที่ซับซ้อน
ฉันไม่แน่ใจว่าจะติดป้ายประเภทของแอปพลิเคชันนี้ได้อย่างไรอาจเป็นAJAXหรือRIA ที่หนักหน่วง (แต่ไม่ใช่ปลั๊กอินเช่น Flash / Silverlight) ฉันหมายถึงเว็บแอปที่มีคุณสมบัติเหล่านี้:
- จำลอง UX ของเดสก์ท็อปแบบเนทีฟ / เนทีฟใน JavaScript
- มีพฤติกรรมส่วนใหญ่ / ทั้งหมดใน JS ฝั่งไคลเอ็นต์โดยใช้เซิร์ฟเวอร์เป็น data-API (JSON / Html-Templates)
สิ่งนี้ตรงกันข้ามกับการใช้เว็บเซิร์ฟเวอร์สำหรับการแสดงผล UI ซึ่งสร้าง HTML ทั้งหมดในรูปแบบการรีเฟรชหน้า
ตัวอย่างบางส่วนคือ:
- Google Docs / Gmail
- MindMeister
- การพิจาณาติดตาม
เมื่อเราก้าวไปข้างหน้าสู่ HTML5 ฉันสามารถเห็นรูปแบบของการพัฒนา RIA นี้ด้วย JavaScript จำนวนมากกลายเป็นเรื่องปกติและจำเป็นในการแข่งขัน
คำถาม: ดังนั้นวิธีการทั่วไปที่เกิดขึ้นในการจัดการการพัฒนา JS แบบหนักเหล่านี้คืออะไร?
รหัสฝั่งไคลเอ็นต์ในขณะที่แอพเติบโตขึ้นในฟีเจอร์นั้นมีความซับซ้อนอย่างมาก มีปัญหาในการปรับความพยายามในการพัฒนาในหลาย ๆ ทีมด้วย JS ดิบ (หรือดังนั้นฉันได้ยินและเชื่อมั่นได้ดี)
Google ได้เข้าหาปัญหาโดยการสร้าง GWT ที่รวบรวมจากภาษาระดับสูงกว่า (Java) ถึง JS โดยพึ่งพาโครงสร้างพื้นฐานการพัฒนาที่มีอยู่ซึ่งภาษาระดับสูงกว่ามี (Eclipse, เครื่องมือพิมพ์ดีดแรง, เครื่องมือการปรับโครงสร้างใหม่) พร้อมกับเบราว์เซอร์ที่เข้ากันได้ ปัญหาอื่น ๆ อยู่ห่างจากผู้พัฒนา
มีเครื่องมืออื่น ๆ เช่น Script # for C # ที่ทำสิ่งที่คล้ายกัน ทั้งหมดนี้ทำให้ JS มากขึ้นในบทบาทของ IL (ภาษาระดับกลาง) กล่าวคือ "คุณไม่เคยเขียนด้วยภาษาระดับต่ำอีกต่อไป"
แต่ 'คอมไพล์ถึง JS' นี้ไม่ใช่วิธีการเดียว ไม่ชัดเจนว่า GWT เป็นวิธีการที่โดดเด่น ... หรือจะกลายเป็นจริง
ผู้คนกำลังทำอะไรกับ JavaScript ลูกค้าที่รวย คำถามเกี่ยวกับการปรับทิศทาง:
- ร้านค้าส่วนใหญ่สร้างหัตถกรรมด้วยตนเอง (บน libs เช่น jQuery และคณะ)
- หรือมีวิธีการที่แตกต่างกันมากมายโดยไม่มีแนวปฏิบัติที่ดีที่สุดเกิดขึ้นอย่างชัดเจน?
- ร้านค้าส่วนใหญ่หลีกเลี่ยงการพัฒนามาตราส่วน RIA เพื่อให้ง่ายต่อการพัฒนารูปแบบฝั่งเซิร์ฟเวอร์ / หน้าวาดใหม่หรือไม่? ถ้าเป็นเช่นนี้จะมีอายุหรือไม่
- การรวบรวม JS อาจจะเป็นแนวโน้มในอนาคตหรือไม่ หรือนี่มันผิดปกติเหรอ?
- พวกเขาจัดการความซับซ้อนและการสร้างโครงสร้างใหม่ของไคลเอ็นต์ JS ได้อย่างไร
- การทำให้เป็นโมดูลและการกระจายการทำงานข้ามทีม?
- แอปพลิเคชั่นการบังคับใช้และการทดสอบรูปแบบฝั่งไคลเอ็นต์เช่น MVC / MVP เป็นต้น
ดังนั้นแนวโน้มที่จะเกิดขึ้นในอนาคตของ JavaScript และ HTML5 ที่หนักหนาสาหัสของเราคืออะไร
ขอบคุณ!