พูดรีวิวโค้ดในภาษาของคุณเอง
โค้ดเป็นภาษาอังกฤษ แต่ความเห็นรีวิวของคุณไม่จำเป็นต้องเป็น วิธีพูดรีวิวใน 25 ภาษาบนเครื่อง และทำไมการปักหมุดภาษาถึงสำคัญ
มีข้อสมมติเงียบ ๆ อยู่ในเครื่องมือสำหรับนักพัฒนาเกือบทั้งหมด: โค้ดเป็นภาษาอังกฤษ ฉะนั้นนักพัฒนาก็ต้องเป็นภาษาอังกฤษด้วย คีย์เวิร์ดเป็นอังกฤษ ชื่อไลบรารีเป็นอังกฤษ ข้อความ error เป็นอังกฤษ และตามตรรกะนั้น การพิมพ์ด้วยเสียงสำหรับนักพัฒนาก็เลยมีแค่ภาษาอังกฤษได้ โดยไม่มีใครว่าอะไร
การรีวิวโค้ดทำลายข้อสมมตินั้นทันที ความเห็นในการรีวิวไม่ใช่โค้ด มันคือประโยคที่พูดกับคน และในทีมจำนวนมาก คนคนนั้นก็ใช้ภาษาแรกเดียวกับคุณ ทีมโรมาเนียที่รีวิวเซอร์วิส Rust ก็เขียนความเห็นเป็นภาษาโรมาเนียเกี่ยวกับตัวระบุภาษาอังกฤษ ทีมโปแลนด์ก็ทำแบบเดียวกันเป็นภาษาโปแลนด์ ทีมเยอรมันก็เป็นภาษาเยอรมัน โค้ดยังเป็นอังกฤษ ส่วนบทสนทนาเกี่ยวกับโค้ดไม่ใช่
การพิมพ์ด้วยเสียงเข้ากับความเห็นรีวิวได้ดีผิดปกติ เพราะการรีวิวคือกิจกรรมการอ่าน และการพิมพ์ก็ขัดจังหวะการอ่าน แต่มันจะดีก็ต่อเมื่อมันทำงานได้ในภาษาที่ความเห็นนั้นเป็นจริง ๆ บทความนี้ว่าด้วยการทำให้เรื่องนั้นเป็นไปได้: Keebye ครอบคลุมภาษาไหนบ้างบนเครื่อง การปักหมุดภาษาทำงานอย่างไร และขอบของมันอยู่ตรงไหน ถ้าคุณอยากได้เหตุผลว่าทำไมเรื่องพวกนี้ถึงสำคัญ การพิมพ์ด้วยเสียงไม่ควรมีแค่ภาษาอังกฤษ เป็นคนพูดไว้ ส่วนนี่คือภาคปฏิบัติที่ตามมา
ทำไมความเห็นรีวิวถึงเป็นเป้าหมายที่เหมาะที่สุดของการพิมพ์ด้วยเสียง
ความเห็นรีวิวมีคุณสมบัติสามอย่างที่ทำให้มันเข้ากับเสียงได้ดีกว่าข้อความอื่นแทบทุกชนิดของนักพัฒนา
มันสั้น ความเห็นส่วนใหญ่ยาวหนึ่งถึงสามประโยค นั่นคือหนึ่งลมหายใจ หนึ่งการกด hotkey ค้าง หนึ่งช่วงคำพูด
มันเป็นร้อยแก้ว ต่างจาก commit message ที่มีรูปแบบตายตัว หรือไฟล์ config ที่ต้องเป๊ะตามไวยากรณ์ ความเห็นรีวิวก็แค่วิธีที่คุณจะอธิบายปัญหาออกมาดัง ๆ "อันนี้ retry ไม่เลิกถ้า socket ไม่ตอบเลย ให้จำกัดมันหน่อย" ฉบับพูดกับฉบับพิมพ์แทบจะเหมือนกัน
มันเกิดขึ้นตอนที่สายตาคุณไม่ว่าง คุณกำลังอ่าน diff อยู่ วินาทีที่คุณหยุดเพื่อพิมพ์ คุณก็หลุดจากตำแหน่งในนั้น การพูดทำให้คุณอ่านต่อไปได้และพูดความเห็นลงในช่องอินพุตที่คุณคลิกเข้าไปแล้ว
ทีนี้เพิ่มมิติเรื่องภาษาเข้าไป ถ้าทีมของคุณรีวิวเป็นภาษาโปแลนด์ เครื่องมือพิมพ์ด้วยเสียงที่มีแต่ภาษาอังกฤษก็บังคับให้เลือก: รีวิวเป็นภาษาอังกฤษ (ไม่เป็นธรรมชาติ และเพื่อนร่วมงานอาจอ่านได้ช้าลง) หรือพิมพ์เอา (เสียประโยชน์ไป) ทั้งสองอย่างไม่ใช่สิ่งที่คุณต้องการ
Keebye รองรับอะไรจริง ๆ
มีเอนจินบนเครื่องสองตัวที่เกี่ยวข้องตรงนี้ และควรพูดถึงมันให้เป๊ะ
เอนจินเริ่มต้นถูกจูนมาเพื่อภาษาอังกฤษ มันเร็ว มันคือตัวที่คนส่วนใหญ่ใช้ และมันไม่ใช่ตัวที่คุณอยากได้สำหรับความเห็นรีวิวภาษาโปแลนด์ เมื่อเล็งไปที่คำพูดที่ไม่ใช่ภาษาอังกฤษ มันจะผลิตภาษาอังกฤษที่ฟังดูเป็นไปได้ตามเสียง ซึ่งไม่ใช่สิ่งที่คุณพูด
เอนจินตัวที่สองคือ Canary ครอบคลุม 25 ภาษาพอดี: บัลแกเรีย โครเอเชีย เช็ก เดนมาร์ก ดัตช์ อังกฤษ เอสโตเนีย ฟินแลนด์ ฝรั่งเศส เยอรมัน กรีก ฮังการี อิตาลี ลัตเวีย ลิทัวเนีย มอลตา โปแลนด์ โปรตุเกส โรมาเนีย รัสเซีย สโลวัก สโลวีเนีย สเปน สวีเดน และยูเครน มันเป็นตัวเลือกที่ต้องเปิดใช้เอง ดาวน์โหลดครั้งเดียว และหลังจากนั้นก็รันแบบออฟไลน์เหมือนทุกอย่างใน Keebye ไม่ใช่ร้อยภาษา แต่เป็นยี่สิบห้าภาษา ที่ระบุไว้ชัด และถ้าภาษาของคุณไม่อยู่ในรายการ บทความนี้ก็ยังช่วยคุณไม่ได้
ยังมีตัวเลือกให้ใช้ระบบรู้จำเสียงพื้นฐานของ Apple เป็นเอนจินได้ด้วย ซึ่งมาพร้อมความครอบคลุมภาษาของมันเองบน Mac ของคุณ นั่นเป็นอีกเส้นทางหนึ่งที่มีคุณลักษณะต่างออกไป ส่วนที่เหลือของบทความนี้ว่าด้วย Canary
ปักหมุดภาษาไว้ อย่าปล่อยให้มันเดา
การตั้งค่าที่สำคัญที่สุดข้อเดียวสำหรับการรีวิวที่ไม่ใช่ภาษาอังกฤษคือการปักหมุดภาษา
การตรวจจับอัตโนมัติฟังดูเหมือนเป็นค่าเริ่มต้นที่ถูกต้อง แต่มันเป็นค่าที่ผิดสำหรับนักพัฒนา ความเห็นรีวิวอัดแน่นไปด้วยตัวระบุภาษาอังกฤษ: ชื่อฟังก์ชัน ชื่อแพ็กเกจ คำว่า "null" "async" และ "callback" ความเห็นที่เป็นภาษาโรมาเนียแปดสิบเปอร์เซ็นต์และเป็นโทเคนภาษาอังกฤษยี่สิบเปอร์เซ็นต์ ให้สัญญาณผสมกับตัวตรวจจับภาษาแบบที่มันรับมือได้แย่ที่สุดพอดี มันจะพลิกกลางประโยค หรือตัดสินว่าทั้งหมดเป็นภาษาอังกฤษ แล้วคุณก็จะได้ข้อความที่ผิดอย่างมั่นใจ ปักหมุดภาษาที่คุณพิมพ์ด้วยเสียง อธิบายความล้มเหลวนี้ไว้ละเอียด
เมื่อใช้ Canary Keebye ให้คุณตั้งภาษาได้อย่างชัดเจน ปักหมุดภาษาโรมาเนีย แล้วโมเดลก็ถอดรหัสเป็นภาษาโรมาเนีย ส่วนตัวระบุภาษาอังกฤษภายในประโยคของคุณจะถูกจัดการเป็นคำยืม ไม่ใช่หลักฐานว่าคุณสลับภาษา การรู้จำตัวระบุแปลก ๆ ยังไม่สมบูรณ์แบบได้อยู่ แต่ตัวภาษาเองเลิกเป็นการโยนหัวก้อย
รายละเอียดพฤติกรรมข้อหนึ่งที่ควรรู้: ภาษาที่ปักหมุดไว้จะถูกอ่านสำหรับช่วงคำพูดถัดไป เปลี่ยนหมุด แล้วการพิมพ์ด้วยเสียงครั้งที่คุณกำลังจะทำก็จะใช้ค่านั้น ส่วนครั้งที่คุณปล่อยไปแล้วจะไม่ถูกถอดใหม่ ในทางปฏิบัติแปลว่า: สลับก่อน แล้วค่อยพูด ถ้าคุณรีวิวสองภาษาตลอดทั้งวัน การสลับก็ถูก ถาดในเมนูบาร์แสดงรายการลัด 11 ภาษาให้สลับได้เร็ว ส่วนหน้าตั้งค่าแสดงครบทั้ง 25 ภาษา
เซสชันรีวิวหนึ่งครั้ง แบบพูดล้วน
นี่คือหน้าตาของเซสชันในทีมที่รีวิวเป็นภาษาโรมาเนีย
คุณเปิด pull request ถาดแสดงว่าปักหมุดภาษาโรมาเนียไว้ตั้งแต่เมื่อวาน จึงไม่ต้องทำอะไร คุณอ่านไฟล์แรก ก้อนที่สาม เป็นลูป retry ที่ไม่มีเพดาน คลิกเข้าไปในช่องความเห็น กด ⌘ ขวาค้าง พูดความเห็นเป็นภาษาโรมาเนีย ปล่อย ข้อความไปลงโดยที่ "เอ่อ" กับการเริ่มผิดถูกการเก็บกวาดด้วยกฎตัดออกไปแล้ว และตัวระบุ reconnectSocket ยังอยู่ครบ เพราะคุณเพิ่มมันเข้าพจนานุกรมส่วนตัวไว้เมื่อสัปดาห์ก่อน
ไฟล์ถัดไป ความเห็นที่คุณอยากทิ้งไว้เป็นข้อเสนอโค้ด ไม่ใช่ร้อยแก้ว อันนั้นคุณพิมพ์เอา การพูด diff เป็นประสบการณ์ที่แย่ในทุกภาษา
ต่อมา ผู้ร่วมพัฒนาจากอีกทีมเข้ามาในเธรดและเขียนเป็นภาษาอังกฤษ คุณอยากตอบเป็นภาษาอังกฤษ คลิกที่ถาด เลือกภาษาอังกฤษจากรายการลัด แล้วช่วงคำพูดถัดไปก็จะถูกถอดรหัสเป็นภาษาอังกฤษ ตอบไป แล้วค่อยสลับกลับ
ทั้งหมดนี้ไม่ต้องใช้หน้าต่างเลย Keebye อยู่ในเมนูบาร์ hotkey ทำงานในแอปไหนก็ได้ที่โฟกัสอยู่ ไม่ว่าจะเป็นแท็บเบราว์เซอร์ที่เปิดรีวิวอยู่ ไคลเอนต์ Git บนเดสก์ท็อป หรือเทอร์มินัลที่รันเครื่องมือรีวิวแบบ CLI
ข้อจำกัดตามจริง
ยี่สิบห้าภาษา ไม่ใช่ทุกภาษา ถ้าคุณรีวิวเป็นภาษาตุรกี ญี่ปุ่น อาหรับ หรือภาษาใดก็ตามที่อยู่นอกรายการของ Canary เอนจินตัวที่สองก็ไม่ครอบคลุมมัน เอนจินพื้นฐานของ Apple อาจครอบคลุม ขึ้นอยู่กับการรองรับภาษาของระบบคุณ แต่นั่นเป็นเอนจินคนละตัวที่มีพฤติกรรมต่างกัน
รายการลัดในถาดมีสิบเอ็ดภาษา อังกฤษ โรมาเนีย ฝรั่งเศส เยอรมัน สเปน อิตาลี โปรตุเกส ดัตช์ โปแลนด์ รัสเซีย และยูเครน อยู่ห่างออกไปสองคลิก อีกสิบสี่ภาษาอยู่ในหน้าตั้งค่า ถ้าคู่ภาษาประจำวันของคุณมี เช่น เช็กกับฟินแลนด์ ก็มีข้างหนึ่งที่ต้องผ่านหน้าตั้งค่า
ตัวระบุก็ยังเป็นตัวระบุ โมเดลเสียงในทุกภาษามีปัญหากับชื่อแบบ snake_case_names พจนานุกรมช่วยกับตัวที่โผล่ซ้ำ ๆ ส่วนที่เหลือคุณต้องแก้เอง อ่านความเห็นก่อนโพสต์
ไม่มีการถอดเสียงสด Canary ถอดเสียงตอนปล่อยปุ่ม เป็นก้อนเดียว คุณจะไม่เห็นคำขณะที่พูด สำหรับความเห็นรีวิวที่ยาวหนึ่งถึงสามประโยค แทบไม่รู้สึกเลย
การขัดเกลาเป็นตัวเลือก และค่าเริ่มต้นคือตามตัวอักษร ถ้าคุณเปิดการขัดเกลาด้วย LLM ในเครื่อง มันจะจัดโครงสร้างประโยคให้เรียบร้อยขึ้น และตัวป้องกันความซื่อตรงจะถอยกลับไปใช้ข้อความดิบเมื่อผลลัพธ์แสดงการสูญเสียโทเคนอย่างรุนแรง การขยายตัว หรือการซ้ำ ตัวป้องกันนั้นเป็นฮิวริสติก มันไม่ได้ตรวจว่าความหมายของคุณรอดมาหรือเปล่า สำหรับความเห็นรีวิวที่การพลิกคำปฏิเสธเปลี่ยนคำตัดสินทั้งอัน คนส่วนใหญ่จึงปิดการขัดเกลาไว้และปล่อยให้การเก็บกวาดด้วยกฎทำงานแทน
เรื่องนี้อยู่ตรงไหน
ถ้าการปักหมุดภาษาคือฟีเจอร์ที่คุณสนใจที่สุด Keebye เทียบกับ Wispr Flow เปรียบเทียบทั้งสองตัวในเรื่องว่าการประมวลผลเสียงรันที่ไหนและจัดการภาษาอย่างไร รวมถึงจุดที่ Wispr Flow เหมาะกว่า สำหรับกรณีกว้างกว่าอย่างการพิมพ์ด้วยเสียงขณะที่มือคุณอยู่บน diff คู่มือสำหรับนักพัฒนา ครอบคลุมการใช้งานประจำวัน ส่วน คู่มือ Mac ครอบคลุมการตั้งค่า
ข้อสมมติที่ว่านักพัฒนาใช้แต่ภาษาอังกฤษนั้นไม่เคยจริง มันแค่สะดวกสำหรับเครื่องมือ การรีวิวในภาษาของตัวเองด้วยเสียง โดยที่คำพูดไม่เคยออกจากเครื่อง ไม่ใช่คำขอเฉพาะกลุ่ม มันคือสิ่งที่คนเขียนซอฟต์แวร์จำนวนมากจะทำ ถ้าเครื่องมือยอมให้ทำ
รีวิวในภาษาที่คุณใช้คิด
เริ่มทดลองใช้ฟรี ปักหมุดภาษาของคุณ แล้วพูดความเห็นรีวิวหนึ่งข้อแบบเดียวกับที่คุณจะพูดกับเพื่อนร่วมงาน
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
อ่านต่อ
การตรวจจับอัตโนมัติเดาผิดไม่หยุด: ปักหมุดภาษาของคุณเสีย
ข้อความที่พิมพ์ด้วยเสียงไปลงเป็นภาษาผิดตลอด การตรวจจับอัตโนมัติสั่นไปมากับคำพูดสองภาษาโดยธรรมชาติของมัน ปักหมุดภาษาครั้งเดียว แล้วมันจะอยู่ตรงนั้น
ทำไมการพิมพ์ด้วยเสียงสำหรับนักพัฒนาไม่ควรมีแค่ภาษาอังกฤษ
โค้ดเป็นภาษาอังกฤษ แต่วันทำงานรอบ ๆ มันมักไม่ใช่ การพิมพ์ด้วยเสียงหลายภาษาบนเครื่อง สำหรับข้อความใน Slack รีวิว และเอกสารที่คุณเขียนในภาษาของตัวเอง
พูดป้อน prompt ให้ agent ขนาน ทีละเลน
การรัน coding agent พร้อมกันสองสามตัวทำให้การสั่ง prompt กลายเป็นคอขวด นี่คือเวิร์กโฟลว์เสียงสำหรับป้อนงานทุกเลนโดยไม่ต้องออกจากเลนที่คุณอยู่