Udemy

Why GraphQL?

วิดีโอการสอนฟรีจาก Andrew Mead
A Full-stack Developer & Teacher
คะแนน: 4.5 จากคะแนนเต็ม 5คะแนนวิทยากร
4 หลักสูตร
ผู้เรียน 439,451 คน
Why GraphQL?

เรียนรู้เพิ่มเติมจากหลักสูตรเต็มรูปแบบ

The Modern GraphQL Bootcamp (with Node.js and Apollo)

Learn how to build GraphQL applications using Node.js. Includes Prisma v1, authentication, Apollo Client, and more!

วิดีโอออนดีมานด์ความยาว 23:24:42 • อัพเดทเมื่อ พฤศจิกายน 2020

Learn and master GraphQL by building real-world Node applications.
Use Prisma v1 to store and access data from a production database.
Use Apollo Client to communicate with GraphQL from your web app.
Learn how to deploy and test your GraphQL applications.
Test your skills and gain confidence by completing more than 80 coding challenges.
Get access to a free 110-page PDF guide with lecture notes, code samples, and documentation links.
ไทย [อัตโนมัติ]
ในวิดีโอนี้ฉันต้องการใช้เวลาสักครู่เพื่อสำรวจคำถามที่สำคัญ อาจเป็นคำถามที่สำคัญที่สุดที่เรามีในตอนนี้ซึ่งเป็นเหตุให้กราฟ ถาม: เรากำลังจะใช้เวลาร่วมกันมากในการเรียนรู้เครื่องมือใหม่นี้ ดังนั้นเราต้องการให้แน่ใจว่ามันจะเป็นเวลาที่ใช้ในวิดีโอนี้ เราจะพูดถึงว่ากราฟที่เหมาะกับการใช้งานของเราคืออะไร เราจะสำรวจประโยชน์บางประการของการใช้กราฟ สุดท้ายเราจะพูดถึงว่าทำไมมันถึงได้กลายเป็นเครื่องมือยอดนิยม ฉันต้องการที่จะเตะสิ่งต่าง ๆ โดยการพูดคุยเกี่ยวกับการรับสินบนที่ดีในใบสมัครของเรา ตอนนี้ถ้าคุณเป็นเหมือนคนส่วนใหญ่แอปพลิเคชันปัจจุบันของคุณอาจใช้รูปแบบของ API ที่เหลือซึ่งคุณกำลังโทร HTP ระหว่างไคลเอนต์ของคุณกับเซิร์ฟเวอร์เพื่อส่งและรับข้อมูลหรือแอปพลิเคชันของคุณมีลูกค้าอย่างน้อยหนึ่งราย ฉันจะไปข้างหน้าและพูดว่าสำหรับตัวอย่างที่สมมติขึ้นของเราเรามีลูกค้าที่แตกต่างกันไม่กี่คน สมมติว่าเรามีเว็บแอปพลิเคชันที่ผู้ใช้สามารถเข้าสู่ระบบเพื่อจัดการข้อมูลของพวกเขาและสมมติว่าเราให้แอปพลิเคชันมือถือสำหรับ iOS และหนึ่งสำหรับ Android ที่พวกเขาสามารถพกติดตัวได้ทุกที่ ตอนนี้ลูกค้าของเราทั้งสามคนเป็นเพียงส่วนหนึ่งของกองใบสมัครทั้งหมดของเรา เรามีเซิร์ฟเวอร์และฐานข้อมูลของเราอย่างน้อย งั้นลองแทนค่าพวกเจ้านี่ตรงนี้ด้วย บางทีเราไม่ใช้เจ เอส ด้วยฐานข้อมูล Mongo D-B บางทีเราอาจใช้ Python กับฐานข้อมูล post gresse หรือบางทีเราใช้ Java กับนกฮูกถามฉัน มันไม่สำคัญ ลูกค้าจำนวนเท่าใดก็ได้ที่โทรศัพท์แล็ปท็อปทีวีสามารถสื่อสารกับเซิร์ฟเวอร์จำนวนเท่าใดก็ได้เนื่องจากความสัมพันธ์ระหว่างทั้งสองนั้นมักจะเป็นคำขอ HTP มาตรฐานโดยทั่วไปจะแสดงเป็น API ประเภทที่เหลือหรือที่เหลือ API อาจมีโหลหรือมากกว่านั้นคุณเป็นจุดปลายที่แตกต่างกันของ Elle ที่สามารถใช้เพื่อสื่อสารกับเซิร์ฟเวอร์ บางทีเราอาจมีหนึ่งสำหรับการสมัครอีกครั้งเพื่อเข้าสู่ระบบและสมมติว่าเรากำลังสร้างแอปพลิเคชันบล็อกดังนั้นเราจึงมีหนึ่งสำหรับการสร้างโพสต์ใหม่และเรามีหนึ่งสำหรับการอ่านโพสต์ที่มีอยู่ทั้งหมดในฐานข้อมูล นี่คือการตั้งค่าทั่วไปที่ค่อนข้างสวยเมื่อเราแนะนำการรับสินบน ไม่มากทั้งจะเปลี่ยน เราจะยังคงสามารถใช้ไคลเอนต์ใด ๆ และเราจะยังคงสามารถใช้เซิร์ฟเวอร์ใด ๆ แม้ว่าในหลักสูตรนี้เราจะมุ่งเน้นไปที่โหนด j ass สิ่งที่เราจะทำคือแทนที่ API ส่วนที่เหลือของเราด้วยจุดปลายจำนวนมากด้วยกราฟ API ที่มีเพียงกราฟจุดปลายสัมผัสเดียว L ย่อมาจากภาษาคิวรีกราฟและนี่คือสิ่งที่ทำงานผ่าน HTP ซึ่งหมายความว่าเราสามารถใช้ภาษาแบ็คเอนด์ที่เราต้องการกับฐานข้อมูลใด ๆ ที่เราต้องการและเราสามารถใช้ไคลเอนต์ที่เราต้องการ บางทีเรามีเว็บและแอพมือถือ บางทีเราอาจต้องสื่อสารกับกราฟ API นี้จากเซิร์ฟเวอร์อื่น นั่นเป็นสิ่งที่ดีอย่างสมบูรณ์แบบเช่นกัน กราฟ L นั้นยืดหยุ่นและเราจะเห็นสิ่งนี้ตลอดหลักสูตร ดังนั้นขั้นตอนต่อไปฉันต้องการอธิบายอย่างรวดเร็วว่าเหตุใดกราฟิกจึงเป็นสิ่งที่คุณควรพิจารณาใช้กราฟระเบิด เป็นไปอย่างรวดเร็วและเพื่อสำรวจสิ่งนี้ฉันต้องการผ่านตัวอย่างทั่วไปของสิ่งที่อาจดูเหมือนว่าจะโหลดข้อมูลที่จำเป็นสำหรับหน้าเว็บที่มี API ที่เหลือและจากนั้นด้วยกราฟิก API สมมุติว่าเราเริ่มจากตัวอย่างของ AAPI ที่เหลือ เรายังมีลูกค้าบางประเภท สมมติว่ามันเป็นเบราว์เซอร์และเรามีเซิร์ฟเวอร์ของเราติดอยู่ระหว่างทั้งสอง API ส่วนที่เหลือเป็นมาตรฐานที่เรามีจุดปลายโหลหรือจุดต่าง ๆ มากมายสำหรับการจัดการข้อมูลแอปพลิเคชันของเรา ไปข้างหน้าและส่งคำขอ HTP เพื่อแสดงหน้าและสมมติว่าหน้านี้เป็นหน้าสำหรับอ่านโพสต์บล็อก ดังนั้นเราจึงต้องการชื่อของโพสต์และเราต้องการเนื้อหาของโพสต์ เราจะได้รับเหล่านั้นได้อย่างไร เราสร้างคำขอ HTP ที่อาจมีลักษณะเช่นนี้เล็กน้อย เราได้รับคำขอต่อไปนี้คุณเป็น L .. Forward slash โพสต์ forward slash 1 ถึง 3 โดยที่ 1 ถึง 3 คือ ID การโพสต์นั้น เซิร์ฟเวอร์จะแยกวิเคราะห์สิ่งนี้คุณว่า Arel กำลังค้นหาข้อมูลที่ถูกต้องและกำลังจะส่งกลับไป น่าจะอยู่ในรูปของเจสัน ดังนั้นเซิร์ฟเวอร์ตอบว่าพูดอะไรเช่น นี่คือรายละเอียดโพสต์ ตอนนี้เราจะได้รับรายละเอียดการโพสต์ที่แสดงบนหน้าและเรารู้ว่าเราต้องการข้อมูลอีกเล็กน้อย ฉันต้องการแสดงที่ส่วนท้ายของโพสต์โพสต์อื่น ๆ โดยผู้เขียนคนนั้นเพราะฉันต้องการให้คนในเว็บไซต์ ฉันต้องการให้พวกเขาได้อ่านเมื่อพวกเขาทำสิ่งที่พวกเขากำลังอ่านอยู่ หากฉันต้องการข้อมูลเพิ่มเติมฉันขอได้ที่นี่ ฉันสามารถส่งคำขอ HTP ที่สองไปยังสิ่งที่ต้องการรับการโพสต์สแลชที่นี่ฉันใช้สตริงแบบสอบถามเพื่อกรองโดยผู้เขียนโพสต์ ฉันต้องการค้นหาเฉพาะโพสต์ที่มี ID ผู้แต่งต่อไปนี้ 3 4 ถึง 1 เพียงแค่สร้าง ID สมมติว่านี่คือ ID ผู้แต่งของโพสต์ที่เราดึงข้อมูลเซิร์ฟเวอร์อีกครั้งจะแยกวิเคราะห์ทั้งหมดนี้ มันจะพยายามค้นหาโพสต์อื่น ๆ โดยผู้เขียนคนนั้นและมันจะส่งพวกเขากลับมาเพื่อให้เราสามารถแสดงบางอย่างที่ด้านล่างของหน้าโพสต์ ตอนนี้สมมติว่ามีอีกสิ่งหนึ่งที่เราจำเป็นต้องได้รับ ความคิดเห็นที่สร้างขึ้นสำหรับโพสต์นี้เพื่อให้เราสามารถแสดงที่ด้านล่างได้เช่นกัน สำหรับที่นี่เราจะทำการขอที่สามและครั้งสุดท้ายของเราสำหรับทรัพยากรอื่น ที่นี่เรายังคงได้รับการร้องขอให้ส่งต่อการโพสต์สแลชไปข้างหน้าเครื่องหมายทับ 2:59 ความคิดเห็นเครื่องหมายการโพสต์ ID ไปข้างหน้า ดังนั้นเราจึงได้รับความคิดเห็นทั้งหมดสำหรับโพสต์นั้น นี่เป็น API การจับกุมมาตรฐานที่ค่อนข้างสวยสำหรับคุณในโครงสร้าง RL เซิร์ฟเวอร์จะปิดอีกครั้ง แยกวิเคราะห์มันและส่งข้อมูลกลับ และในที่สุดเราก็มีทุกอย่างที่เราต้องการเราสามารถนำทุกสิ่งที่แสดงบนหน้าจอมามอบประสบการณ์ที่ดีที่สุดให้กับผู้ใช้ ตอนนี้เรามาดูกันว่าเราจะดึงข้อมูลที่เหมือนกันเพื่อแสดงหน้าโพสต์บล็อกของเราอย่างไร ดังนั้นเรายังต้องการโพสต์รายละเอียดเช่นชื่อและเนื้อหา ฉันยังต้องการโพสต์อื่น ๆ จากผู้เขียนคนนั้นและฉันยังต้องการโพสต์ความคิดเห็นที่นี่ เรามีลูกค้าเรามีเซิร์ฟเวอร์ คราวนี้ถึงแม้ว่าจะต่อกิ่งเข้ากับกาวระหว่างกัน และจำกราฟที่คุณใช้งานได้ทั้งหมดผ่าน HTP ดังนั้นในตอนท้ายของวันเรายังคงส่งคำขอ HTP มาก่อนกันเถอะและทำให้เป็นคนแรกของเรา รับข้อมูลที่จำเป็นสำหรับหน้านี้ ตอนนี้คำขอที่เรากำลังทำอยู่นั้นจะเป็นคำขอโพสต์และกราฟ QOL จะเปิดเผยเพียงแค่จุดปลายเดียว นั่นเป็นส่วนที่สำคัญมากสำหรับปริศนา ตอนนี้คุณสามารถเรียกสิ่งนี้ว่าสิ่งที่คุณชอบ สำหรับตัวอย่างนี้ฉันเกิดขึ้นเพื่อเรียกมันว่าการต่อกิ่งที่ดี แต่เราจะเห็นวิธีการเปลี่ยนชื่อนั้นตลอดหลักสูตร ตอนนี้ที่นี่เป็นที่จับกับคำขอของเรา เรากำลังจะส่งไปตามกราฟเขาจะสอบถามกราฟที่คุณจะสอบถามช่วยให้ลูกค้าอธิบายว่าข้อมูลที่ต้องการจากเซิร์ฟเวอร์เซิร์ฟเวอร์นั้นได้รับข้อมูลทั้งหมดพร้อมและส่งกลับเพื่อให้ลูกค้าสามารถอธิบายได้อย่างแน่นอน สิ่งที่ต้องการและได้รับข้อมูลนั้นไม่มากไปกว่านั้น นี่คือชิ้นส่วนที่ทรงพลังมากสำหรับปริศนา แทนที่จะเป็นเซิร์ฟเวอร์ที่กำหนดว่าข้อมูลใดที่ได้รับการส่งคืนมันก็ขึ้นอยู่กับลูกค้าที่จะขอข้อมูลทั้งหมดที่ต้องการ ดังนั้นในกรณีนี้ฉันสามารถขอโพสต์รายละเอียดโพสต์อื่น ๆ โดยผู้เขียนคนนั้น ความคิดเห็นโพสต์ใด ๆ ทั้งหมดที่มีกราฟต์เดียวจะร้องขอเวทมนตร์ที่อยู่เบื้องหลังทั้งหมดนี้คือกราฟนั้น ดีจริง ๆ แต่นั่นไม่ใช่สิ่งที่เรากำลังจะพูดถึงในวิดีโอนี้แม้ว่ามันจะเป็นหัวข้อหลักของหลักสูตรและเราจะไปถึงในไม่ช้า สำหรับตอนนี้เราจำเป็นต้องรู้เกี่ยวกับกราฟที่คุณจะต้องค้นหาคือมันช่วยให้ลูกค้าสามารถกำหนดข้อมูลที่ได้รับเมื่อเทียบกับจุดสิ้นสุด API การจับกุมแบบดั้งเดิม ตอนนี้เห็นได้ชัดว่าคำขอสามคำขอมีมากกว่าหนึ่งคำขอ ดังนั้นความยอดเยี่ยมในตอนท้ายของวันจึงเป็นไปได้เร็วขึ้นมันจะช่วยให้เราได้รับข้อมูลทั้งหมดที่เราต้องการด้วยคำขอ HTP เดียวตอนนี้ Rod Speed เพียงอย่างเดียวไม่เพียงพอที่จะทำให้เครื่องมือมีประโยชน์ และในขณะที่เป็นข้อได้เปรียบของการรับสินบนดีมันไม่ได้เป็นข้อได้เปรียบที่ใหญ่ที่สุดในความคิดของฉัน ข้อได้เปรียบที่ใหญ่ที่สุดคือความยืดหยุ่นในการต่อกิ่ง ด้วยตัวอย่างสุดท้ายนั้นคุณสามารถแย้งได้อย่างง่ายดายว่าส่วน API ส่วนที่เหลือของตัวอย่างนั้นได้รับการออกแบบมาอย่างสมบูรณ์ ฉันตั้งใจเลือกให้คำขอสามคำขอแทนที่จะเป็นหนึ่งคำขอ เห็นได้ชัดว่าสามมีขนาดใหญ่กว่าหนึ่ง เห็นได้ชัดว่ามันจะช้าลงเล็กน้อย แต่ฉันเลือกที่จะพิสูจน์จุดนี้ เราสามารถอัดทั้งสามอย่างนี้แล้วชี้ไปที่หนึ่ง ลองมาทบทวนตัวอย่าง API ส่วนที่เหลือของเราที่นี่ เรามีลูกค้าของเรา API ส่วนที่เหลือของเซิร์ฟเวอร์ของเราเป็นกาว เราทำคำขอ HTP เดียวของเราที่นี่ฉันแค่ใช้จุดสิ้นสุดแรกที่เรามี เราได้รับการโพสต์โดย ID แล้วเราจะได้อะไรกลับมา เราได้รับกลับมาทุกอย่างที่เราได้รับรายละเอียดการโพสต์ของเราซึ่งเป็นชื่อและร่างกาย เราได้รับความคิดเห็นสำหรับโพสต์และเราได้รับโพสต์อื่น ๆ โดยผู้เขียน นี่จะเป็นวิธีการที่ดีอย่างสมบูรณ์แบบ มันจะให้ทุกสิ่งที่ลูกค้าต้องการเพื่อแสดงหน้านั้นด้วยการร้องขอ HTP เดียว และปัญหาของการแก้ปัญหาคือตอนนี้เรามีจุดปลายด้านเดียวซึ่งทำให้การร้องขอฐานข้อมูลมากกว่าเดิม มันเริ่มใหญ่และช้า มันอาจจะทำให้คำขอฐานข้อมูลหนึ่งคำขอทำอย่างน้อยสามคำขอเพื่อให้ได้ข้อมูลทั้งหมดที่จำเป็น ตอนนี้สำหรับเวอร์ชันเดสก์ท็อปของแอพของเราซึ่งอาจจะใช้ได้บางทีเราอาจจะใช้ข้อมูลทั้งหมดทันที งั้นเรามารับกัน แต่ถ้าเราต้องการให้แอพพลิเคชั่นรุ่นมือถือของเราใช้แบ็คเอนด์เดียวกัน เราทำการร้องขอ HTP ให้คุณทราบและปัญหาคือแอปพลิเคชันมือถือไม่สามารถเปลี่ยนแปลงข้อมูลได้ มันกลับมาบนอุปกรณ์มือถือ เรามีข้อควรพิจารณาที่แตกต่างกันโดยสิ้นเชิง เรามีอสังหาริมทรัพย์สกรีนน้อย เรามีแบตเตอรี่ที่ต้องกังวล เรามีข้อมูลที่ช้าและมีราคาแพง เราต้องการตรวจสอบให้แน่ใจว่าเราไม่ได้ใช้อุปกรณ์ในทางที่ผิดมิฉะนั้นผู้คนจะได้รับประสบการณ์การใช้งานที่ไม่ดี แอพจะรู้สึก Genki และพวกเขามีแนวโน้มที่จะถอนการติดตั้ง นี่คือเหตุผลที่การรับสินบนเดิมถูกสร้างขึ้น Facebook มีปัญหาเดียวกันกับเวอร์ชันเดสก์ท็อปของแอปพลิเคชันซึ่งเป็นแอปพลิเคชันเวอร์ชันมือถือและพวกเขาไม่ต้องการข้อมูลเดียวกันทั้งคู่ พวกเขาต้องการวิธีที่ยืดหยุ่นสำหรับลูกค้าแต่ละรายเพื่อขอข้อมูลที่พวกเขาจะใช้อย่างไม่ลดละ ดังนั้นบนอุปกรณ์พกพาเราไม่ต้องการโหลดความคิดเห็นจนกว่าจะมีคนคลิกปุ่มที่ด้านล่างของโพสต์เช่นแสดงความคิดเห็นด้วยวิธีการแก้ปัญหามันไม่สำคัญเพราะความคิดเห็นได้ถูกโหลดไปแล้ว มันจะดีกว่านี้หากเราสามารถดึงความคิดเห็นในภายหลังเมื่อจำเป็น ดังนั้นเดสก์ท็อปและอุปกรณ์มือถือจึงมีความต้องการที่แตกต่างกัน นี่ไม่ใช่ปัญหาที่เราจะพบกับ graft UL API บนเดสก์ท็อป เราสร้างกราฟิกคิวรี UL ระบุว่าเราต้องการข้อมูลทั้งหมด เราต้องการโพสต์ตัวเองเมื่อคุณเพิ่มความคิดเห็นในโพสต์อื่น ๆ โดยผู้เขียนและบนอุปกรณ์มือถือของเรา พวกเราทำอะไร. เราทำการร้องขอ HTP ไปยังปลายทางเดียวกันโดยใช้แบบสอบถามกราฟิกอื่น ในกรณีนี้เราพูดว่าบางทีเราแค่ต้องโพสต์รายละเอียดดังนั้นเราจะได้รับรายละเอียดโพสต์กลับมา ดังนั้นด้วยเวอร์ชันเว็บไซต์ของแอปพลิเคชันของเราที่มีการสอบถามข้อมูลจำนวนมากเซิร์ฟเวอร์จะต้องทำงานเป็นจำนวนมากทำให้คำขอฐานข้อมูลทั้งสามข้อนั้นจำเป็นต้องได้รับทุกสิ่ง สิ่งที่ดีคือในเวอร์ชันมือถือของแอปพลิเคชันซึ่งการสืบค้นขอข้อมูลน้อยลงเซิร์ฟเวอร์จะทำงานได้น้อยลง ในกรณีนี้การร้องขอฐานข้อมูล 1 รายการจำเป็นต้องได้รับชื่อโพสต์และเนื้อหาของโพสต์ด้วย API ส่วนที่เหลือเราไม่มีความยืดหยุ่นเช่นเดียวกัน เราได้รับการตอบกลับที่เหมือนกันทั้งกับกราฟ เป็นลูกค้ารายบุคคลที่กำหนดว่าจะรับข้อมูลใดจากเซิร์ฟเวอร์ด้วย API ที่เหลือ มันเป็นเซิร์ฟเวอร์ที่กำหนดว่าข้อมูลใดที่ได้รับการส่งกลับไปยังจุดสิ้นสุดและนั่นแตกต่างกันมาก ตอนนี้ใช่ในตอนท้ายของวันที่คุณสามารถไปข้างหน้าและพยายามที่จะปรับแต่ง API ส่วนที่เหลือของคุณอาจจะเพิ่มในสตริงการสืบค้นเพื่อตรวจสอบว่าคุณต้องการความคิดเห็นหรือไม่และคุณต้องการโพสต์อื่น ๆ แต่ ณ จุดนี้คุณใกล้จะอันตรายเพียงแค่สร้างสิ่งที่คุณรับมาแล้ว นั่นเป็นเหตุผลว่าทำไม บริษัท ใหญ่ ๆ อย่าง Facebook และเป็นศูนย์กลางได้ใช้กราฟิกในการผลิตในปัจจุบัน มันให้ความเร็วและความยืดหยุ่นที่จำเป็นสำหรับการใช้งานจริง ดังนั้นเราจึงเห็นว่ากราฟนั้นดีรวดเร็วและกราฟที่ยืดหยุ่นนั้นใช้งานง่ายและง่ายต่อการบำรุงรักษาด้วย API ที่เหลือหากลูกค้าต้องการข้อมูลที่แตกต่างกัน โดยทั่วไปแล้วเราต้องการให้เพิ่มปลายทางใหม่หรือเปลี่ยนที่มีอยู่โดยใช้กราฟ API ที่ดีแม้ว่า ลูกค้าเพียงแค่ต้องการเปลี่ยนแบบสอบถาม การทำ API แบบกราฟิกนั้นง่ายกว่ามากในการรักษาความเห็นส่วนตัวและประสบการณ์ของฉันเอง ณ จุดนี้เราได้ถามคำถามมากกว่าที่เรามีคำตอบ ตัวอย่างเช่นเราไม่มีความคิดว่าแบบสอบถามแบบกราฟิกคืออะไรหรือเราจะตั้งค่าสิ่งนี้ได้อย่างไร และนั่นก็โอเคในขณะนี้ เราจะลงลึกไปในรายละเอียดทั้งหมด เช่นเดียวกับในชั้นเรียนเสมอในตอนนี้สิ่งเดียวที่คุณต้องนำออกจากวิดีโอนี้คือกราฟต่อไปนี้ สร้าง API ตาที่รวดเร็วและยืดหยุ่นได้ดีทำให้ลูกค้าสามารถควบคุมได้อย่างสมบูรณ์เพื่อขอข้อมูลที่ต้องการ ซึ่งส่งผลให้ HTP น้อยลงร้องขอการสืบค้นข้อมูลที่ยืดหยุ่นและใช้รหัสน้อยกว่าในการจัดการ เราได้รับข้อได้เปรียบเดียวกันทั้งหมดด้วยความเร็วและความยืดหยุ่นที่เพิ่มขึ้นนี้ ฉันตื่นเต้นสุด ๆ ที่จะดำดิ่งลงไปในส่วนที่เหลือของหลักสูตรและนำสิ่งเหล่านี้ไปใช้จริงกับแอพพลิเคชั่นที่พร้อมใช้งานจริง งั้นลองไปข้างหน้าและกระโดดเข้าสู่วิดีโอถัดไป