Lle mae trin URLau yn byw
Async Digital Ltd Caerdydd, DU
Mae pob llyfrgell a fabwysiadwch yn ailysgrifennu rhywfaint o’ch cod ar ei delw ei hun. Mae’r prawf cyfyngiant yn gofyn faint: a all y defnyddiwr ateb “lle mae eich trin URLau yn byw?” gydag enw ffolder a chanran isel? Mae dolennu dwfn yn bryder ymwthiol wrth natur, gydag URLau yn glanio i gyflwr golwg mympwyol, felly mae’r ateb yn cyfrif mwy nag arfer. Mae’r astudiaeth achos hon yn mesur yr ateb ar gyfer un defnyddiwr o Deep Link Kit: un ffolder yn dal 17.5% o linellau’r ap, tri mewnforio wedi’u dogfennu y tu allan i’r ffolder, haen parth heb yr un symbol dolennu dwfn, ac ôl troed haniaethu o un cydymffurfiad protocol, un is-ddosbarth, ac un trosysgrifad dull. Y rhif mwyaf addysgiadol yw’r un sy’n edrych waethaf: 24 darlleniad uniongyrchol o gyflwr y cydlynydd gan olygon, sy’n troi allan i fod yn gost naturiol cyflwr byrhoedlog a rennir mewn unrhyw bensaernïaeth, a’r union beth sy’n prynu’r un ymddygiad i dap ac i URL.
Prawf unrhyw lyfrgell seilwaith yw a all y defnyddiwr ddal i bwyntio ati. Gofynnwch lle mae’r trin URLau yn byw. Os mai enw ffolder a chanran isel yw’r ateb, mae’r llyfrgell yn gwneud ei gwaith. Y darn hwn yw’r ateb hwnnw, wedi’i fesur, ar gyfer defnyddiwr demo Deep Link Kit.
Y cwestiwn sy’n mesur llyfrgell
Mabwysiadwch unrhyw ddibyniaeth ac mae rhywfaint o’ch cod yn dechrau edrych fel ei chod hi. Dyna’r fargen, ac mae’n un deg fel arfer. Y cwestiwn gwerth ei ofyn cyn llofnodi yw faint, a lle. Mae llyfrgell logio sydd eisiau un mewnforio ac un alwad ym mhob ffeil yn rhad. Mae llyfrgell lywio sydd eisiau dirprwy ym mhob sgrin yn ddrud mewn ffordd nad oes yr un rhestr nodweddion yn ei chyfaddef.
Mae dolennu dwfn ar y pen drud wrth natur. Gall URL gyrraedd unrhyw foment a glanio i unrhyw gyflwr golwg, felly mae ei drin yn iawn yn cyffwrdd â llywio, cyflwyno dalennau, safle sgrolio, chwilio, a beth bynnag arall y mae’r ap yn ei ystyried yn gyflwr. Mae’r gweithrediad diog yn taenu’r trin hwnnw dros bob sgrin y gall ei chyrraedd. Dyna pam rwy’n dal llyfrgell dolennu dwfn i fersiwn galetach o’r prawf cyfyngiant: dylai’r defnyddiwr allu ateb “lle mae eich trin URLau yn byw?” gydag enw ffolder a chanran isel.
Daw’r rhifau yn y darn hwn o ap negeseuon demo a adeiladwyd fel defnyddiwr y pecyn, yr un ap y mae gweddill y gyfres hon yn ei fesur. Yr hyn sy’n dilyn yw’r archwiliad y byddwn i eisiau ei ddarllen cyn mabwysiadu pecyn unrhyw un arall: y ffolder, y ffin, yr hyn y mae’r defnyddiwr yn ei ysgrifennu, a’r cyplu sy’n edrych fel gollyngiad nes i chi olrhain o ble mae’n dod.
Un ffolder, a rhif gonest
Ateb y defnyddiwr yw ffolder o’r enw DeepLink/ ac 17.5% o linellau’r ap. Mae popeth y mae’r pecyn yn ei gyffwrdd yn byw yn y ffolder honno: 1,206 llinell ar draws 11 ffeil. Caiff gweddill yr ap anghofio bod y pecyn yn bodoli, gyda thri eithriad y mae’r adran nesaf yn cerdded trwyddynt.
- Views: 2,311 llinell (33.5%)
- Components: 2,021 llinell (29.3%)
- DeepLink: 1,206 llinell (17.5%)
- Domain: 1,087 llinell (15.8%)
- Pwynt mynediad yr ap a gwifrau lefel uchaf: 270 llinell (3.9%)
Dim ond yn erbyn y cymhlethdod y mae’n ei gynnwys y mae rhif cyfyngiant yn golygu unrhyw beth. Nid map tenau o URL i sgrin yw hwn. Mae’r ffolder yn dal wyneb URL o 18 bwriad gyda datrys ymwybodol o gyflwr, canslo tra ar y gweill, cymrodeddu’r ysgrifennwr olaf yn ennill pan fydd URLau yn rasio, hepgor camau dianghenraid, ac olrhain llawn. Rhif gonest am nodwedd sy’n wirioneddol gymhleth yw’r 17.5% hwnnw, nid arwydd bod y pecyn yn gollwng. Cywasgu’r holl ymddygiad hwnnw i lai na phumed o’r cod, gyda gweddill yr ap heb ei gynnwys, yw’r pecyn yn gwneud ei waith.
Tri mewnforio a haen parth dawel
Dim ond tair ffeil y tu allan i’r ffolder sy’n mewnforio’r pecyn: pwynt mynediad yr ap, un golwg cyrchfan, ac un golwg dalen. Mae’r pwynt mynediad yn gwifro’r cydlynydd i’r amgylchedd ac yn trosglwyddo URLau sy’n cyrraedd. Mae’r golwg cyrchfan yn derbyn y baton pan fydd gwthiad dolen ddofn yn glanio, fel y gall orffen y daith a ddechreuodd yr URL. Mae’r golwg dalen yn gofyn i’r ffasâd llywio am un cam ymlaen penodol. Mae pob mewnforio yn fwriadol, wedi’i ddogfennu, ac yn fach.
Mae’r haen parth, y rhan o’r ap sy’n gwybod beth yw sgwrs, neges, person, ac atodiad mewn gwirionedd, yn cynnwys dim symbolau dolennu dwfn. Dim mewnforio, dim cyfeiriad, dim gollwng teipiau. Mae’r llinell yn eistedd lle dylai: y pecyn sy’n berchen ar sut rydych chi’n cyrraedd rhywle, a’r parth sy’n berchen ar beth sydd yno pan gyrhaeddwch.
Mae ffiniau fel hyn yn talu eu ffordd pan fydd pethau’n newid. Pan wnaeth rhyddhad torrol o’r pecyn ailsiapio ei sylfaen cydlynydd, amsugnodd y defnyddiwr y mudo cyfan y tu mewn i un ffeil. Mae newid ar un ochr i ffin go iawn yn aros ar yr ochr honno.
Yr hyn y mae’r defnyddiwr yn ei ysgrifennu mewn gwirionedd
Mae mabwysiadu’r pecyn yn costio tri lluniad i’r defnyddiwr.
- Un cydymffurfiad protocol. Mae teip llif yn datgan bwriadau, llwybrau, llwybrau dalennau, a sgil-effeithiau’r ap, ac yn gweithredu un ffwythiant pur sy’n ehangu pob bwriad yn rhestr ddatganiadol o gamau.
- Un is-ddosbarth. Mae cydlynydd yr ap yn etifeddu’r llywyr, y ffasâd llywio, y gweithredwyr, a’r cofrestrfeydd baton o ddosbarth sylfaen y pecyn.
- Un trosysgrifad dull. Mae dull
applyyn trin achosion sgil-effaith yr ap ei hun, a dim byd arall.
Y manylyn gwerth oedi drosto yw’r hyn nad yw’r trosysgrifad yn ei gynnwys. Nid yw llywio strwythurol (gwthio, cyflwyno, dychwelyd, cau) byth yn ymddangos yn switsh y defnyddiwr, oherwydd y pecyn sy’n anfon y camau hynny ei hun. Y defnyddiwr sy’n disgrifio ei ap; y pecyn sy’n ei symud.
Mae’r rhestrau camau yn darllen fel dogfennaeth o’r wyneb URL. Mae agor sgwrs yn ehangu i ragddodiad ailosod a rennir, yna .effect(.scrollToConversationRow(id)), yna .nav(.push(.conversation(id))). Mae pob URL yn datgan ei ofynion cyflwr cychwynnol unwaith, ac mae’r pecyn yn cywasgu’r rhagddodiad i’r hyn y mae’r cyflwr presennol ei angen mewn gwirionedd. Y dewis arall gweithdrefnol, llwybr o alwadau cau-yna-dychwelyd-yna-gwthio wedi’u gwasgaru ar draws breichiau achos, yw’r cod y mae’r rhan fwyaf o apiau yn gorffen ag ef. Y siâp datganiadol yw’r gwahaniaeth rhwng disgrifio cyrchfan a rhoi cyfarwyddiadau.
Y llygredd nad yw’n llygredd
Y rhif mwyaf diddorol mewn unrhyw archwiliad cyfyngiant yw’r un sy’n edrych fel torri rheol. Dyma fe: mae golygon yn darllen cyflwr y cydlynydd yn uniongyrchol 24 gwaith, trwy wyth priodwedd gydag enwau fel expandedAvatar, activeSearchQuery, pendingAttachmentExpansion, a lastReturnedConversationId. Ar yr olwg gyntaf, mae hynny’n darllen fel y pecyn yn gollwng i’r haen olygon.
Olrheiniwch yr ysgrifenwyr ac mae’r darlun yn troi. Mae gan bob un o’r priodweddau hynny ysgrifennwr nad yw’n ddolen ddofn: tap ar afatar, testun yn cyrraedd y maes chwilio, dychwelyd naturiol o edefyn. Byddai’r un cyflwr yn bodoli mewn fersiwn o’r ap hwn heb unrhyw ddolennu dwfn o gwbl, dim ond wedi’i wasgaru ar draws perchnogion gwahanol. Ni wnaeth y pecyn ddyfeisio’r cyflwr. Fe’i cydleolodd ar y cydlynydd, fel mai un teip sy’n gyfrifol am yr hyn y mae’r rhyngwyneb yn ei wneud ar hyn o bryd, gyda mynedfeydd tap a mynedfeydd URL yn ysgrifennu trwy’r un wyneb.
Y cydleoli hwnnw sy’n prynu cydwedd ymddygiad. Mae pwynt mynediad tap y gosodiadau yn agor URL gosodiadau ac yn mynd trwy’r un datryswr ag y byddai’r URL.
Dim drifft rhwng tap ac URL, oherwydd does dim ail lwybr cod i ddrifftio.
Y darlun cyplu llawn, wedi’i gyfrif ar draws yr haen olygon: mae 48 safle galw yn glanio ar wyneb y cydlynydd sy’n berthnasol i ddolennu dwfn. O’r rheini, pwyntiau mynediad tap yw 19, a fyddai’n bodoli mewn unrhyw bensaernïaeth. Agoriadau bwriadol wedi’u llwybro trwy URL yw tri (gosodiadau, chwilio, a phroffil), y cydwedd uchod wedi’i wneud yn ddiriaethol. Mae dau yn cyffwrdd â’r ffasâd llywio yn uniongyrchol. Y 24 sy’n weddill yw’r darlleniadau cyflwr, sy’n troi allan i fod yn gost naturiol cyflwr byrhoedlog a rennir mewn unrhyw bensaernïaeth, nid cost a osodwyd gan y pecyn.
Yr hyn y mae’r dyluniad yn talu amdano
Nid oes yr un dyluniad am ddim, ac nid archwiliad yw archwiliad cyfyngiant sydd ond yn adrodd yr enillion. Mae tair cost yn werth eu henwi.
Mae’r cydlynydd yn berchen ar wyth darn o gyflwr UI byrhoedlog. Ar y raddfa hon mae hynny’n hylaw; tua 12 byddai’n dechrau teimlo fel gwrthrych sy’n gwneud gormod, a hollti cyflwr llywio oddi wrth gyflwr UI byrhoedlog yn arsylladwyon ar wahân fyddai’r cam naturiol nesaf.
Un switsh yw’r ffwythiant sy’n ehangu bwriadau yn gamau. Mae’n darllen yn dda ar faint presennol yr wyneb URL; heibio tua 25 bwriad byddai angen ei dorri’n gynorthwywyr fesul teulu o fwriadau.
Mae gan benderfyniaeth fil profion. Mae dolennu dwfn yn cyfrif am fwy na hanner cyfres brofion y defnyddiwr yn ôl llinellau, 57% ohoni. Mae rasys, canslo, datrys ymwybodol o gyflwr, a dosrannu URLau i gyd angen sylw, felly mae’r pwysau’n gyfiawn, ond byddai llyfrgell a roddai lai o wynebau cydamseredd llwyth-gario i’w defnyddwyr yn gadael iddynt ysgrifennu llai o brofion.
Y darlleniad rwy’n ei gymryd o’r archwiliad: mae llyfrgell yn pasio’r prawf cyfyngiant pan all y defnyddiwr ateb y cwestiwn yr agorodd y darn hwn ag ef, enw ffolder a chanran isel. Yma’r ateb yw DeepLink/ ac 17.5%, gyda haen parth lân, tri mewnforio wedi’u dogfennu, a chyplu haen olygon sy’n lleihau i gost gyffredin cyflwr a rennir. Mae’r pecyn yn ennill ei haniaethu.
Mae cyfyngiant yn setlo lle mae trin URLau yn byw. Nid yw’n dweud dim eto am y cwestiwn anoddach y mae URL yn ei wynebu wrth gyrraedd: beth ddylai’r ddolen hon ei olygu, o ystyried y cyflwr y mae’r ap eisoes ynddo? Dylai’r un URL byr gyflwyno gosodiadau fel dalen o’r gwraidd a’u gwthio o du mewn i edefyn. Y penderfyniad hwnnw, a’r ciplun wedi’i rewi o gyflwr yr ap sy’n ei wneud yn ddeterministig, yw pwnc y darn nesaf yn y gyfres hon. Mae’r map llawn yn byw ar yr hwb dolennu dwfn.