คำถามติดแท็ก web-applications

เว็บแอปพลิเคชันคือแอปพลิเคชันที่เข้าถึงได้ผ่าน "เว็บ" ซึ่งอาจหมายถึงอินเทอร์เน็ตหรือเครือข่ายภายใน (อินทราเน็ต)

5
ให้ URL ที่เป็นมิตรกับเว็บไซต์และความเป็นจริงของรหัสฐานข้อมูล
เรามีฐานข้อมูลทรัพยากรไม่ว่าจะเป็นผลิตภัณฑ์โพสต์บล็อกหรืออะไร เราจำเป็นต้องออกแบบชุดรูปแบบ URL เพื่อระบุที่อยู่สำหรับเว็บไซต์สาธารณะ นี่คือสองตัวอย่างที่ผูก ID ฐานข้อมูล: https://www.youtube.com/watch?v=7FPS6llqhXw http://www.amazon.co.uk/gp/product/B000NHOMSQ นี่คือตัวอย่างที่เป็นมิตร: http://en.wikipedia.org/wiki/LED_circuit (เหลือบเล็ก ๆ น้อย ๆ ในชีวิตการท่องของฉันมี) ฉันชอบ URL ที่จดจำง่ายเนื่องจากคุณมีความคิดเกี่ยวกับสิ่งที่อยู่ท้าย URL เมื่อคุณเลื่อนหรือดูในอีเมลหรือเอกสาร ดีกว่าสำหรับ SEO หรือเคยเป็นมาก่อน จะเกิดอะไรขึ้นเมื่อเปลี่ยนชื่อเอกสารหรือผลิตภัณฑ์ อาจเป็นเพราะมันเปลี่ยนไป (Wiki อาจไม่เปลี่ยนแปลง แต่ทรัพยากรของเราสามารถทำได้) หรือเนื่องจากพิมพ์ผิดใช่ไหม ทรัพยากรของเรานั้นมีทั้งเทคนิคคำพูดยาว ๆ และข้อผิดพลาด นอกจากนี้เรายังมี ID ฐานข้อมูลซึ่งเป็นตัวเลข ลองดูแนวคิดสำหรับที่อยู่ของวิดีโอโดยใช้ร้านเช่าที่ให้เช่า: http://vidsyeah.com/video/sliding-doors/287171 ID นั้นชัดเจนและถูกใช้ในการค้นหา DB ละเอียด. บิตบานเลื่อนไม่ซ้ำกันและเพิ่งสร้างจากชื่อวิดีโอมันสามารถตรวจสอบได้บน GET ดังนั้นหากเข้าประตูร่อนและไม่ตรงกับสิ่งที่อยู่ใน doc 287171 จริง ๆ แล้วมันจะตอบสนอง …

