Astudiaeth achos

Drafft wedi’i baratoi o un URL

Y safon asiantaidd

Nid y cynllun URL yw pwynt dolen ddofn. Y pwynt yw y gall unrhyw beth sy’n gallu tanio un (sgript, Shortcut, system bell, neu asiant) gyflwyno cyflwr sydd eisoes ar ganol ei olygu, yn barod i’r defnyddiwr, mewn un alwad. Nid sgrin yn unig. Drafft sydd eisoes wedi’i deipio, yn eistedd yn y lle iawn, yn barod i’r person ei adolygu a’i anfon.

Crynodeb

Mae’r rhan fwyaf o ddolenni dwfn yn agor sgrin ac yn stopio. Mae’r astudiaeth olaf hon yn dilyn un URL yn llawer pellach: lansiad oer sy’n glanio ar ddrafft cyfansoddi sydd eisoes wedi’i deipio, yn eistedd o dan ddalen templedi ddwy haen i lawr, gyda’r templed a ddewiswyd wedi’i amlygu a dim cyflyrau llwytho.

Mae dau URL o’r fath wedi’u tanio un ar ôl y llall yn dal i ddatrys yn lân. Yr ysgrifennwr olaf sy’n ennill ar y rhes wedi’i hamlygu a chorff y drafft fel ei gilydd. Daw’r dyfnder o un cam effaith ychwanegol yn yr un llif trefnedig y mae pob URL arall yn ei ddefnyddio. Mae’r gost yn amlwg: mae’r amlygiad a’r drafft bellach wedi’u cyplu, gall ras ddangos trosglwyddiad byr canol-hedfan, ac mae’n rhaid i’r ddolen ddilysu’r templed ar adeg dosrannu.


Safon

Drafft yw’r safon, nid drws

Dechreuodd dolennu dwfn fel ffordd o ganfod llwybr: roedd URL yn golygu lle, a’r gwaith oedd agor y sgrin iawn. Problem y defnyddiwr oedd beth bynnag a ddigwyddai nesaf.

Mae awtomeiddio yn troi’r disgwyliad ar ei ben. Nid oes ar sgriptiau, Shortcuts nac asiantau eisiau drws. Maent eisiau cyd-destun sydd eisoes wedi’i baratoi: tasg ar ei hanner, fel mai penderfyniad yw gweithred gyntaf y person, nid chwilio.

Y cwestiwn go iawn felly yw: a all un URL adael yr ap mewn cyflwr parod? Mae Iris yn ateb “gall” gan gadw pob gwarant o weddill y gyfres. Dim ond am fod y rheolau rasio a chyflwr eisoes yn gweithio y mae’r dyfnder a ddangosir isod yn bosibl. Po bellaf y mae URL yn cyrraedd, cryfaf y mae’n rhaid i’r bensaernïaeth oddi tano fod.


Dilyniant

Pum curiad o lansiad oer

Mae’r honiad ar ei hawsaf i’w ddangos. Un URL, wedi’i danio at ap nad yw’n rhedeg:

botmessages://compose/bot/design/templates/design-feedback

Mae’r ap yn lansio’n oer ac yn ei ddatrys yn bum curiad, wedi’u cymhwyso mewn trefn fel un symudiad di-dor:

  1. Gwthio rhagolwg y bot ar stac llywio’r cyfansoddi.
  2. Tyfu dalen y rhagolwg i wneud lle i gyflwr cyfansoddi gweithredol.
  3. Cyflwyno’r ddalen templedi dros y rhagolwg.
  4. Amlygu rhes y templed a enwyd, gyda sgrolio animeiddiedig sy’n ei chanoli.
  5. Paratoi’r drafft oddi tano gyda chorff y templed hwnnw, wedi’i adael yn weladwy uwchben ymyl y ddalen.

Y recordiad isod yw defnyddiwr demo’r pecyn, wedi’i lansio’n oer gan yr URL uchod. Mae’r rhes a ddewiswyd yn eistedd wedi’i hamlygu yn y ddalen, ac mae’r drafft a baratôdd (“Could you take a pass on the latest mocks…”) yn sbecian uwchben y ddalen, eisoes wedi’i deipio. Mae’r datrysiad yn chwarae fel un pas animeiddio o tua 200 milieiliad. Dim cyflwr llwytho, dim ail dap, ac nid yw’r defnyddiwr wedi cyffwrdd â’r sgrin.

Ffig 1 Un URL, lansiad oer. Mae’r rhagolwg yn gwthio, y ddalen yn tyfu, y ddalen templedi’n cyflwyno, y rhes yn amlygu, ac mae’r drafft uwch ei phen eisoes wedi’i baratoi.

Rasys

Dau URL, un enillydd, ar y ddau wyneb

Mae drafft wedi’i baratoi yn haeddu’r un craffu ag unrhyw wyneb arall y gall URL ei gyffwrdd. Mae erthygl y prawf straen yn mesur beth sy’n digwydd pan fydd URLau’n cyrraedd yn gyflymach nag y gall yr UI animeiddio; y fersiwn fer yw bod URLau sy’n rasio yn cywasgu i’r ysgrifennwr olaf yn ennill, gyda chanslo cydweithredol a dim cyflwr hanner-gymhwysedig ar ôl. Mae’r paratoi cyfansoddi yn ymuno â’r cytundeb hwnnw yn hytrach na negodi ei gytundeb ei hun. Taniwch ddau URL templed yn olynol:

botmessages://compose/bot/design/templates/release-notes
botmessages://compose/bot/design/templates/hero-copy-review

Mae’r cyntaf yn cyrraedd cyn belled â sgrolio ei res i’r golwg. Yng nghanol yr animeiddiad mae’r ail yn ei ganslo, yn ail-redeg yr un llif gyda’i dempled ei hun, ac yn glanio. Mae’r ddau wyneb yn adlewyrchu’r enillydd newydd: mae’r rhes wedi’i hamlygu a’r drafft rhannol weladwy uwchben y ddalen yn cytuno ynghylch pa URL a enillodd. Y cytundeb hwnnw yw’r pwynt. Mae’r amlygiad a chorff y drafft yn cael eu gosod gyda’i gilydd mewn un cam, felly nid oes ffenestr lle mae’r rhes yn enwi un templed a’r drafft yn dal un arall.

Ffig 2 Dau URL yn rasio am yr un drafft. Mae’r ail yn canslo’r cyntaf yng nghanol y sgrolio ac yn ennill yr amlygiad a chorff y drafft fel ei gilydd.

Cynllun

Un achos effaith yw’r paratoi

Y tu mewn i’r ap sy’n defnyddio’r pecyn, mae’r llif sy’n berchen ar yr wyneb cyfansoddi yn mapio’r bwriad hwn i ddilyniant wedi’i dynnu o’r un set gaeedig o weithrediadau y mae pob pwynt mynediad arall yn ei defnyddio. Nid oedd angen math newydd o lywio i gyrraedd drafft wedi’i baratoi ddwy haen o ddalennau i lawr. Un achos effaith newydd oedd ei angen:

case .openBotPreviewTemplate(let pid, let tid):
    return [
        .nav(.popToRoot),
        .effect(.clearTemplateHighlight),
        .nav(.dismissSheet),
        .nav(.push(.botPreview(pid))),
        .nav(.present(.templates(pid))),
        .effect(.highlightTemplate(tid))
    ]

A chymhwyso’r effaith, sy’n gwneud dau beth yn hytrach nag un:

case .highlightTemplate(let id):
    highlightedTemplateID = id
    if let template = DemoData.template(id: id) {
        selectTemplate(template)
    }

Mae dewis y templed yn ei osod yn weithredol ac yn rhag-lenwi’r drafft. Mae’r defnyddiwr yn gweld y rhes wedi’i hamlygu yn gyntaf am fod y ddalen templedi ar y brig; mae cau’r ddalen yn datgelu wyneb cyfansoddi a oedd yn barod cyn i’r defnyddiwr edrych. Mae dyfnder y canlyniad wedi’i gyfansoddi’n gyfan gwbl o weithrediadau yr oedd y pecyn eisoes yn gwybod sut i’w trefnu, eu canslo, a’u hailchwarae.

Ffig 3 Un bwriad, chwe gweithrediad trefnedig. Mae effaith highlightTemplate yn gwneud dau beth mewn un cymhwyso: mae’n gosod y rhes wedi’i hamlygu ac yn dewis y templed, sy’n rhag-lenwi’r drafft.
Rhybudd

Cyplu yw’r paratoi cyfunol, ac mae’n ymddangos mewn tri lle. Am fod yr amlygiad a’r drafft yn cael eu gosod mewn un cam, mae prawf sy’n gwirio’r amlygiad hefyd yn gwirio’r drafft yn ymhlyg; os bydd angen i’r ddau symud yn annibynnol ryw ddydd, mae’n rhaid hollti’r cam yn ddau. O dan ras mae’r cyplu’n weladwy: mae sgrolio’r templed cyntaf yn dechrau cyn i’r ail URL ennill, felly mae defnyddiwr sy’n gwylio’n ofalus yn gweld trosglwyddiad byr canol-hedfan yn hytrach na thoriad glân. A pho ddyfnaf y caniateir i URL gyrraedd, y mwyaf sy’n rhaid bod yn wir cyn iddo redeg. Rhaid gwrthod drafft wedi’i baratoi yn erbyn templed nad yw’n bodoli pan ddosrennir yr URL, cyn i’r un o’r curiadau redeg, oherwydd byddai dilyniant sy’n hanner-gymhwyso yn gadael y ddalen ar agor dros ddrafft na chafodd erioed ei lenwi.


Cyfres

Beth mae un alwad yn ei drosglwyddo

Dyma ddarn olaf y gyfres. Mae gan y pum honiad arall (y rasys, yr ôl troed, y datrys ymwybodol o gyflwr, y wyneb mewnbwn, ac un datrysydd i dapiau ac URLau) erthygl yr un, ac mae tudalen y gyfres yn dal y map.

Y patrwm y maent yn ei greu gyda’i gilydd yw’r un y dechreuodd y dudalen hon ag ef. Galwad i mewn i’r ap yw URL, a mesur y bensaernïaeth y tu ôl iddi yw’r hyn y caniateir i’r alwad honno ei drosglwyddo. Yma mae’n trosglwyddo drafft sydd eisoes wedi’i deipio, ddwy ddalen i lawr, yn aros am benderfyniad dynol. Y sgrin a agorodd oedd y peth lleiaf.