ผู้ใช้บริการ ConveyThis จำนวนมากชอบให้มีการแปล URL ของเว็บไซต์ทั้งหมดอย่างถูกต้อง ซึ่งอาจเป็นงานที่ต้องใช้ความพยายาม โดยเฉพาะอย่างยิ่งสำหรับเว็บไซต์ขนาดใหญ่ที่ต้องแปลเป็นภาษาต่างๆ หลายภาษา
ความคิดเห็นของผู้ใช้แสดงให้เห็นว่าลูกค้าบางรายพบว่าการเริ่มต้นโครงการแปลเว็บไซต์เริ่มต้นนั้นค่อนข้างน่าสับสน พวกเขามักจะตั้งคำถามว่าเหตุใดจึงดูได้เฉพาะ URL ของหน้าแรกในรายการคำแปล และจะสร้างคำแปลของเนื้อหาของตนได้อย่างไร
สิ่งนี้บ่งชี้ว่าพื้นที่ที่มีศักยภาพในการปรับปรุง เราเห็นโอกาสที่จะอำนวยความสะดวกในกระบวนการเริ่มต้นใช้งานที่ราบรื่นยิ่งขึ้นและการจัดการโครงการที่มีประสิทธิภาพมากขึ้น อย่างไรก็ตาม เราขาดวิธีแก้ปัญหาที่เป็นรูปธรรมในขณะนั้น
ผลลัพธ์ที่ได้คือการเปิดตัวฟีเจอร์การจัดการ URL อย่างที่คุณอาจคาดการณ์ไว้ ฟีเจอร์นี้ช่วยให้ผู้ใช้สามารถสแกน URL ของเว็บไซต์และสร้างเนื้อหาที่แปลแล้วผ่านแดชบอร์ด ConveyThis ได้อย่างรวดเร็วและมีประสิทธิภาพ
เมื่อเร็วๆ นี้ คุณลักษณะนี้ถูกย้ายจากรายการการแปลไปยังหน้าการจัดการการแปลตาม URL ใหม่ที่ปรับเปลี่ยนได้และมีประสิทธิภาพมากขึ้น ตอนนี้ เราเชื่อว่าถึงเวลาแล้วที่จะเปิดเผยเรื่องราวเบื้องหลังการเริ่มต้นของคุณลักษณะนี้
การเริ่มต้นของการล็อกดาวน์ในปี 2020 เนื่องจากการแพร่ระบาดทำให้ฉันมีโอกาสเรียนรู้ภาษาโปรแกรม Golang ในที่สุด ซึ่งถูกกีดกันเนื่องจากข้อจำกัดด้านเวลา
Golang หรือ Go ที่พัฒนาโดย Google ได้รับความนิยมอย่างมากในช่วงไม่กี่ปีที่ผ่านมา Golang เป็นภาษาโปรแกรมคอมไพล์แบบสแตติก ได้รับการออกแบบมาเพื่อช่วยให้นักพัฒนาสามารถสร้างโค้ดที่มีประสิทธิภาพ เชื่อถือได้ และทำงานพร้อมกันได้ ความเรียบง่ายรองรับการเขียนและบำรุงรักษาโปรแกรมที่กว้างขวางและซับซ้อนโดยไม่สูญเสียความเร็ว
ขณะที่กำลังพิจารณาโปรเจกต์เสริมที่จะทำความคุ้นเคยกับ Golang อยู่นั้น ก็มีเว็บครอว์เลอร์ตัวหนึ่งผุดขึ้นมา มันตรงตามเกณฑ์ที่กล่าวไว้ และอาจเป็นทางออกสำหรับผู้ใช้ ConveyThis เว็บครอว์เลอร์หรือ 'บอท' คือโปรแกรมที่เข้าไปยังเว็บไซต์เพื่อดึงข้อมูล
สำหรับ ConveyThis เป้าหมายของเราคือการพัฒนาเครื่องมือที่ช่วยให้ผู้ใช้สแกนเว็บไซต์และเรียกดู URL ทั้งหมด นอกจากนี้ เรายังต้องการเพิ่มประสิทธิภาพกระบวนการสร้างคำแปล ปัจจุบัน ผู้ใช้ต้องเข้าชมเว็บไซต์ในภาษาที่แปลแล้วเพื่อสร้างคำแปล ซึ่งเป็นงานที่ยากสำหรับเว็บไซต์ขนาดใหญ่ที่มีหลายภาษา
แม้ว่าต้นแบบเริ่มต้นจะตรงไปตรงมา คือโปรแกรมที่รับ URL เป็นอินพุตและเริ่มรวบรวมข้อมูลจากเว็บไซต์ แต่ก็รวดเร็วและมีประสิทธิภาพ อเล็กซ์ CTO ของ ConveyThis มองเห็นศักยภาพของโซลูชันนี้และอนุมัติให้มีการวิจัยและพัฒนาเพื่อปรับแต่งแนวคิดและพิจารณาวิธีการโฮสต์บริการสำหรับใช้งานจริงในอนาคต
ในขั้นตอนการสรุปบอทโปรแกรมรวบรวมข้อมูลเว็บ เราพบว่าตัวเองกำลังต่อสู้กับความแตกต่างของ CMS และการผสานรวมที่แตกต่างกัน คำถามก็เกิดขึ้น – เราจะนำเสนอบอทให้ผู้ใช้ของเราได้ดีที่สุดได้อย่างไร
ในขั้นต้น เราพิจารณาถึงวิธีการทดลองและทดสอบแล้วของการใช้ AWS กับอินเทอร์เฟซเว็บเซิร์ฟเวอร์ อย่างไรก็ตาม มีปัญหาที่อาจเกิดขึ้นหลายประการ เรามีความไม่แน่นอนเกี่ยวกับการโหลดของเซิร์ฟเวอร์ การใช้งานพร้อมกันโดยผู้ใช้หลายคน และการขาดประสบการณ์ในการโฮสต์โปรแกรม Go
สิ่งนี้ทำให้เราพิจารณาถึงสถานการณ์การโฮสต์แบบไร้เซิร์ฟเวอร์ ซึ่งให้ประโยชน์มากมาย เช่น การจัดการโครงสร้างพื้นฐานโดยผู้ให้บริการ และความสามารถในการปรับขนาดโดยธรรมชาติ ทำให้เป็นโซลูชันที่เหมาะสำหรับ ConveyThis ซึ่งหมายความว่าเราไม่ต้องกังวลเกี่ยวกับความจุของเซิร์ฟเวอร์ เนื่องจากคำขอแต่ละรายการจะทำงานในคอนเทนเนอร์ที่แยกจากกัน
อย่างไรก็ตาม ย้อนกลับไปในปี 2020 การประมวลผลแบบไร้เซิร์ฟเวอร์มาพร้อมกับขีดจำกัด 5 นาที นี่เป็นปัญหาสำหรับบอทของเราซึ่งอาจจำเป็นต้องรวบรวมข้อมูลไซต์อีคอมเมิร์ซขนาดใหญ่ที่มีหลายหน้า โชคดีที่ในช่วงต้นปี 2020 AWS ได้ขยายขีดจำกัดเป็น 15 นาที แม้ว่าการเปิดใช้งานคุณสมบัตินี้จะพิสูจน์แล้วว่าเป็นงานที่ท้าทาย ในที่สุด เราก็พบวิธีแก้ปัญหาโดยการเรียกใช้โค้ดแบบไร้เซิร์ฟเวอร์ด้วย SQS ซึ่งเป็นบริการจัดคิวข้อความของ AWS
ขณะที่เราแก้ปัญหาเรื่องการให้เช่าที่พัก เราก็มีอุปสรรคอีกประการหนึ่งที่ต้องเอาชนะ ตอนนี้เรามีบอทที่ใช้งานได้ซึ่งโฮสต์ในลักษณะที่มีประสิทธิภาพและปรับขนาดได้ งานที่เหลือคือการถ่ายทอดข้อมูลที่บอทสร้างขึ้นไปยังผู้ใช้ของเรา
เพื่อให้เกิดการโต้ตอบสูงสุด ผมจึงตัดสินใจเลือกใช้การสื่อสารแบบเรียลไทม์ระหว่างบอทกับแดชบอร์ด ConveyThis แม้ว่าฟีเจอร์นี้จะไม่จำเป็นต้องมีการสื่อสารแบบเรียลไทม์ แต่ผมต้องการให้ผู้ใช้ได้รับฟีดแบ็กทันทีที่บอทเริ่มทำงาน
เพื่อให้บรรลุเป้าหมายนี้ เราได้พัฒนาเซิร์ฟเวอร์เว็บซ็อกเก็ต Node.js อย่างง่าย ซึ่งโฮสต์บนอินสแตนซ์ AWS EC2 สิ่งนี้จำเป็นต้องมีการปรับแต่งบอทสำหรับการสื่อสารกับเซิร์ฟเวอร์ websocket และการปรับใช้อัตโนมัติ หลังจากทดสอบอย่างละเอียดแล้ว เราก็พร้อมที่จะเปลี่ยนไปใช้การผลิต
สิ่งที่เริ่มเป็นโครงการเสริมในที่สุดก็พบสถานที่ในแดชบอร์ด จากความท้าทาย ฉันได้รับความรู้ใน Go และฝึกฝนทักษะของฉันในสภาพแวดล้อม AWS ฉันพบว่า Go มีประโยชน์อย่างยิ่งสำหรับงานด้านเครือข่าย การเขียนโปรแกรมแบบร่วมมือ และการประมวลผลแบบไร้เซิร์ฟเวอร์ เนื่องจากมีหน่วยความจำเหลือน้อย
เรามีแผนในอนาคตเมื่อบอทนำโอกาสใหม่ๆ มาให้ เราตั้งเป้าที่จะเขียนเครื่องมือนับคำใหม่เพื่อประสิทธิภาพที่ดีขึ้น และอาจนำไปใช้ในการอุ่นแคช หวังว่าคุณจะสนุกกับการแอบดูโลกเทคโนโลยีของ ConveyThis นี้มากพอๆ กับที่ผมสนุกกับการแบ่งปันมัน
การแปลเป็นมากกว่าแค่การรู้ภาษา แต่เป็นกระบวนการที่ซับซ้อน
หากทำตามคำแนะนำของเราและใช้ ConveyThis หน้าที่คุณแปลจะเข้าถึงกลุ่มเป้าหมาย และให้ความรู้สึกเหมือนเป็นภาษาเป้าหมายจริงๆ
แม้จะต้องใช้ความพยายาม แต่ผลลัพธ์ที่ได้ก็คุ้มค่า หากคุณกำลังแปลเว็บไซต์ ConveyThis จะช่วยคุณประหยัดเวลาได้หลายชั่วโมงด้วยการแปลด้วยเครื่องอัตโนมัติ
ทดลองใช้ ConveyThis ฟรี 3 วัน!