7
การปิดบัง / ทำให้งงงวยรหัสฐานข้อมูลสาธารณะเป็น "แนวทางปฏิบัติที่ดีที่สุด" จริงหรือไม่?
ฉันได้ยินผู้คนบรรยายที่นี่และที่นั่นบนอินเทอร์เน็ตว่าเป็นวิธีที่ดีที่สุดในการปิดบังรหัสฐานข้อมูลสาธารณะในแอปพลิเคชันเว็บ ฉันคิดว่าพวกเขาส่วนใหญ่มีความหมายในรูปแบบและใน URL แต่ฉันไม่เคยอ่านอะไรมากไปกว่าคำพูดในเรื่อง แก้ไข : แน่นอนตอนนี้ที่ฉันถามนี้ฉันพบทรัพยากรบางอย่างในเรื่อง: /programming/2374538/obscuring-database-ids /programming/1895685/should-i-obscure-primary-key-values http://joshua.schachter.org/2007/01/autoincrement.html ลิงก์เหล่านี้ตอบสนองความอยากรู้ของฉันได้บ้าง แต่โพสต์ SO นั้นมีคะแนนโหวตไม่มากและไม่จำเป็นต้องอยู่ตรงกลางหัวข้อในบริบทนี้ดังนั้นฉันจึงไม่แน่ใจว่าจะต้องทำอะไรและบางคนอ้างว่าอันดับสาม ลิงก์นั้นเป็นของปลอม ฉันจะปล่อยให้โพสต์ที่เหลืออยู่ของฉันยังคงอยู่: ฉันเข้าใจความแตกต่างระหว่างความสับสนและความปลอดภัยรวมถึงวิธีที่ทั้งสองทำงานร่วมกันได้ แต่ฉันไม่สามารถจินตนาการได้ว่าทำไมสิ่งนี้ถึงมีความจำเป็น มีความจริงเกี่ยวกับเรื่องนี้หรือไม่มันเป็นเพียงความหวาดระแวงหรือเป็นเพียงการหลอกลวงโดยสิ้นเชิง? ฉันสามารถคิดหาวิธีที่จะทำ แต่แน่นอนมันเพิ่มความซับซ้อนมากในรหัสแอปพลิเคชัน สิ่งนี้จะเป็นประโยชน์ในสถานการณ์ใด หากนี่เป็นสิ่งที่ผู้คนมักทำกันบ่อยครั้งมันจะถูกปรับใช้อย่างไร Hashing ตัวระบุ? อื่น ๆ อีก? ดูเหมือนว่าจะทำงานมากมายเพื่อความปลอดภัยที่เพิ่มขึ้นไม่มาก ฉันไม่ได้มองหาวิธีแก้ปัญหาที่แท้จริงฉันแค่อยากได้ความคิดว่าคนอื่นจะทำอย่างไรในโลกแห่งความเป็นจริง นี่ถือเป็น "แนวปฏิบัติที่ดีที่สุด" จริง ๆ หรือเป็นการเพิ่มประสิทธิภาพขนาดเล็กที่มีมูลค่าเพียงเล็กน้อยหรือไม่? หมายเหตุ : ฉันคิดว่าบางคนอาจมีความคิดที่ผิด: ฉันไม่ได้แนะนำว่ารหัสที่ยากต่อการเดาจะเป็นกลไกความปลอดภัยเพียงอย่างเดียวแน่นอนว่าจะต้องมีการตรวจสอบการเข้าถึงตามปกติ สมมติว่าสิ่งเหล่านั้นอยู่ในสถานที่และเพียงแค่รู้ว่า id หรือ hashed id ของระเบียนนั้นไม่เพียงพอที่จะให้สิทธิ์การเข้าถึง

7
เว็บแอปพลิเคชันเป็นไคลเอนต์ REST API: วิธีจัดการตัวระบุทรัพยากร
แนวคิดหลายอย่างที่เกี่ยวข้องกับความขัดแย้ง REST ในหัวของฉันเมื่อฉันลองใช้มัน ฉันมี REST-ful back-end API ระบบที่เก็บตรรกะทางธุรกิจและเว็บแอปพลิเคชันที่มี UI จากแหล่งข้อมูลต่างๆเกี่ยวกับ REST (โดยเฉพาะอย่างยิ่งส่วนที่เหลือในการปฏิบัติ: Hypermedia และระบบสถาปัตยกรรม ) ฉันรู้ว่าฉันไม่ควรเปิดเผยตัวระบุดิบของหน่วยงานของฉัน rel="self"แต่กลับเชื่อมโยงหลายมิติด้วย พิจารณาตัวอย่าง REST api มีทรัพยากรที่ส่งคืนบุคคล: <Person> <Links> <Link rel="self" href="http://my.rest.api/api/person/1234"/> </Links> <Pets> <Link rel="pet" href="http://my.rest.api/api/pet/678"/> </Pets> </Person> ปัญหาเกิดขึ้นกับเว็บแอปพลิเคชัน สมมติว่ามันส่งคืนหน้าเว็บที่มีไฮเปอร์ลิงก์ไปยังเบราว์เซอร์: <body class="person"> <p> <a href="http://my.web.app/pet/???????" /> </p> </body> ฉันควรใส่hrefคุณลักษณะอะไร ฉันจะเก็บ URL เอนทิตี API ไว้ในเว็บแอปพลิเคชันเพื่อให้สามารถรับเอนทิตีได้เมื่อผู้ใช้เปิดหน้าเป้าหมายได้อย่างไร ข้อกำหนดดูเหมือนขัดแย้งกัน: …

