Steven
Steven6 minit bacaan

Perisian yang tenang: mematikan suis yang berkelip dan mengajar sembang menyebut mod yang sedang digunakannya

Dua keluaran kecil GeekBye, tiada ciri utama — hanya suis tetapan yang berhenti berkelip dan pembantu sembang yang akhirnya memberitahu sama ada ia menjawab dalam mod mesyuarat atau mod pengekodan. Inilah kos sebenar "perisian yang tenang", satu perincian pada satu masa.

Produk
Reka Bentuk
Kejuruteraan
GeekBye Releases
Perisian yang tenang: mematikan suis yang berkelip dan mengajar sembang menyebut mod yang sedang digunakannya

Bukan setiap keluaran ialah kisah perang. Ada yang hanya senarai perkara kecil, hampir tidak kelihatan, yang secara senyap tersasar — jenis perkara yang tidak meranapkan apa-apa tetapi membuatkan sesebuah aplikasi terasa sedikit tidak boleh dipercayai, sedikit gugup, sedikit bukan-milik-anda. GeekBye v2.0.3 dan v2.0.5 ialah dua daripadanya. Tiada ciri baharu. Hanya ketenangan.

"Perisian yang tenang" berbunyi seperti suasana hati. Sebenarnya ia satu longgokan keputusan yang khusus. Berikut tiga daripadanya.

Suis yang tidak dapat membuat keputusan

Ada sebuah suis tetapan — yang mengawal pemulihan audio — yang berkelip apabila anda kliknya. Ketik untuk menghidupkannya, dan selama sepersekian saat ia memaparkan hidup, kemudian melonjak semula ke mati, kemudian mengendap. Satu gangguan visual yang halus, tetapi mata anda menangkapnya, dan ia terbaca sebagai aplikasi ini tidak pasti apa yang sedang dilakukannya.

Puncanya ialah perlumbaan antara muka klasik yang dipanggil kemas kini optimistik. Apabila anda mengklik suis, aplikasi ada dua pilihan: menunggu tetapan benar-benar disimpan lalu mengemas kini suis (betul, tetapi terasa perlahan), atau membalikkan suis serta-merta dan menyimpan di latar belakang (terasa serta-merta). GeekBye melakukan yang kedua — balikkan serta-merta — tetapi ia juga membaca semula nilai yang disimpan apabila nilai itu kembali. Jadi urutannya: anda klik, suis hidup secara optimistik, nilai simpanan sebenar tiba seketika kemudian, dan selama satu bingkai kedua-duanya bercanggah lalu suis melantun secara jelas kelihatan.

Penyelesaiannya ialah menjadikan nilai optimistik dan nilai yang disahkan sepadan dengan kemas — suis komited kepada keadaan yang anda pilih dan berhenti meragui dirinya sendiri apabila simpanan disahkan. Seiring dengan itu, v2.0.3 melakukan suntingan teks yang tidak menawan: perihalan pemulihan audio dipendekkan supaya sejajar dengan baris-baris seiringnya, dan susunan kata tetapan dimanusiawikan. Tiada satu pun daripada ini ialah ciri. Kesemuanya ialah perbezaan antara panel tetapan yang terasa dibina dan yang terasa dijaga dengan teliti.

Lawatan yang tidak mahu beredar

Lawatan pengguna baharu berguna tepat sekali sahaja. Masalahnya ialah sifat sekali-sahaja itu: selepas anda melihatnya, lapisan orientasi yang tidak boleh anda tutup menjadi kekusutan yang mengisyaratkan aplikasi ini masih menganggap anda baharu. v2.0.3 membaiki kedua-dua hujungnya — lawatan produk kini boleh disembunyikan, dan jika anda benar-benar mahu ia kembali, ada butang Main Semula Lawatan. Tunjukkannya apabila ia membantu, mengelahlah apabila tidak, dan biarkan pengguna memanggilnya atas terma mereka sendiri. Menghormati bahawa pengguna tidak lagi baharu ialah bentuk ketenangannya yang tersendiri.

Pembantu yang tidak mahu menyebut cara ia berfikir

Inilah yang benar-benar penting, dan ia berkait dengan masalah yang lebih mendalam yang sedang kami kejar.

Pembantu GeekBye menjawab berbeza bergantung pada konteks. Dalam sesuatu mesyuarat, "apa pendapat anda tentang ini?" sepatutnya mendapat jawapan yang bersifat perbualan dan sedar-mesyuarat. Dalam sesi pengekodan, kata-kata yang sama sepatutnya mendapat jawapan teknikal. Jadi backend menjalankan soalan itu melalui bingkai yang betul — panggilnya mod mesyuarat atau mod pengekodan — dan pembingkaian itu benar-benar mengubah jawapan yang anda terima.

