ถาม: แต่นั่นก็หมายความว่าฉันจะต้องวางตรรกะทางธุรกิจไว้ใน front-end ในแอปพลิเคชันเว็บ Angular2ใช่มั้ย
ใช่. หากไม่ได้รับการสนับสนุนจากเซิร์ฟเวอร์ธุรกิจควรจะถูกนำไปใช้ที่ไหนสักแห่ง
หลังจากการเข้าซื้อกิจการของ Google Firebase กลายเป็นแพลตฟอร์มสำหรับนักพัฒนาแอพมือถือที่ไม่สามารถจ่ายได้ (หรือไม่ต้องการ) เพื่อปรับใช้แบ็กเอนด์ของตัวเอง ในขณะที่บริการส่วนใหญ่เป็นบริการที่มีการตัดทอน: การจัดเก็บข้อมูลการเข้าสู่ระบบการวิเคราะห์และบริการส่งข้อความเป็นความจริงที่ว่ามันยังให้บริการกับฟังก์ชั่นคลาวด์ (เรียงลำดับของ lambdas) ซึ่งสามารถใช้ อย่างไรก็ตามสำหรับแอพพลิเคชั่นระดับองค์กรหรือแอพพลิเคชั่นขนาดใหญ่ที่มีโดเมนที่ซับซ้อนและตรรกะทางธุรกิจการสนับสนุนประเภทนี้จะสั้น
ดังนั้นอย่างที่คุณอาจเดาได้ว่า Firebase ไม่ได้ยกเว้นเราจากการมีแบ็กเอนด์ที่ทุ่มเทให้กับการเป็นเจ้าภาพและดำเนินงานเฉพาะด้านธุรกิจ
ถาม: ถ้าวันหนึ่งฉันอยากจะสร้างแอพมือถือในอนาคตฉันจะต้องทำซ้ำรหัสตรรกะทางธุรกิจหรือไม่
ไม่จำเป็น. หากเว็บแอปถูกสร้างขึ้นบน Angular แพลตฟอร์มข้ามเช่นNativeScriptอาจอนุญาตให้คุณนำองค์ประกอบเว็บ libs ยูทิลิตี้รุ่น ฯลฯ มาใช้ซ้ำได้ฉันไม่ได้เจาะลึกเรื่องนี้ดังนั้นฉันจึงไม่สามารถรับรองความเข้ากันได้เต็มรูปแบบ ที่สำคัญวางอยู่บนTypeScriptทั้ง Angular และ NativeScript ต้องการให้เราใช้รหัสใน TS
เรื่องนั้นก็คือการที่จะเป็นเจ้าภาพ Javascript สำหรับการจัดจำหน่ายและการกำหนดรุ่นของมัน คำCDN
ถาม: ฉันคิดว่าทางเลือกอื่นคือสร้างแบ็กเอนด์ที่มีตรรกะทางธุรกิจและใช้ Firebase สำหรับการจัดเก็บข้อมูล แต่มันดูแปลกไปหน่อย (ฉันไม่สามารถใช้ ORM หรืออะไรบางอย่างในแบ็กเอนด์ของฉันโดยตรงเพื่อให้ได้เหมือนกัน ผลลัพธ์โดยไม่ต้องทำงานมากขึ้น?)
ข้อควรพิจารณาบางประการ
ในอีกด้านหนึ่งการโฮสต์การเปิดตัวการจัดการและการบำรุงรักษาฐานข้อมูลนั้นไม่ใช่เรื่องเล็กน้อย ไม่ต้องพูดถึงการจัดการด้านความปลอดภัยความสามารถในการปรับขนาดความพร้อมใช้งาน ฯลฯ ดังนั้นการมีผู้ให้บริการ DB ดูแลสิ่งเหล่านี้น่าสนใจ ไม่ใช่ความคิดที่บ้าในปัจจุบันที่มีฐานข้อมูลของเราอยู่บนคลาวด์ แน่นอนฉันจะไม่แนะนำสิ่งนี้ถ้าเราใช้มิดเดิลแวร์และแบ็คเอนด์สำหรับธนาคาร แต่มันก็สมเหตุสมผลสำหรับเซสชันของลูกค้าโปรไฟล์ผู้ใช้การกำหนดค่าตามความชอบและข้อมูลประเภทนี้ซึ่งโดยปกติแล้วจะอยู่ที่ฝั่งไคลเอ็นต์หรือข้อมูลที่เราไม่สนใจ
บนมืออื่น ๆ ที่มีของเรากลับสิ้นจะเป็นประโยชน์สำหรับเหตุผลง่ายๆ, decoupling
แทนที่จะเชื่อมโยงลูกค้าของเราเข้ากับบริการทุกประเภทที่เราไม่ได้จัดการและควบคุมเราปรับใช้แอปพลิเคชันฝั่งเซิร์ฟเวอร์จากที่เราดูแลสิ่งเหล่านี้เพื่อให้ลูกค้าของเราไม่ต้องกังวลเกี่ยวกับปัญหาต่างๆเช่นการปิดบริการ การเปลี่ยนแปลง นอกจากนี้เรายังได้ความเรียบง่ายเพราะแบ็คเอนด์ทำหน้าที่เหมือนซุ้ม
ถาม: ผู้คนมักจะจัดโครงสร้างแอพประเภทนี้อย่างไรถ้าพวกเขาต้องการใช้ประโยชน์จาก Firebase เป็นตัวอย่าง?
มันแตกต่างกันอย่างมากจากโครงการไปยังโครงการ ตัวอย่างเช่นเราใช้ Firebase + back-end
Firebase DBการใช้ข้อมูลร่วมกันระหว่างอุปกรณ์บัญชีการประชุม เช่นเดียวกับการเปลี่ยนแปลงเมื่อแบ็กเอนด์ของเราไม่สามารถใช้งานได้ชั่วคราวลูกค้าส่งการดำเนินการเขียนไปยังบันทึกซึ่งจะถูกซิงโครไนซ์ในภายหลัง
Firebase Cloud Messagesให้การแจ้งเตือนและหัวข้อการส่งข้อมูลแบบ upstream / downstream เราใช้บริการสำหรับการแลกเปลี่ยนข้อความ pub / sub
การวิเคราะห์ Firebaseส่วนใหญ่ใช้สำหรับการวัด
Back-endสำหรับทุกสิ่งที่เกี่ยวข้องกับธุรกิจอย่างเคร่งครัด