2
เมื่อใดจึงเหมาะสมที่จะทำการคำนวณในส่วนหน้า
ทีมของฉันกำลังพัฒนาแอพพลิเคชั่นทางการเงินบนเว็บและมีข้อโต้แย้งกับเพื่อนร่วมงานที่จะทำการคำนวณ - แบ็คเอนด์หมดจดหรือเก็บฟรอนท์เอนด์ไว้บ้างไหม? คำอธิบายสั้น ๆ : เราใช้ Java (ZK, Spring) สำหรับ front-end และ Progress 4gl สำหรับ back-end การคำนวณที่เกี่ยวข้องกับคณิตศาสตร์ไม่ยอมใครง่ายๆ & ข้อมูลจากฐานข้อมูลจะถูกเก็บไว้ในส่วนท้ายดังนั้นฉันไม่ได้พูดถึงพวกเขา ฉันกำลังพูดถึงสถานการณ์ที่ผู้ใช้ป้อนค่า X จากนั้นจะเพิ่มค่า Y (แสดงในหน้าจอ) และผลลัพธ์จะปรากฏในฟิลด์ Z การดำเนินการ jQuery-ish ที่เรียบง่ายและบริสุทธิ์ฉันหมายถึง ดังนั้นสิ่งที่จะเป็นแนวปฏิบัติที่ดีที่สุดที่นี่: 1) เพิ่มค่าด้วย JavaScript ที่บันทึกจากการไปที่ส่วนหลังและส่วนหลังจากนั้นตรวจสอบความถูกต้องที่ส่วนท้าย "ในการบันทึก"? 2) รักษาตรรกะทางธุรกิจทั้งหมดไว้ในที่เดียวกัน - นำค่าไปยังส่วนหลังและทำการคำนวณที่นั่น? 3) ทำการคำนวณในส่วนหน้า; จากนั้นส่งข้อมูลไปยังส่วนหลังตรวจสอบความถูกต้องที่นั่นทำการคำนวณอีกครั้งและหากผลลัพธ์นั้นถูกต้องและเท่าเทียมกันแสดงให้ผู้ใช้เห็นหรือไม่ 4) มีอะไรอีกไหม? หมายเหตุ: เราทำการตรวจสอบความถูกต้องเบื้องต้นใน Java แต่ส่วนใหญ่ยังอยู่ใน back-end …