Masalahnya: aplikasi tidak pernah memberitahu mod mana yang menjawab. Jadi apabila pembantu memberi anda jawapan berperisa kod untuk soalan berbentuk perbualan — atau menjawab soalan kod seolah-olah anda sedang berbual — ia kelihatan seperti si AI cuma salah. Ia tidak salah; ia berada dalam mod yang lain, dan anda tiada cara untuk melihatnya. Satu keadaan tersembunyi menjadikan tingkah laku yang betul kelihatan rosak. (Logik mod itu sendiri ialah kerja yang lebih besar — orkestra yang memutuskan cara menjawab soalan bukan-kod semasa sesi pengekodan — tetapi semua itu tidak berguna kepada anda jika anda tidak dapat melihat keputusan yang telah dibuatnya.)

v2.0.5 menambah lencana mod baca-sahaja kepada sembang: satu label kecil yang memaparkan sama ada pembantu menjawab dalam mod mesyuarat atau mod pengekodan. Sifat baca-sahaja itulah keseluruhan intinya — ia bukan kawalan yang anda tetapkan, ia ialah tingkap kepada keputusan yang sudah pun dibuat oleh sistem. Anda berhenti meneka mengapa sesuatu jawapan terasa janggal; anda boleh melihat bingkai asalnya.

Perincian yang menjadikan lencana itu jujur

Inilah keputusan kejuruteraan yang berbaloi disampaikan, kerana inilah jenis perkara yang memisahkan penunjuk yang sekadar dilekatkan daripada yang boleh dipercayai.

Maklumat mod datang daripada backend sebagai sebahagian daripada respons yang distrim — satu bingkai mode kecil dalam aliran peristiwa yang dihantar pelayan. Tetapi klien lama yang wujud sebelum ciri ini tidak akan tahu apa itu bingkai mode; paling baik ia mengabaikannya, paling teruk ia memaparkan sesuatu yang berselerak. Jadi klien mengumumkan keupayaannya: ia menghantar pengepala permintaan yang berkata saya tahu cara memaparkan lencana mod, dan backend hanya memancarkan bingkai mode kepada klien yang menghantarnya. Klien lama tidak pernah menerima isyarat yang tidak dapat ia tangani; klien baharu mendapat tepat bingkai yang mereka minta.

Ia satu jabat tangan satu pengepala, dan inilah perbezaan antara "kami menambah ciri" dan "kami menambah ciri tanpa merosakkan sesiapa yang belum mengemas kini." Suntingan semakan yang sama mengetatkan baki tingkah lakunya: lencana membersihkan dirinya sendiri semasa tetapan semula dan apabila konteks perbualan berubah (label mod yang usang ialah pembohongan kecilnya sendiri), dan ia hanya muncul dalam paparan sembang tempatnya sepatutnya.

Apa yang diajar dua keluaran "tanpa ciri" kepada kami

  1. Kegugupan ialah isyarat kepercayaan. Suis yang berkelip, butang yang melantun, label yang berlegar satu bingkai terlalu lama — tiada satu pun ialah pepijat dalam erti ranap, tetapi setiap satu berbisik aplikasi ini tidak benar-benar terkawal. Ketenangan ialah ketiadaan bisikan-bisikan itu, dan anda memperolehnya satu keadaan perlumbaan pada satu masa.
  2. Mod tersembunyi menjadikan tingkah laku yang betul kelihatan seperti pepijat. Pembantu melakukan perkara yang betul dan dipersalahkan atasnya, semata-mata kerana pengguna tidak dapat melihat bingkainya. Apabila sistem anda membuat keputusan yang tidak kelihatan yang mengubah output, tunjukkan keputusan itu — lencana baca-sahaja selalunya ialah keseluruhan penyelesaiannya.
  3. Ciri baharu sepatutnya tidak kelihatan kepada klien yang tidak dapat menggunakannya. Jabat tangan pengepala keupayaan bermaksud isyarat mod hanya sampai kepada klien yang dapat memaparkannya. Keserasian ke belakang bukanlah pemeriksaan versi yang dilekatkan kemudian; ia ialah klien yang menyatakan apa yang difahaminya dan pelayan yang menghormati jawapan itu.

Inilah keluaran yang tiada sesiapa menulis tajuk utama changelog tentangnya, dan ia sebahagian besar sebab GeekBye v2 terasa seperti sekarang. Untuk keluaran yang menjadi asas ketenangan ini dibina, lihat apa kos sebenar sesebuah versi 2 (v2.0.0). Untuk kerja kebolehpercayaan di sampingnya, hari aplikasi kami men-DDoS dirinya sendiri (v2.0.1) dan mengapa pencatat nota AI anda berhenti merakam di tengah mesyuarat (v2.0.9).

Artikel Berkaitan