เพราะไม่สามารถส่ง PR ได้ จึงเข้าร่วมงานและแก้ไขเอง
(skeptrune.com)- ต้องเผชิญกับ ปัญหา race condition ของการค้นหาใน Mintlify มานานกว่าหนึ่งปีโดยไม่สามารถแก้ไขได้ ทำให้รู้สึกไม่สะดวก
- แม้จะเป็นผู้ก่อตั้ง Trieve ซึ่งเป็นผู้ให้บริการระบบค้นหาของ Mintlify แต่ในฐานะ ผู้ให้บริการภายนอก ก็ยังเข้าถึงโค้ดโดยตรงไม่ได้ จึงแก้ปัญหาไม่ได้
- สุดท้ายหลังจาก เข้าร่วม Mintlify ก็แก้ปัญหาเรื่องการยกเลิก query ค้นหาและการซิงก์ผลลัพธ์ได้ด้วยการใช้ AbortController โดยตรง
- เน้นว่าหากเป็นโอเพ่นซอร์ส คงแก้ไขได้ทันทีด้วย PR ซึ่งชี้ให้เห็นข้อดีเชิงปฏิบัติของโอเพ่นซอร์ส
- แม้จะเป็นความไม่สะดวกเล็กน้อย แต่การแก้ด้วยมือเองทำให้ได้รู้สึกถึงความพึงพอใจ และย้ำความสำคัญของการปรับปรุงผลิตภัณฑ์อีกครั้ง
เรื่องที่ไม่สามารถส่ง PR ได้ จึงเข้าร่วมงานแล้วแก้เอง
บั๊กการค้นหาของ Mintlify ที่สร้างความรำคาญมานานเกินหนึ่งปี
- ใน ฟังก์ชันค้นหา ของ Mintlify เกิด race condition ทำให้ query ถูกประมวลผลซ้ำ และขณะผู้ใช้ยังพิมพ์อยู่ ระบบก็ยังแสดง ผลการค้นหาที่ไม่ตรง อยู่ตลอด
- แม้จะเป็นผู้ก่อตั้งของ Trieve ผู้ให้บริการระบบค้นหาของ Mintlify แต่ในฐานะ ผู้ให้บริการ (vendor) ภายนอก ก็ยังไม่มีสิทธิ์เข้าถึง codebase โดยตรงเพื่อแก้ไขได้
- ได้แจ้งปัญหานี้หลายครั้งใน ช่อง Slack ร่วมกัน แต่เนื่องจากมีความสำคัญต่ำ จึงถูกปล่อยทิ้งไว้นาน
- ทุกครั้งที่ประสบการณ์การค้นหาของ Trieve บน Mintlify ดูไม่ดี สิ่งนี้ทำให้ฉันรู้สึกหนักใจกับ ศักดิ์ศรีส่วนตัว และความรู้สึกต่อภาพลักษณ์แบรนด์ในฐานะผู้ก่อตั้ง
เข้าร่วมทีมแล้วแก้ปัญหาเอง
- เมื่อเข้าร่วม Mintlify ได้รับโอกาสเข้า codebase โดยตรง
- ปรับปรุงฟังก์ชันค้นหาให้ใช้ AbortController เพื่อให้ ยกเลิก query ก่อนหน้าได้ทันที
- ตอนนี้เมื่อผู้ใช้พิมพ์เสร็จ คำค้นล่าสุดเท่านั้นที่ถูกนำไปประมวลผลและแสดงผล ทำให้ได้เห็น ผลลัพธ์ล่าสุดที่ถูกต้อง เสมอ
- ความรู้สึกในการได้ แก้ปัญหาด้วยตัวเอง เรื่องที่ก่อความไม่สะดวกมานานเป็นเรื่องที่น่าพึงพอใจมาก
- เหมือนกับ George Hotz ที่เคยเข้าทำงานที่ Twitter ชั่วคราวเพื่อแก้บักป๊อปอัปล็อกอิน ฉันให้ความหมายกับท่าทีแบบแฮกเกอร์/ผู้ประกอบการคือพบปัญหาก็ต้องแก้เอง
- ประสบการณ์ การแก้ปัญหาแบบตรงไปตรงมาและจับต้องได้ แบบนี้ช่วยให้เส้นทางอาชีพก้าวหน้าได้
คุณค่าที่แท้จริงของโอเพ่นซอร์ส
- โดยส่วนตัว ฉันชื่นชอบการพัฒนาและใช้งาน ซอฟต์แวร์โอเพ่นซอร์ส
- หากเป็นโอเพ่นซอร์ส โครงสร้างจะเปิดทางให้ผู้พัฒนาภายนอกส่ง Pull Request (PR) เพื่อแก้บักหรือปรับปรุงฟีเจอร์ได้โดยตรง
- หากฟังก์ชันค้นหาของ Mintlify เป็นโอเพ่นซอร์ส ปัญหาที่ค้างอยู่นานกว่าหนึ่งปีก็คงถูกแก้ผ่าน PR ได้ ทันที
- โมเดลซอร์สปิดมีข้อจำกัดสำคัญว่า การปรับปรุงสามารถเกิดขึ้นได้ต่อเมื่อมีสิทธิ์เข้าถึงโค้ดเท่านั้น
- ยอมรับคุณค่าของการให้ "สิทธิ์ในการเข้าถึงทันที" ในสภาพแวดล้อมโอเพ่นซอร์ส โดยในขณะเดียวกันก็เข้าใจความต่างของโมเดลธุรกิจในแต่ละบริษัท
ความคุ้มค่าจากการแก้ไขด้วยตนเอง
- สาเหตุที่ การค้นหาของ Mintlify ลื่นไหลและตอบสนองดียิ่งขึ้น ก็เพราะการปรับปรุงนี้โดยตรง
- จากการแก้ bug เล็กๆ ที่ค้างคาหนักใจมานานด้วยตัวเอง รู้สึกถึงความพึงพอใจจากการ มีส่วนร่วมให้ผลิตภัณฑ์พัฒนาไปข้างหน้า
- จากประสบการณ์นี้ เห็นชัดว่า กระบวนการแก้ปัญหาเล็กๆ อย่างต่อเนื่อง แม้จะเล็กน้อยก็ทำให้ผลิตภัณฑ์ดีขึ้นอย่างมาก
- การเปลี่ยนแปลงเล็กๆ ที่แก้ด้วยตัวเองสะสมมากขึ้น ทำให้ ประสบการณ์ผู้ใช้ดีขึ้นแบบก้าวกระโดด
- ในอนาคตอยากสร้างผลิตภัณฑ์ที่ดีขึ้นเรื่อยๆ ผ่านการ สะสมการปรับปรุงเล็กๆ เหล่านี้
3 ความคิดเห็น
55555 เคารพเลยครับ
เทพนักพัฒนา
ความเห็นจาก Hacker News
เคยมีบัญชี Amazon ถูกระงับเพราะถูกสงสัยว่าเป็นการฉ้อโกง เป็นบัญชีเก่ามาก และอีเมลกับเบอร์โทรก็ถูกลบไปเพราะข้อมูลรั่วจากหลายฐานข้อมูล หลังจากได้เข้าทำงานก็เลยติดต่อคนในทีมต่อต้านการฉ้อโกงของ Amazon ภายในบริษัท และปลดล็อกบัญชีได้อย่างรวดเร็ว ตอนติดต่อฝ่ายบริการลูกค้าไม่มีประโยชน์อะไรเลย
นี่เป็นส่วนที่น่าหงุดหงิดที่สุดของ Amazon เวลาเจอสินค้าจาก Reddit หรือรีวิวที่อื่น ก็มักจะถูกพาไปลิงก์ amazon.com แล้วระบบก็บอกให้สลับไปใช้บัญชีสกุลเงินดอลลาร์สหรัฐ พอจะสั่งซื้อก็ต้องกลับไปเปลี่ยนเป็นบัญชีเยอรมนี/ยูโรอีก กระบวนการนี้ยุ่งยากเกินไป อยากให้เปิดดูข้ามภูมิภาคได้อิสระไปเลย แล้วค่อยให้เปลี่ยนโปรไฟล์ตอนจะสั่งซื้อก็น่าจะพอ อีกอย่างถ้ามีตัวเลือกให้ซื้อจากผู้ขายในภูมิภาคเดียวกันก็น่าจะดี
น่าสนใจ ตอนเริ่มงานที่ Google ยังมีมือถือที่พังจากช่วง onboarding อยู่จนถึงทุกวันนี้ ข้างในไม่มีใครสนใจเลย มีเครื่องมือที่ใช้ซ่อมเองได้ แต่ก็ติดข้อความไว้ด้วยว่าถ้าใช้โดยไม่ได้รับอนุญาตจะถูกไล่ออก
เคยมีประสบการณ์คล้ายกันกับบัญชี Facebook ที่ปลดล็อกไม่สำเร็จอยู่นาน 9 เดือน แต่พอได้เข้าไปทำงานภายในแล้วก็ปลดล็อกได้ทันที
อยากมีช่วงเวลาระดับมหากาพย์แบบนี้ในชีวิตบ้าง
ฉันก็อยากมีโชคแบบนี้เหมือนกัน สาเหตุที่เสียบัญชี Amazon ไปคือมีการกรอกเลขตัวหน้าเบอร์โทรระหว่างประเทศของฉันผิดไปหนึ่งหลัก ทำให้ใช้ยืนยันตัวตนทาง SMS ไม่ได้ และมือถือที่ติดตั้งแอป OTP ก็เพิ่งพังไปก่อนหน้านั้นไม่นาน
ถ้า Google Maps รับฉันเข้าทำงานแล้วทำให้หน่วยระยะทางแสดงเป็น km อย่างเดียวได้ ติดต่อฉันได้ที่โปรไฟล์ HN ของฉัน ฉันน่าจะสลับจากไมล์เป็นกิโลเมตรมาแล้ว 500 ครั้งในรอบ 20 ปี บริษัทที่ชอบวิเคราะห์ผู้ใช้กลับพลาดเรื่องพื้นฐานแบบนี้มันเหลือเชื่อจริง ๆ
การที่ต้องทำถึง 500 ครั้งนี่ต่างหากที่เหลือเชื่อ ทำให้นึกภาพว่ามันคงตก A/B test เพราะการมีส่วนร่วมของผู้ใช้ต่ำ เหมือนผ่านสัมภาษณ์ 7 รอบเพื่อส่ง PR แค่ 1 อันแล้วได้ผลลัพธ์แบบนี้
อยากตามหาคนที่ทำให้แผนที่ทั้งแผนที่ซูมเป็น “โหมดขนาดจริง 1cm=1cm” แล้วคงไว้ตลอดทั้งทริป เพื่อจะได้ตบสักที น่าจะเป็นคนเดียวกับที่ปล่อยให้รถหลุดออกนอกจอเมื่อซูมเอง แล้วถ้ากด “จัดกึ่งกลางอีกครั้ง” ก็โดนบังคับซูมกลับเหมือนเดิม ระบบนำทางปี 2005 ยังแก้เรื่องพวกนี้ได้หมดแล้ว
ตอนเที่ยวเม็กซิโก ฉันล็อกอินอยู่แท้ ๆ แต่ Google Flights ก็ยังเปลี่ยนจากดอลลาร์เป็นเปโซทุกครั้งที่เปิดแท็บใหม่ ดูเหมือนไม่แคร์จริง ๆ
ตอนทำงานที่ Google เมื่อ 10 ปีก่อน ฉันเคยรายงานปัญหานี้ผ่านฟอร์ม feedback ภายในแต่ไม่เคยได้คำตอบเลย หลังจากนั้นก็ส่งรายงานบั๊กนี้ผ่าน feedback ของ Google Maps ทุกปี บางปีก็ส่งสองครั้ง ตอนนี้มันกลายเป็นบั๊กที่น่าอับอายจริง ๆ
สนใจงานเกี่ยวกับ gmaps เหมือนกัน อยากให้เส้นทางที่ใช้เวลาเกิน 1 ชั่วโมงแคชขากลับไว้ล่วงหน้าด้วย เวลาสัญญาณบริการหายแล้วต้องจำทางเองนี่ลำบากมาก
ตลกดีที่ได้เห็นมุกเก่า ๆ กลายเป็นเรื่องจริง มีคำขอให้เพิ่มระยะขอบซ้ายอีกแล้ว การอ่านตัวอักษรที่ชิดขอบจอมาก ๆ รู้สึกแปลกนิดหน่อย
พอกดตามลิงก์ในโพสต์ ก็ไปเจอกรณีที่มีคนเพิ่มฟีเจอร์ลบบัตรหมดอายุอัตโนมัติใน Apple แล้วลาออกทันทีหลังจากนั้น ทำให้รู้สึกว่าทุกครั้งที่ใช้ฟีเจอร์นั้นคงต้องขอบคุณเขาในใจ มันเป็นปัญหาที่น่ารำคาญมากจริง ๆ
ล้อเล่นว่าทำไมไม่จ้าง OP ไปให้แก้เองเลย
ฉันไม่ค่อยชอบเว็บที่เปลืองพื้นที่หน้าจอ
ฉันชอบจัดชิดซ้าย คิดว่านั่นแหละคือตำแหน่งที่ข้อความควรอยู่
มีการอธิบายว่าได้เพิ่ม AbortController เข้าไปใน debounced search function เพื่อยกเลิก query ก่อนหน้าทุกครั้งที่ผู้ใช้พิมพ์ข้อมูลใหม่ สิ่งที่น่าหงุดหงิดที่สุดคือระบบรีบใช้ตัวกรองหรือค้นหาทั้งที่ผู้ใช้ยังพิมพ์ไม่เสร็จ อยากให้มันรอจนป้อนข้อมูลครบก่อน
การค้นหา log ของ Grafana ตอนนี้ถ้าเปลี่ยนตัวกรอง log ที่ใช้อยู่ มันจะคิดค่าบริการตามจำนวนการค้นหาทุกครั้งที่พิมพ์เปลี่ยนไปหนึ่งตัวอักษร ด้วยเหตุนี้ฉันต้องเปลี่ยนนิสัยการใช้งาน UX ของตัวเอง เพราะค่าใช้จ่ายถูกคิดตามจำนวนตัวอักษรที่พิมพ์ ไม่ใช่ตามสตริงเต็มที่ต้องการค้นหา
ตอนทำฟีเจอร์ค้นหาแบบเรียลไทม์ในบล็อกของฉัน ฉันเลือกให้คำแนะนำการค้นหาก่อนหน้าทำงานจนเสร็จก่อน แล้วค่อยส่งคำขอใหม่ คิดว่านี่เป็นวิธีที่สมเหตุสมผลในการกันภาระเซิร์ฟเวอร์และยังคงความตอบสนองได้ดี
โดยเฉพาะเว็บจองต่าง ๆ ฉันเกลียดพฤติกรรมแบบนี้มาก ตัวกรองอยู่ในแถบด้านซ้าย แต่ถ้ามองไม่ครบในหน้าจอ ทุกครั้งที่กดปรับอะไรสักอย่าง มันจะเลื่อนกลับขึ้นไปด้านบน โหลดใหม่ แล้วตัวกรองก็กลายเป็นอ่านอย่างเดียว ต้องรอให้ทุกอย่างเสร็จก่อนถึงจะเพิ่มตัวเลือกถัดไปได้
คิดว่าจุดประนีประนอมที่ดีคือรออีกสักไม่กี่ร้อยมิลลิวินาทีหลังผู้ใช้หยุดพิมพ์แล้วค่อยส่ง query หรือจะส่ง query ไปเลยแต่ยังไม่แสดงผลจนกว่าการพิมพ์จะหยุดก็น่าพิจารณาเหมือนกัน
ฉันเกลียดพฤติกรรมแบบนี้จริง ๆ มันเหมือนโปรแกรมแก้ไขโค้ดหรู ๆ ที่ส่งเสียงเตือนทุกครั้งที่พิมพ์ตัวอักษร ถ้าพิมพ์ 'i' กับ 'f' แล้วขึ้นทันทีว่า “if-then statement ยังไม่ถูกปิด!” ทั้งที่รู้อยู่แล้วว่ายังพิมพ์ไม่จบ มันไวเกินเหตุ ควรแจ้งหลังพิมพ์เสร็จมากกว่า และในภาษา/เครื่องมือส่วนใหญ่ฉันก็มักปิดการแจ้งเตือนสดพวกนี้แล้วไปดู error ตอน build/run แทน LSP (Language Server Protocol) ควรใจเย็นลงหน่อย
ตอนนี้คุณภาพซอฟต์แวร์ต่ำจนถ้ามีบั๊กที่กวนใจก็เหมือนการสมัครงานเข้าไปแก้เองจะง่ายกว่า ทำให้นึกถึงเรื่องของโปรแกรมเมอร์ที่แก้ปัญหาเวลาโหลด GTA 5 ทั้งที่เกมที่มีเงินมหาศาลอย่าง GTA 5 ยังปรับปรุงคุณภาพได้ยาก
มองว่าไม่ใช่ปัญหาคุณภาพ แต่เป็นปัญหาการจัดลำดับความสำคัญ บริษัทเลือกทำสิ่งที่ทีมอยากทำก่อนสิ่งที่ผู้ใช้ต้องการ ขาดทั้งการทดสอบกับผู้ใช้จริงและการทดลองด้วยข้อมูล จริง ๆ แล้วกรณีนี้ไม่ใช่ทางแก้ของปัญหา แต่เป็นภาพสะท้อนของปัญหาจริงมากกว่า น่าจะมี issue ที่มีประโยชน์กว่านี้อีกเยอะ แต่กลับกลายเป็นว่ามีคนหนึ่งเพิ่มฟีเจอร์ที่ตัวเองอยากได้
คนที่เติมเงินซื้อการ์ดใน GTA:O เยอะ ๆ ไม่ได้สนใจเวลาโหลด ฉันโมโหจนลองจับเวลา แล้วพบว่าใช้เวลาอยู่กับหน้าจอโหลดนานกว่าทำภารกิจจริง สุดท้ายเลยเลิกเล่นเกมไปเลย
มีมุกถามว่า คนในมีมอินเทอร์เน็ตคนนั้นคือคุณเองหรือเปล่า
สงสัยเพราะในบทความแทบไม่พูดถึงส่วนที่เกี่ยวกับการถูกจ้างงานเลย มันดูเหมือนแค่ “มีอะไรบางอย่างกวนใจฉัน แล้วฉันก็ได้เข้าไปทำงานที่บริษัทนั้นเลยแก้มัน” เหมือนแก่นของเรื่องหายไป
ตรงกันข้าม ฉันเคยทำงานที่หนึ่งซึ่งเพราะทนายด้าน IP เลยทำให้ส่ง PR ไปยังโค้ดโอเพนซอร์สไม่ได้เลย ถึงอย่างนั้นถ้าอธิบายอินพุตที่ทำให้เกิดปัญหาและบรรทัดของบั๊กอย่างละเอียดพอ ก็ยังพอเกลี้ยกล่อมให้ใครสักคนแก้ให้ตรง ๆ ได้ รู้สึกเหมือนอย่างน้อยก็ยังแจก QA report ให้ฟรีแทนโค้ด
มีคนบอกว่านึกถึงเหตุการณ์ระดับตำนานที่ George Hotz เข้าไปร่วม Twitter ชั่วคราวในปี 2022 แล้วแก้ปัญหาป๊อปอัปล็อกอินได้ แต่ฉันจำได้ไม่เหมือนกัน George Hotz พูดว่าจะ “แก้ search ได้” แล้วก็ออกไปแทบจะทันที สุดท้ายแค่ลบป๊อปอัปนั้นไว้เป็นของปลอบใจ
รอบนี้เผลอไหลไปค้นเรื่อง George Hotz, patent troll และ comma.ai อีกรอบ Comma.AI ของ George Hotz มี “comma 3x” ราคา $999 พร้อมสมาร์ตโฟนและตัวเชื่อมต่อ OBD-II กับสาย harness ราคา $99 ที่สามารถเพิ่มความสามารถระดับ Autopilot ให้รถส่วนใหญ่ที่ผลิตในช่วง 10 ปีหลังได้ แม้แต่ Tesla ก็รองรับ รวมค่าใช้จ่าย $1098 เป็นโอเพนซอร์สบน GitHub และยังรองรับ ssh เข้าไปที่รถได้ด้วย ส่วนบริการคลาวด์เสริมมีค่าสมัคร $10/เดือน (ใช้ SIM เอง) หรือ $24/เดือน (รวมข้อมูลจากผู้ให้บริการ) แต่ยังไม่มีฟีเจอร์แบบเดียวกับ Tesla Sentry Mode ซึ่งยังเปิดเป็น issue #29912 อยู่ โดย Sentry Mode ต้นฉบับของ Tesla ใช้ไฟ 250W — ถ้าแบตเตอรี่ 80kWh ก็จะลดจาก 80% เหลือ 30% ภายใน 7 วัน — ถ้า openpilot ใช้ต่ำกว่า 5W ได้จริงก็น่าจะมีประสิทธิภาพกว่ามาก
จำได้ว่า George Hotz โม้ไว้ว่าจะเข้าทำงานที่ Twitter แล้วสุดท้ายก็ไม่ได้ทำอะไร ก่อนจะจากไปเงียบ ๆ ดูน่าอายและเหมือนเป็นเรื่องที่เจ้าตัวก่อเอง
บอกว่าได้แก้ให้ข้อความแม่นยำขึ้นแล้ว และในขณะเดียวกันก็ดันทำบล็อกตัวเองล่มเพราะบั๊กของ Github Pages
จำได้ว่าท้ายที่สุดเขาเสนอให้ Elon สร้าง Twitter ใหม่ทั้งระบบเลย
ส่วนตัวถึงขั้นเคยคิดจะสมัครงานที่ Discord เพื่อส่ง PR เปลี่ยน emoji ขนาดใหญ่ให้เป็นตัวเลือกเปิดปิด เพราะไม่ใช่แค่ฉัน แต่ทั้งเซิร์ฟเวอร์ก็อยากได้กันมาก
ไม่รู้ว่าจะช่วยได้ไหม แต่สำหรับฉันเองใช้วิธีใส่จุดต่อท้าย emoji เพื่อเลี่ยงชั่วคราว ถึงจะไม่ช่วยผู้ใช้ใหม่ แต่ก็พอเป็นทางแก้ชั่วคราวสำหรับตัวเอง
Discord เป็นแอป Electron ดังนั้นในทางทฤษฎีน่าจะเปลี่ยนด้วยม็อดฝั่งไคลเอนต์ได้ แค่ไม่แน่ใจเรื่องความเสี่ยงโดนแบนบัญชี
มีคอมเมนต์ถามว่าหมายถึงอะไร โดยยกตัวอย่างว่ามีตัวเลือกปิดการแปลงอัตโนมัติของอีโมติคอนอย่าง :) อยู่แล้ว