8
ข้อดี / ข้อเสียระหว่างการเน้นการประมวลผลฝั่งไคลเอ็นต์หรือฝั่งเซิร์ฟเวอร์
เหตุใดฉันจึงต้องการเขียนเว็บแอปที่มีการประมวลผลฝั่งเซิร์ฟเวอร์จำนวนมาก สำหรับฉันแล้วการเขียนโปรแกรมฝั่งไคลเอ็นต์เป็นข้อได้เปรียบอย่างมากเพราะจะทำให้เซิร์ฟเวอร์โหลดมากที่สุดเท่าที่จะเป็นไปได้เพราะมันจะต้องส่งข้อมูลไปยังไคลเอ็นต์ด้วยการประมวลผลที่น้อยที่สุด ฉันเห็นการเขียนแอปพลิเคชันบนเว็บน้อยมากนอกเหนือจากการเขียนฝั่งเซิร์ฟเวอร์และจัดการกับฝั่งไคลเอ็นต์เป็นมุมมองเท่านั้น ทำไมฉันถึงต้องการทำเช่นนี้? ข้อดีอย่างเดียวที่ฉันเห็นคือฉันสามารถเขียนเป็นภาษาใดก็ได้ที่ฉันต้องการ ( http://www.paulgraham.com/avg.html )

1
ทางเลือกแทน OAuth?
อุตสาหกรรมเว็บขยับ / เปลี่ยนไปใช้ OAuth เมื่อขยายบริการ API ไปยังผู้บริโภคและนักพัฒนาภายนอก มีความสง่างามในแบบง่าย ๆ .... และขั้นตอน OAuth แบบ 3 ขั้นตอนไม่ได้เลวร้ายเกินไป ... ฉันเพิ่งพบว่ามันเป็นตัวเลือกที่ดีที่สุด มีทางเลือกอื่นที่อาจดีกว่าและปลอดภัยกว่าหรือไม่ การอ้างอิงความปลอดภัยมาจาก URL ต่อไปนี้: OAuth 2.0 ไม่ดีต่อเว็บใช่ไหม OAuth 2 ที่ไม่มีลายเซ็นต์ที่ไม่ดีสำหรับเว็บ ฉันได้พบสิ่งนี้ในการแลกเปลี่ยนความปลอดภัยด้าน ITและคิดว่ามันรุนแรงจากมุมมองความปลอดภัย: OAuth / OpenID / Facebook Connect .. บ้าเหรอ? บางทีSAML 2.0เป็นทางเลือกหรือไม่ แล้วOpenIDล่ะ วัตถุประสงค์ของคำถามนี้มาจากมุมมองการเขียนโปรแกรม OAuth เป็นตัวเลือกที่ดีที่สุดที่มีอยู่ในปัจจุบันหรือไม่? มีตัวเลือกทางเลือกอื่นให้ฉันขยายเว็บแอปพลิเคชันของฉันไปยังผู้บริโภคที่ดีขึ้นจากมุมมองด้านความปลอดภัยมุมมองการนำไปใช้งานอายุการใช้งานที่ยาวนาน (ไม่ต้องทำงานซ้ำในอีกไม่กี่เดือน) ใบสมัคร

5
ข้อดีข้อเสียของสถาปัตยกรรมสงบ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา การสนทนาที่พบบ่อยที่สุดที่ฉันเคยเห็นเกี่ยวกับข้อดีและข้อเสียของ REST มีแนวโน้มที่จะกำหนดกรอบการสนทนาที่สัมพันธ์กับ SOAP ฉันไม่มีประสบการณ์อย่างใดอย่างหนึ่ง ขณะนี้ฉันกำลังเผชิญหน้ากับการตัดสินใจซึ่งการขาดประสบการณ์ของฉันกำลังทำให้ฉันประเมินยาก ฉันเริ่มพัฒนาแอปพลิเคชั่นที่มีองค์ประกอบหลายอย่าง - ส่วนใหญ่เป็นแง่มุมการจัดการที่อนุญาตให้เจ้าของดูแลหลายไซต์ - และส่วนต่อประสานผู้ใช้สาธารณะที่อนุญาตให้ผู้ใช้โต้ตอบกับข้อมูลที่อยู่ในโฮสต์ ฉันต้องประเมินผลกระทบของการอนุญาตให้ส่วนหลังเป็นโฮสต์ที่ใดก็ได้และสื่อสารกับอดีตผ่านสถาปัตยกรรมสงบ - ​​หรือเรียกร้องให้ส่วนประกอบทั้งสองอยู่ในโฮสต์เดียวกัน อะไรคือนัยสำคัญของการพัฒนาสถาปัตยกรรม RESTful โดยเฉพาะอย่างยิ่งเมื่อคำนึงถึงความสามารถในด้านต่อไปนี้: 1: ความปลอดภัย 2: ประสิทธิภาพ 3: ความซับซ้อนของส่วนต่อประสาน แก้ไข: ดูที่คำตอบของคำถามนี้ - ฉันควรชี้แจง ฉันไม่ได้มองหาการเปรียบเทียบกับ SOAP - เป็นภาพรวมของแอปพลิเคชัน REST และแอปพลิเคชันที่มีส่วนประกอบทั้งหมดอยู่ในโฮสต์เดียว (ขอบคุณสำหรับคำตอบเหล่านั้นแม้ว่า!)

5
มีข้อได้เปรียบอะไรบ้างจากการใช้การแสดงผลหน้าฝั่งเซิร์ฟเวอร์
ฉันกำลังพัฒนาแอปพลิเคชันเว็บและฉันได้เขียนทั้งเว็บไซต์ใน html / js / css และในแบ็กเอนด์ฉันมี servlets ที่โฮสต์บริการ RESTFUL บางส่วน ตรรกะการนำเสนอทั้งหมดทำผ่านการรับออบเจ็กต์ json และแก้ไขมุมมองผ่านจาวาสคริปต์ แอปพลิเคชันนั้นเป็นเครื่องมือค้นหาเป็นหลัก แต่จะมีบัญชีผู้ใช้ที่มีบทบาทแตกต่างกัน ฉันค้นคว้ากรอบบางอย่างเช่น Play และ Spring ฉันค่อนข้างใหม่ในการพัฒนาเว็บไซต์ดังนั้นฉันจึงสงสัยว่าการใช้การแสดงผลหน้าเว็บเซิร์ฟเวอร์จะมีประโยชน์อย่างไร มันคือ: ความเร็ว? การพัฒนาและขั้นตอนการทำงานง่ายขึ้น? เข้าถึงไลบรารีที่มีอยู่หรือไม่ มากกว่า? ถูกทุกข้อ?

5
โครงสร้างโฟลเดอร์แอปพลิเคชันเว็บ Java
ในฐานะผู้เริ่มต้นสู่ J2EE ฉันเพิ่งเริ่มพัฒนาโครงการของตัวเองตั้งแต่เริ่มต้นโดยใช้ Core ของ J2EE: Servlets & Jsps ฉันไม่สามารถประเมินว่าโครงสร้างโฟลเดอร์โครงการของฉันถูกต้องหรือไม่ นี่คือโครงสร้างโฟลเดอร์โครงการของฉัน ก่อนที่จะถามคำถามฉันยอมรับว่าฉันไม่สามารถตอบได้หรือไม่พิสูจน์ว่ามีคนถามฉันทำไมโครงสร้างโฟลเดอร์ประเภทนี้ คำถาม: มันเป็นสัญญาณที่ดีหรือไม่ที่จะนำ jsps ของฉันออกไปนอกเว็บอิน ถ้าไม่เป็นเช่นนั้นทำไม ถ้าใช่ทำไม มีแบบแผนโครงสร้างโฟลเดอร์มาตรฐานสำหรับเว็บแอปพลิเคชัน J2EE หรือไม่ฉันรู้ว่า maven ได้นำมาตรฐานบางอย่างมาใช้ แต่ยังคงเราสามารถปรับแต่งได้ตามความต้องการที่ฉันเชื่อ ฉันทำ googling ไปเล็กน้อยแล้วพบข้ออ้างอิงสองข้อ 1 2 ในคำตอบนั้นไม่ได้อยู่ในหน้าเดียวกันซึ่งฉันไม่สามารถสรุปได้ อะไรคือประเด็นที่ต้องพิจารณาในขณะที่จัดโครงสร้างของโฟลเดอร์สำหรับเว็บแอปพลิเคชัน J2EE ที่สำคัญคือ Jsps เนื้อหาแบบคงที่ควรเข้าที่ & ทำไม

4
ฉันจะขายซอฟต์แวร์ของฉันบนอินเทอร์เน็ตได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการขายซอฟต์แวร์ของฉันใน 'สุทธิ แต่ฉันไม่แน่ใจว่าจะทำการตั้งค่าผู้ขายทั้งหมดได้อย่างไร ฉันสามารถเข้าถึง Commerce Server 2009 ได้และฉันต้องการเป็นมืออาชีพเพื่อให้บัญชี PayPal เก่าหมด ฉันต้องรู้อะไรบ้าง / ขายสิ่งเล็ก ๆ น้อย ๆ โดยใช้ ASP.NET รับบัตรเครดิตและไม่ต้องทำอะไร

3
เหตุใดจึงใช้ REST แทนกลไกคล้าย RPC ในเว็บแอปพลิเคชัน
ฉันเพิ่งเริ่มต้นเมื่อเร็ว ๆ นี้ที่ บริษัท ที่ใช้เฟรมเวิร์กแบบกำหนดเองที่ค่อนข้างแปลกสำหรับเว็บแอปพลิเคชัน แทนที่จะใช้เว็บเซอร์ RESTful จะใช้กลไก RPC เพื่อสื่อสารกับเซิร์ฟเวอร์ การสื่อสารกับเซิร์ฟเวอร์ดูเหมือนจะเป็นการเรียกใช้ฟังก์ชั่นอย่างง่าย แต่ฟังก์ชั่นนั้นจะถูกดำเนินการบนเซิร์ฟเวอร์ไม่ใช่ไคลเอนต์ บนฝั่งเซิร์ฟเวอร์มีวิธีกำหนดฟังก์ชันที่ไคลเอ็นต์สามารถเรียกได้ รายละเอียดของการแปลสิ่งนี้เป็นคำขอ http ถูกแยกออกไปอย่างสมบูรณ์ ตอนนี้ฉันเพิ่งใช้ไปแค่ช่วงสั้น ๆ แต่มันก็ค่อนข้างสะดวก แต่ฉันสงสัยว่าข้อเสียของวิธีนี้คืออะไร ดูเหมือนคนอื่น ๆ จะทำมันแตกต่างกันไปซึ่งมักเป็นสัญญาณสำหรับฉันว่าฉันอาจจะทำอะไรที่โง่หรือฉลาดด้วยอัตราต่อรองที่สูงขึ้นในอดีต

2
เหตุใด Google จึงไม่ใช้ GWT ในแอปพลิเคชันส่วนใหญ่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว Google สร้างGoogle Web Toolkit (GWT)และไม่ได้ใช้เมื่อสร้างเว็บแอปพลิเคชันของตนเอง นี่หมายความว่า GWT ไม่เหมาะสำหรับการสร้างแอปพลิเคชันแบบไดนามิกหรือไม่? หรือมีปัญหาการแคช? หรือมีปัญหา RPC? หรือมีข้อกังวลอื่น ๆ ที่ทำให้ Google ไม่สามารถใช้เทคโนโลยีนี้ได้? EDIT: ฉันไม่ได้พูดที่นี่ว่า Google ไม่เคยใช้ GWT ในแอพใด ๆ แต่สิ่งที่ฉันอยากพูดทำไมพวกเขาถึงไม่ใช้มันในวงกว้าง?

2
การเขียนแอป Angular 2 ขนาดใหญ่พร้อมแอปขนาดเล็กหลายรายการ
หลังจากการอภิปรายและการวิจัยนาน 3 เดือนในการเลือกระหว่าง React (กับ Redux) และ Angular 2 ทีม front-end ใน บริษัท ของฉันได้สรุปว่าจะไปกับ Angular 2 (เนื่องจากมันเหมาะสมกับปัญหาของเรามากขึ้น) เราเข้าสู่ธุรกิจแอพระดับองค์กรซึ่งปัจจุบันประกอบด้วยเทคโนโลยี Front-End ที่แตกต่างกันมากมาย (ในขณะที่มีแบ็กเอนด์ RESTful ทั้งหมด) และเราต้องการแทนที่ทั้งหมดและมีเทคโนโลยีเดียวที่จะทำให้การฝึกอบรมและการควบคุมคุณภาพในอนาคตง่ายขึ้น ด้วยลักษณะของผลิตภัณฑ์ของเรามันมีมากมายและมีโมดูลอยู่ภายในซึ่งอยู่ในโดเมนอื่นและสามารถทำเป็นแอพแบบสแตนด์อโลนได้ แต่ตัวผลิตภัณฑ์นั้นใช้ URL เดียว ตัวอย่าง; เรียกผลิตภัณฑ์ของฉันเป็น SuperApp ในฐานะที่เป็น UI นั้น SuperApp มีระบบเข้าสู่ระบบมาตรฐานและการนำทางไปยังโมดูลย่อย / ผลิตภัณฑ์ย่อยเช่นเวิร์กโฟลว์ปรากฏดังต่อไปนี้ SuperApp ตรวจสอบผู้ใช้ ลืมรหัสผ่านของวิซาร์ด เข้าถึงหน้าสาธารณะโดยไม่ต้องตรวจสอบสิทธิ์ ผู้ใช้รับรองความถูกต้อง ระบบนำทาง บ้าน Sub-Product1 Sub-Product2 Sub-Product3 ข้อมูลส่วนตัว ... …

2
วิธีสร้างสถาปัตยกรรมเว็บแอปพลิเคชั่นบนเว็บแบบเรียลไทม์ที่มีน้ำหนักมาก
ในกระบวนการพัฒนาแอปพลิเคชั่นหน้าเดียวแบบเรียลไทม์ฉันได้ปรับใช้เว็บซ็อกเก็ตอย่างต่อเนื่องเพื่อช่วยให้ผู้ใช้ของฉันมีข้อมูลที่ทันสมัย ในช่วงนี้ฉันเสียใจที่สังเกตว่าฉันทำลายโครงสร้างแอปมากเกินไปและฉันไม่สามารถหาวิธีแก้ไขปรากฏการณ์นี้ได้ ก่อนที่จะทำความเข้าใจโดยเฉพาะบริบทเพียงเล็กน้อย: webapp เป็นเรียลไทม์ SPA แบ็คเอนด์อยู่ใน Ruby on Rails เหตุการณ์แบบเรียลไทม์ถูกผลักโดย Ruby ไปยังคีย์ Redis จากนั้นเซิร์ฟเวอร์ไมโครโหนดจะดึงข้อมูลกลับมาและส่งไปยัง Socket.Io; Frontend อยู่ใน AngularJS และเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ socket.io ในโหนด ที่ฝั่งเซิร์ฟเวอร์ก่อนเรียลไทม์ฉันมีตัวควบคุม / รูปแบบการแยกทรัพยากรที่ชัดเจนโดยมีการประมวลผลที่แนบมากับแต่ละ การออกแบบ MVC แบบคลาสสิกนี้ถูกทำลายอย่างสมบูรณ์หรืออย่างน้อยก็ข้ามเมื่อฉันเริ่มผลักสิ่งต่าง ๆ ผ่านเว็บซ็อกเก็ตกับผู้ใช้ของฉัน ฉันมีตอนนี้เป็นท่อเดียวที่ทั้งหมดของ app ของฉันไหลลงข้อมูลได้มากขึ้นหรือน้อยกว่าโครงสร้าง และฉันก็พบว่ามันเครียด ส่วนหน้าความกังวลหลักคือการทำซ้ำตรรกะทางธุรกิจ เมื่อผู้ใช้โหลดหน้าฉันต้องโหลดแบบจำลอง AJAX แบบดั้งเดิมของฉันผ่านสายโทรศัพท์ แต่ฉันต้องจัดการกับข้อมูลแบบเรียลไทม์ที่ท่วมท้นและฉันก็พบว่าตัวเองซ้ำซ้อนกับตรรกะทางธุรกิจฝั่งไคลเอ็นต์ของฉันเพื่อรักษาความมั่นคงของโมเดลฝั่งไคลเอ็นต์ของฉัน หลังจากการวิจัยบางอย่างฉันไม่พบบทความบทความหนังสือหรืออะไรก็ตามที่จะให้คำแนะนำเกี่ยวกับวิธีที่เราสามารถทำได้และควรออกแบบสถาปัตยกรรมของ webapp ทันสมัยโดยมีหัวข้อเฉพาะอยู่สองสามข้อ: วิธีจัดโครงสร้างข้อมูลที่ส่งจากเซิร์ฟเวอร์ไปยังผู้ใช้ ฉันควรส่งกิจกรรมเช่น "ทรัพยากรนี้ได้รับการอัปเดตแล้วและคุณควรโหลดซ้ำผ่านการโทร AJAX" หรือกดข้อมูลที่อัปเดตแล้วแทนที่ข้อมูลก่อนหน้านี้ที่โหลดผ่านการโทร AJAX ครั้งแรก วิธีการกำหนดโครงกระดูกที่สอดคล้องกันและปรับขนาดได้กับข้อมูลที่ส่ง? …

4
มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะอนุญาตให้ผู้ใช้กำหนดเขตข้อมูล?
โดยทั่วไปแล้วจะถือว่าเป็นวิธีปฏิบัติที่ไม่ดีที่จะอนุญาตให้ผู้ใช้สร้างฟิลด์ในฐานข้อมูลสำหรับเว็บแอพหรือไม่? ตัวอย่างเช่นฉันกำลังสร้างเว็บแอปสินค้าคงคลังที่บ้านสำหรับภรรยาของฉันและเธอจะต้องการกำหนดฟิลด์ของเธอเองสำหรับรายการที่แตกต่างกัน ฉันวางแผนที่จะอนุญาตให้เธอสร้างหมวดรายการและเพิ่ม "คุณสมบัติ" ให้กับหมวดหมู่เหล่านั้น คุณสมบัติจะเป็นคีย์ / ค่าที่จัดเก็บเป็นสตริง ถ้าเธอมีหมวดหมู่ที่เรียกว่า "Audio CDs" เธอสามารถเพิ่มฟีเจอร์สำหรับสิ่งต่าง ๆ เช่น "artist", "track" เป็นต้น แต่ในหมวดหมู่อื่นเช่น "เฟอร์นิเจอร์" เธอสามารถเพิ่มฟีเจอร์สำหรับสิ่งต่าง ๆ เช่น "วัสดุ "(ไม้พลาสติก ฯลฯ ) จากนั้นรายการใด ๆ อาจเป็นของหนึ่งหมวดหมู่ (หรือหลายกลุ่ม) เพิ่มคุณสมบัติเหล่านั้นไปยังรายการ ฉันสามารถดูปัญหาที่การค้นหาโดยคุณลักษณะเหล่านี้ต้องใช้การเปรียบเทียบสตริงไม่มีการตรวจสอบข้อมูล ฯลฯ ตามวิธีการแบบเปรียวบางทีมันอาจจะเป็นการดีกว่าถ้าให้เธอมากับหมวดหมู่และแอตทริบิวต์ใหม่และฉันจะต้องสร้างตารางใหม่ ในขณะที่เราไป ในตัวอย่างของฉันมันเป็นฐานข้อมูลขนาดเล็ก (เรา 2 คน) และจำนวนของเรกคอร์ดที่สร้างจะมีขนาดเล็กดังนั้นจึงไม่เลวร้ายเกินไป โดยทั่วไปแล้วผู้คนจะจัดการกับสิ่งนี้ใน "ชีวิตจริง" ได้อย่างไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.