Kekecewaan seorang jurutera perisian selama setahun dengan keadaan perlumbaan ciri carian telah membawa kepada penyelesaian yang tidak konvensional: menyertai syarikat tersebut untuk membaikinya sendiri. Pembangun yang mengasaskan Trieve (sebuah syarikat teknologi carian), telah bergelut dengan hasil carian yang bermasalah di platform dokumentasi Mintlify yang dikuasakan oleh syarikatnya sendiri.
Masalah Yang Tidak Kunjung Hilang
Isu tersebut adalah keadaan perlumbaan klasik dalam fungsi carian. Apabila pengguna menaip dengan pantas, sistem kadang-kadang akan memaparkan hasil untuk pertanyaan terdahulu dan bukannya istilah carian semasa mereka. Ini berlaku kerana pertanyaan carian yang di-debounce tidak dibatalkan dengan betul apabila yang baru bermula. Bagi seseorang yang syarikatnya menyediakan teknologi carian asas, melihat pengguna mengalami hasil yang buruk terasa seperti peringatan berterusan tentang kerja yang belum selesai.
Pembangun tersebut telah membangkitkan isu ini melalui saluran vendor biasa, tetapi ia tidak pernah menjadi keutamaan untuk pasukan yang sibuk menguruskan lebih 30,000 laman dokumentasi.
Butiran Penyelesaian Teknikal:
- Masalah: Keadaan lumba dalam pertanyaan carian debounced
- Punca akar: Pertanyaan carian sebelumnya tidak dibatalkan apabila pertanyaan baharu dimulakan
- Penyelesaian: Menambah AbortController untuk membatalkan pertanyaan sebelumnya
- Hasil: Keputusan carian kini sentiasa sepadan dengan input pengguna semasa
- Platform terjejas: Laman web dokumentasi Mintlify (30,000+ laman web)
Komuniti Berkongsi Kekecewaan Serupa
Kisah ini mendapat sambutan kuat daripada pembangun lain yang menghadapi gangguan harian yang serupa. Ramai berkongsi kisah mereka sendiri tentang bug berterusan dalam perkhidmatan popular. Seseorang menyebut tentang bergelut dengan Google Maps yang sentiasa bertukar kembali kepada batu dan bukannya kilometer - tetapan yang terpaksa mereka tukar kira-kira 500 kali dalam tempoh 20 tahun. Yang lain menunjukkan isu seperti Google Flights menukar mata wang semasa perjalanan, atau kehilangan ciri asas seperti tandakan semua sebagai dibaca untuk mel suara pada peranti Apple .
Ini adalah tahap epik yang saya aspirasikan dalam hidup
Perbincangan mendedahkan bagaimana masalah kecil tetapi berterusan ini boleh mendorong orang kepada langkah melampau, dengan sesetengahnya bergurau tentang memohon kerja di syarikat teknologi utama hanya untuk membaiki masalah kegemaran mereka.
Isu Serupa yang Dilaporkan Komuniti:
- Google Maps : Tetapan kilometer/batu bertukar semula kira-kira 500 kali dalam tempoh 20 tahun
- Google Flights : Pertukaran mata wang semasa sesi perjalanan
- Apple Wallet : Pas yang telah tamat tempoh tidak dibuang secara automatik (telah diperbaiki oleh pekerja yang berhenti kerja selepas melaksanakannya)
- Apple Voicemail : Tiada fungsi "Tandakan semua sebagai telah dibaca"
- Laman web tempahan: Masalah skrol dan pemuatan bar sisi penapis
Pembaikan Teknikal
Setelah berada di dalam syarikat (melalui apa yang nampaknya adalah pengambilalihan), penyelesaiannya agak mudah. Menambah AbortController kepada fungsi carian yang di-debounce membolehkan sistem membatalkan pertanyaan sebelumnya apabila yang baru bermula. Perubahan mudah ini memastikan hasil carian sentiasa sepadan dengan apa yang pengguna sedang taip.
Pembaikan ini menyerlahkan kekecewaan biasa dalam pembangunan perisian: kadang-kadang masalah yang paling menjengkelkan mempunyai penyelesaian yang agak mudah, tetapi keutamaan organisasi dan halangan akses menghalang ia daripada ditangani.
Kelebihan Sumber Terbuka
Pengalaman tersebut mengukuhkan keutamaan pembangun untuk perisian sumber terbuka, di mana sesiapa sahaja boleh mengemukakan pembaikan untuk masalah yang mereka hadapi. Dalam sistem tertutup, walaupun penambahbaikan mudah boleh kekal tidak ditangani untuk tempoh yang panjang, mewujudkan kekecewaan berterusan untuk pengguna yang berpotensi menyelesaikan isu tersebut sendiri.
Kisah ini telah menginspirasi orang lain untuk mempertimbangkan pendekatan serupa, walaupun sesetengahnya membangkitkan persoalan tentang etika dan kesahihan menyertai syarikat khusus untuk membuat perubahan yang memberi manfaat kepada majikan lain. Kebanyakan bersetuju bahawa ketelusan dan pendedahan yang betul adalah penting dalam situasi sedemikian.
Keadaan perlumbaan: Bug perisian yang berlaku apabila masa peristiwa mempengaruhi tingkah laku program, sering menyebabkan hasil yang tidak dapat diramal.
Carian debounced: Teknik yang menangguhkan pelaksanaan carian sehingga pengguna berhenti menaip, mengurangkan permintaan pelayan yang tidak perlu.
Rujukan: I couldn't submit a PR, so I got hired and fixed it myself