
Mierīga programmatūra: kā nogalināt mirgojošu slēdzi un iemācīt tērzēšanai pateikt, kādā režīmā tā ir
Divi nelieli GeekBye laidieni bez lielām funkcijām — tikai iestatījumu slēdzis, kas beidza mirgot, un tērzēšanas asistents, kas beidzot pasaka, vai atbildēja sapulces režīmā vai kodēšanas režīmā. Lūk, cik patiesībā maksā "mierīga programmatūra", pa vienai detaļai.
Ne katrs laidiens ir kara stāsts. Daži ir tikai saraksts ar mazām, gandrīz neredzamām lietām, kas klusi bija nepareizas — tādām, kas neko neieblokē, bet liek lietotnei justies mazliet neuzticamai, mazliet nervozai, mazliet ne-tavai. GeekBye v2.0.3 un v2.0.5 bija tieši tādi. Nekādu jaunu funkciju. Tikai miers.
"Mierīga programmatūra" izklausās kā noskaņojums. Patiesībā tā ir kaudze konkrētu lēmumu. Lūk, trīs no tiem.
Slēdzis, kas nevarēja izlemt
Bija iestatījumu slēdzis — tas, kas vada audio atjaunošanu —, kas mirgoja, kad uz tā noklikšķināji. Pieskaries, lai ieslēgtu, un uz mirkli tas parādīja ieslēgtu, tad atlēca atpakaļ uz izslēgtu, tad nostabilizējās. Sīka vizuāla stostīšanās, bet acs to pamana, un tas nolasās kā lietotne nav pārliecināta, ko dara.
Cēlonis ir klasiska saskarnes sacīkste, ko sauc par optimistisko atjauninājumu. Kad noklikšķini uz slēdža, lietotnei ir divas izvēles: gaidīt, līdz iestatījums patiešām saglabāsies, un tikai tad atjaunināt slēdzi (pareizi, bet jūtas gauži), vai pārslēgt slēdzi nekavējoties un saglabāt fonā (jūtas mirklīgi). GeekBye darīja otro — pārslēdza uzreiz —, bet arī atkārtoti nolasīja saglabāto vērtību, kad tā atgriezās. Tātad secība bija šāda: tu noklikšķini, slēdzis optimistiski pārslēdzas uz ieslēgtu, mirkli vēlāk pienāk īstā saglabātā vērtība, un uz vienu kadru abas nesakrita, un slēdzis redzami atlēca.
Risinājums ir panākt, lai optimistiskā vērtība un apstiprinātā vērtība tīri sakristu — slēdzis apņemas ievērot tavu izvēlēto stāvokli un beidz sevi apšaubīt, kad saglabāšana apstiprinās. Blakus tam v2.0.3 veica neglamūrisku teksta pārstrādi: audio atjaunošanas apraksts tika saīsināts, lai saskaņotos ar tam līdzīgajām rindām, un iestatījumu formulējumi tika padarīti cilvēcīgāki. Nekas no tā nav funkcija. Viss tas ir atšķirība starp iestatījumu paneli, kas jūtas uzkonstruēts, un tādu, kas jūtas rūpīgi izkopts.
Tūre, kas negribēja aiziet
Jauno lietotāju tūres ir noderīgas tieši vienu reizi. Problēma ir tā vienreizība: pēc tam, kad esi to redzējis, ievadapmācības pārklājums, ko nevar aizvērt, kļūst par pārblīvējumu, kas signalizē šī lietotne joprojām domā, ka esi jauns. v2.0.3 salaboja abus galus — produkta tūri tagad var paslēpt, un, ja tu to patiešām gribi atpakaļ, ir poga Atkārtot tūri. Rādi to, kad tā palīdz, atkāpies, kad ne, un ļauj lietotājam to izsaukt pēc paša noteikumiem. Cieņa pret to, ka lietotājs vairs nav jauns, pati par sevi ir neliela miera forma.
Asistents, kas negribēja pateikt, kā domā
Šī ir tā, kam patiešām bija nozīme, un tā saistās ar dziļāku problēmu, ko bijām meklējuši.
GeekBye asistents atbild atšķirīgi atkarībā no konteksta. Sapulcē uz "ko tu par to domā?" vajadzētu saņemt sarunvalodisku, uz sapulci orientētu atbildi. Kodēšanas sesijā tie paši vārdi lai saņem tehnisku. Tāpēc aizmugursistēma izlaiž jautājumu caur pareizo ietvaru — sauc to par sapulces režīmu vai kodēšanas režīmu —, un šis ietvars patiesi maina atbildi, ko saņem.
Ķeza: lietotne nekad nepateica, kurš režīms atbildēja. Tāpēc, kad asistents deva kodēšanas garšas atbildi uz sarunvalodisku jautājumu — vai atbildēja uz koda jautājumu tā, it kā tu tērzētu —, izskatījās, ka mākslīgais intelekts vienkārši kļūdās. Tas nekļūdījās; tas bija otrajā režīmā, un tev nebija iespējas to redzēt. Slēpts stāvoklis lika pareizai uzvedībai izskatīties salauztai. (Pati režīma loģika ir lielāks darbs — orķestrators, kas izlemj, kā kodēšanas sesijas laikā atbildēt uz jautājumiem, kas nav par kodu —, bet nekas no tā tev nelīdz, ja neredzi lēmumu, ko tas pieņēmis.)
v2.0.5 tērzēšanai pievienoja tikai lasāmu režīma žetonu: mazu uzrakstu, kas parāda, vai asistents atbildēja sapulces režīmā vai kodēšanas režīmā. Tikai lasāms ir visa būtība — tas nav vadīklis, ko tu iestati, tas ir logs uz lēmumu, ko sistēma jau pieņēmusi. Tu beidz minēt, kāpēc atbilde šķiet dīvaina; tu redzi ietvaru, no kura tā nāca.
Detaļa, kas padara žetonu godīgu
Lūk, inženiertehniskā izvēle, ko vērts nodot tālāk, jo tā ir tāda lieta, kas atšķir piekabinātu indikatoru no uzticama.
Režīma informācija nāk no aizmugursistēmas kā daļa no straumētās atbildes — mazs mode kadrs servera nosūtīto notikumu straumē. Bet vecāks klients, kas radīts pirms šīs funkcijas, nezinātu, kas ir mode kadrs; labākajā gadījumā tas to ignorē, sliktākajā — attēlo kaut ko sagrozītu. Tāpēc klients paziņo par savu spēju: tas nosūta pieprasījuma galveni, kas saka es protu parādīt režīma žetonu, un aizmugursistēma izlaiž mode kadru tikai tiem klientiem, kas to nosūtīja. Vecie klienti nekad nesaņem signālu, ar ko nespēj tikt galā; jaunie klienti saņem tieši to kadru, ko pieprasīja.
Tā ir vienas galvenes rokasspiediens, un tā ir atšķirība starp "mēs pievienojām funkciju" un "mēs pievienojām funkciju, nesalaužot nevienu, kurš vēl nav atjauninājies." Tā pati pārskatīšanas kārta pievilka pārējo uzvedību: žetons pats notīrās, veicot atiestatīšanu un mainoties sarunas kontekstam (novecojis režīma uzraksts ir savs mazs melis), un tas rādās tikai tērzēšanas skatā, kur tam pieder vieta.
Ko mūs iemācīja divi "bezfunkciju" laidieni
- Nervozitāte ir uzticamības signāls. Mirgojošs slēdzis, atlecošs pārslēdzējs, uzraksts, kas kavējas kadru par ilgu — neviens no tiem nav kļūda avārijas nozīmē, bet katrs no tiem čukst šī lietotne nav gluži savā varā. Miers ir šo čukstu neesamība, un tu to nopelni pa vienam sacīkstes stāvoklim.
- Slēpts režīms liek pareizai uzvedībai izskatīties kā kļūdai. Asistents darīja pareizo lietu un tika par to vainots tikai tāpēc, ka lietotājs neredzēja ietvaru. Kad tava sistēma pieņem neredzamu lēmumu, kas maina rezultātu, parādi to lēmumu — tikai lasāms žetons bieži ir viss risinājums.
- Jaunām funkcijām jābūt neredzamām klientiem, kas tās nevar izmantot. Spēju galvenes rokasspiediens nozīmē, ka režīma signāls sasniedz tikai tos klientus, kas to prot attēlot. Atpakaļsaderība nav versijas pārbaude, kas piekabināta vēlāk; tas ir klients, kas pasaka, ko saprot, un serveris, kas ciena atbildi.
Šie ir laidieni, par kuriem neviens neraksta izmaiņu žurnāla virsrakstus, un tie lielā mērā ir iemesls, kāpēc GeekBye v2 jūtas tā, kā jūtas. Par laidienu, uz kura šis miers tika būvēts, skati ko patiesībā prasa versija 2 (v2.0.0). Par tam blakus veikto uzticamības darbu skati dienu, kad mūsu lietotne DDoS uzbruka pati sev (v2.0.1) un kāpēc tavs AI piezīmju rīks pārstāj ierakstīt sapulces vidū (v2.0.9).