1. Personaalsed rahandus10 jaotatud plokiahelarakenduste kujunduspõhimõtted
Ethereum mannekeenidele

Autor Michael Solomon

Blockchaini tehnoloogia on andmete haldamise viisi häiriv ja ümberkujundav lähenemisviis. See lubab radikaalselt muuta viisi, kuidas me jagatud keskkondades tundlikku teavet käsitlevaid ülesandeid täidame. Tundlike andmetega seotud kriitilised toimingud nõudsid ajalooliselt tugevat keskasutust, et veenda andmete omanikke keskkonda piisavalt usaldama, et see saaks nende andmeid hallata.

Üks raskemaid takistusi, millest iga blokeeritav dApp peab ületama, on usalduse loomine. Kasutajad peavad enne tundlike isiku- ja äriandmete edastamist usaldama, et plokiahelas töötav tarkvara sisaldab kindlaid meetmeid turvalisuse tagamiseks ja privaatsuse kaitsmiseks.

Järgides mitmeid põhilisi kujundusjuhiseid, võite selle usalduse loomiseks minna kaugele. Kui järgite siin leiduvat kümmet blokeeringu rakenduste kavandamise eesmärki, aitate teil kasutajatel oma rakendust piisavalt usaldada, et seda kasutada ja sellele usaldada.

Kujundage usalduse jaoks ahelarakendused

Üks peamisi põhjuseid, miks enamik organisatsioone blokeerivate lahenduste poole liigub, on võime jagada andmeid sõlmede vahel, mis üksteist ei usalda. Kui järele mõelda, seab see dApp-i arendajate jaoks kõrge riba. Eduka dApp-i väljatöötamiseks peate veenma oma kasutajaid usaldama teie tarkvara oma andmetega, kui saadate selle paljudele teistele sõlmedele, mida te ei usalda (ja ka nemad ei usalda).

Usaldus on tavaliselt (kuid mitte alati) transitiivne. (Jah, olete tagasi matemaatikaklassi. Kui A = B ja B = C, siis A = C. Olete teretulnud.) See on kõige tavalisem viis, kuidas inimesed inimestena usaldusega tegelevad.

Kui te usaldate Maryt ja Joe usaldab teid, siis on Joe'ga Mary usaldamisega ilmselt kõik korras. Oletame, et olete toidukriitik. Joe usub, et soovitate head toitu. Kui postitate, et teile meeldib Maarja virsikupirukas, proovib Joe tõenäolisemalt oma virsikupirukat, kuna Joe usub teie maitsesse toidus. Kuid seda ei saa teha usaldusväärse keskkonnaga. Blokeerimisahelaga rakendustes usaldavad teie kasutajad teid, kuid te ei usalda teisi oma blokeeringvõrgus.

Teie esimene disaini eesmärk on kõrgetasemeline eesmärk, mida peate kõigi otsuste tegemisel silmas pidama kui tipptasemel motivaatorit. Paljud järgnevad kavandamise eesmärgid toetavad seda: kujundage oma dApp-id usalduslikuks. See eesmärk tähendab, et soovite kaaluda, mida teie kasutajad soovivad ja mis paneb neid tundma, et nad saavad teie dAppi usaldada.

Kasutajad peavad teadma, et nende andmete eest hoolitsete te ise. Teie dApp ei tohiks midagi varjata ja peaks hõlbustama toimuva kontrollimist. See peaks selgelt edastama head ja halba teavet ning pakkuma üldist heaolutunnet. Ehkki see on tarkvara pikk tellimus, on vaja usaldust luua.

Usalduse kujundamisel on kõige olulisem mõista, kes on teie kasutajad ja mis paneb nad end mugavalt tundma. Ühesõnaga, tundke oma kasutajaid. Teage, mida nad tahavad ja kuidas saate veenda neid selles, et te ei kavatse nende aega raisata ega ära kasutada nende usaldust teie vastu.

Jõustage järjepidevust plokiahela rakendustes

Üks lihtsamaid viise segaduse vältimiseks on oma dApp-rakenduste võimaluste ja vastuoluliste kogemuste piiramine. Microsoft õppis järjekindluse võimsust juba ammu. Nad töötasid välja standardid, kuidas kasutajatega suhelda, ning uurisid ja määratlesid kasutajaliidese loomise kõik aspektid. Sellepärast tunnevad Microsofti rakendused üksteisega sarnast.

Kui olete kasutanud ühte Microsofti rakendust, tunnete ära vähemalt teiste Microsofti rakenduste üldise kasutajaliidese. (Ja kui olete mõnda aega Microsofti tooteid kasutanud, mäletate tohutut häiret, mille Microsoft põhjustas, kui nad muundusid klotsipõhiseks kasutajaliideseks - peamiselt seetõttu, et kõigil oli Microsofti pärandiliidesega nii hea meel.)

Näiteks kui soovite leida käimasoleva Windowsi programmi praeguse versiooni, võite peaaegu alati klõpsata või puudutada nuppu Spikker, seejärel klõpsata või koputada menüükäsku Teave menüü Abi kohta.

Alloleval pildil on VS-koodi menüüelement About. Menüü Element on olemas peaaegu igas Windowsi rakenduses ja see kuvab teie käitatava programmi põhiteavet, sealhulgas versiooninumbrit. Lihtne kasutajaliidese järjepidevuse näide teeb rakendusteabe leidmise hõlpsaks kõigile, ilma et peaksite seda jahtima.

VS-kood Ethereum

Järgmine pilt näitab VS-koodi dialoogiboksi About. Enamiku Windowsi rakenduste väljalasketeabe leiate, klõpsates või koputades nuppu Spikker → Teave selle kohta. See on järjekindluse jõud.

VS-kood Teave dialoogiboksi kohta

Teie dApp-rakendused peaksid määratlema selged standardid iga kasutaja interaktsiooni jaoks. Kui palute oma kasutajatel sisendit anda, tehke seda kogu oma dApp-rakenduses samamoodi. Kui kasutaja sisestab toote ID mitmes kohas, peaks sisendväli igas asukohas sama välja nägema. Kasutage samu värve, fonte ja sisestusmeetodit, et anda oma dApp-ile ühtlane ilme ja tunne.

Veel üks valdkond, milles GUI-rakendustes järjepidevust leiate, on klaviatuuri otseteed. Peaaegu alati saate esiletõstetud teksti kopeerimiseks kasutada klahve Ctrl-C ja klaviatuuri Ctrl-V abil, et see tekst uude kohta kleepida. Järjepidevad kiirklahvid muudavad uue tarkvara õppimise ja kasutamise veelgi lihtsamaks.

Samal viisil standardige kogu väljund. Veateated ja -teated on standardimise peamised valdkonnad. Võimalusel kasutage tavalisi sisend- ja väljundkihte, nii et kogu sisend ja väljund kasutaksid sama funktsioonide komplekti. Kogu dApp näib olevat järjepidevam.

Üritate oma kasutajaid julgustada teie dApp-i kasutama. Järjekindla kasutajaliidesega dApp on usaldus, mis loob usalduse. Järjepidevus hõlbustab kasutajatel ka teie tarkvara kasutamise õppimist ning hõlpsasti õpitav rakendus on selline, mida kasutajad tõenäoliselt eelistavad ja aktsepteerivad.

Eemaldage läbipaistvusavaldustega blokeeritud kettide rakenduste kahtlus

Üks põhjus, miks kasutajad rakendust umbusaldavad, on see, et nad ei saa sellest tegelikult aru. Kasutajad esitavad oma andmed, kuid pole kindlad, mis pärast seda juhtub. Nad ei tea, kuhu nende andmed jõuavad ja kas need on ikkagi süsteemis. See andmete mustasse kasti paigutamise tunne võib blockchain dAppsiga olla veelgi tugevam.

Kuna blockchain-tehnoloogia muutub populaarsemaks, kasvab üldine teadlikkus selle omadustest. See tähendab, et paljud teie kasutajad teavad, et teie dApp saadab oma andmeid paljudesse teistesse arvutitesse, potentsiaalselt kogu maailmas. Üks takistustest, millest peate ületama, on oma kasutajate veenmine, et kaitsete nende tundlikke andmeid.

Andke selgelt teada, milliseid andmeid teie dApp vajab, miks see vajab igat tüüpi andmeid ja mida te sellega teete. Te ei pea seda teavet iga kord andmete küsimisel edastama, kuid see peaks olema saadaval esmakordselt uue kasutajaga suheldes ja pärast seda nõudmisel.

Samuti peaksite kasutajatel olema hõlpsasti näha, mida nad on teinud (ja mida teie dApp on nende andmetega teinud). Läbipaistvuse pakkumine igal sammul annab kasutajatele enesekindluse tunde.

Tehke kasutajatele hõlpsaks põhjalik uurimine ja toimingute kontrollimine. Selline läbipaistvuse tase annab kasutajatele kindluse, et teie dApp teeb seda, mida ta väidab, ja võib vähendada muret, et teie dApp varjab midagi. Sõltuvalt kasutaja murest ja teie enda kujundamisjuhistest saate läbipaistvuse lisada igasse töövoogu või tellimisfunktsioonidesse, et energiakasutajad saaksid seda põhjalikumalt uurida.

Andke tagasisidet, juhiseid ja ootuste seadmist oma blokeeringu rakendustele

Järgmine kujundus-eesmärk, mida teie blokeeringu rakenduse jaoks vajate, on tagasiside ja juhiste pakkumine ning ootuste seadmine. See eesmärk on läbipaistvuse loogiline laiendus. Kui läbipaistvus muudab tehingute ja töövoogude üksikasjad kasutajatele hõlpsasti kättesaadavaks, siis tagasiside, juhised ja ootuste seadmine muudavad läbipaistvuse tavaliseks töövooguks. Selle asemel, et kasutajatel lihtsalt juhtunut näha, peaksite andma neile igal olulisel töövoo etapil informatiivset tagasisidet.

Näiteks kui olete tootja ja andsite just uue traktori omandiõiguse üle saatjale, võib teie uus tarneahela dApp anda teile teate „Sa edastasid just traktori seerianumbriga ABC-12345 Unified Shippingule - tehingunumber 456778 . ”Muidugi, tõenäoliselt saadaksite kapitaliühikute ülekandmiseks rohkem üksikasju, kuid saate idee. DApp esitas tagasisidet, mis sisuliselt ütleb: “Hei, hea töö. Siin on see, mida tegite. ”Informatiivne tagasiside on esimene samm veenmaks kasutajaid teie dApp-i usaldama. Tagasiside annab neile kindluse, et nad kasutavad tarkvara õigesti.

Võite tagasiside näidet laiendada, teavitades kasutajaid ka järgmisest toimingust. Traktori näites võiks teie tagasisideteade sisaldada ka teadet „Kas soovite pealkirja nüüd vabastada?” Koos järgmise klõpsamise või nupu klõpsamise võimalusega, et liikuda järgmisse sammu. Tööülesande täitmise lõpuleviimisel meeldib see aidata tagada, et kasutajad mõistavad õiget töövoogu ja jätavad neile mulje, et tarkvara aitab neil oma tööd õigesti teha. Kui tarkvara muudab kasutajad efektiivsemaks, läheb see usalduse suurendamiseks palju edasi. Kõik armastavad tarkvara, mis muudab nad hea välimusega!

Klassiga saate hallata oma plokiahela rakenduse vigu

Olge ausad, vigu juhtub. Ja mõnikord on need vead suured. Loodetavasti leidsite testimise ajal oma tarkvaras kõik suured vead. (Testisite ammendavalt, eks?) Kui tegite, on enamik tootmisel ilmnenud vigadest kasutajavead.

Kasutajavigadega tegeledes proovige vältida teateid, mis ütlevad peensusteni: "Te segasite!" Keskenduge olukorra lahendamisele, mitte süüdistamisele.

Tõenäoliselt mäletate oma esimese GPS-seadme kasutamist autos. Kui olete GPS-i algusaegadel pakutud marsruudist kõrvale kaldunud, kuulsite üsna karmi “Uute marsruutide” teadet. Hääl oleks võinud öelda, et te ei lähe sinna, kuhu ma ütlesin. Oota, ma ütlen teile, kuidas jõuda tagasi selle juurde, mida ma teile rääkisin. ”Veateated peaksid kasutajaid teavitama toimunust, kuid keskenduma sellele, mida edasi teha. Jah, GPS tegi seda, kuid üldiselt oli see pärast peent kratsimist. Ärge süvendage oma kasutajaid.

Teiselt poolt, ärge kulutage liiga palju aega vigadele keskendumisega. Liiga paljusõnalised veateated võivad olla segased ja nende lugemine võtab liiga kaua aega. Saage asja juurde. Kavandage veakäsitlus alati kasutaja vaatenurgast. Andke kasutajatele kõik, mida nad vajavad vigade kiireks ja otsustavaks reageerimiseks, ja mitte midagi muud.

Veateated aitavad lõppkasutajatel toimuvast aru saada ja aitavad tõrkeotsingu korral abi ka personalil. Kujundage oma tõrkesõnumite süsteem nii, et see pakuks vajalikke kasutajateateid ja nõudmisel ka paljusõnalisemaid teateid tõrkeotsingu ja uurimise jaoks.

Pidage meeles, et plokiahel on muutumatu, nii et kõik vead, mis muudavad selle plokiks, on alati olemas. Teie dApp peaks lahendama kasutajaga seotud probleemid enne andmete salvestamist plokiahelasse. Vigade käsitsemise trikk on suunata kasutajad õigele lahendusele ilma neid aeglustamata. See nõuab tähelepanu pööramist sellele, kes on teie kasutajad, kuidas nad teie dApp-i kasutavad ja mida nad vajavad probleemi lahendamiseks. Üks teie kujundamiseesmärke peaks olema pakkuda veakäsitlust, mis vastab igal juhul teie kasutajate vajadustele.

Disainifunktsioonid on teie blokeeringu rakenduses keskendunud kasutaja toimingutele, mitte andmetele

Funktsioonid pakuvad teie nutikate lepingute toiminguid. Üks viis nutikate lepingute vaatamiseks on see, et need koosnevad andmetest (nimisõnad) ja toimingutest (tegusõnad). Nutikate lepingute raamimine muudab nende kirjeldamise ja kujundamise lihtsamaks ning selle tulemuseks on üldiselt rakendus, mis voolab hästi kasutaja vaatenurgast.

Kuna kõik rakendused vastavad mõne kasutaja nõudmistele, on mõistlik tarkvara kasutaja jaoks silmas pidades kujundada. Kõrgeimal tasemel, kui kasutaja soovib luua uue tellimuse, peaks teie alustama funktsioonist nimega createNewOrder (). Kujunduse täpsustamisel võite asju muuta, kuid kasutaja perspektiivist alustamine aitab säilitada tarkvara eesmärkide autentsust. Kasutaja eesmärke täitvate tehniliste komponentide kujundamine aitab vältida ka kõrgetasemelistest funktsionaalsetest eesmärkidest liiga kaugele kaldumist.

Paljud tänapäevased tarkvaraarendusorganisatsioonid sõltuvad meetoditest, mis algavad kasutaja lugudega. Arendajana palutakse teil toota tarkvara, mis vastab nõudele, mis näeb välja järgmine: „Kasutajana tahan ____.” - eelmises väljavõttes tühjas), on hea disainistrateegia kasutajasõbraliku tarkvara loomiseks.

Iga funktsioon ei pea otseselt kaardistama kasutaja toimingutega, kuid teie kõrgetasemelised funktsioonid peaksid välja nägema nii, nagu need vastaksid kasutajate lugudele. Mis tahes ülesande tehniliste toimingute tegemiseks vajate alati madalama taseme ülesandele või andmetele orienteeritud funktsioone. On okei, kui need funktsioonid ei kata otseselt kasutaja lugusid. Kuid teie madalama taseme funktsioonid peaksid mängima osa funktsioonidest, millega kasutajad suhelda saavad. Nagu väga üldine rusikareegel, peaksid teie avalikud funktsioonid sarnanema kasutajaloo vastustega.

Salvestage plokiahela rakenduse andmeid kasutaja toimingute, mitte andmestruktuuride põhjal

Kasutajad ei pruugi andmetega vahetult suhelda, kuid siiski peaksite proovima andmeid korraldada vastavalt kasutaja nõudmistele. See üldeesmärk on pigem rusikareegel. Kasutage seda eesmärki, kui kavandate algselt oma nutika lepingu andmete nõudeid. Tõenäoliselt peate kujundust viimistlema ja seda muutma, kuid kasutaja taotlustega kaardistatud andmetega alustamine aitab teie tarkvaral jääda kasutajate nõudmistele vastavaks.

Näiteks kui kavandate tarkvara tellimuste loomiseks ja säilitamiseks, alustage Solidity struct-avaldusega, mis määratleb tellimuse viisil, kuidas kasutaja seda näeb. Tellimus võib olla väljade kogum, mis seda kirjeldab, näiteks tellimuse number, tellimuse kuupäev, kliendi tellimus, juhised ja tellimisridade loetelu. Tellimisliinid sisaldavad väljad nagu tootenumber, hind ja kogus. Saate seda määratleda muutujate struktuuri ja tellimisribade loendina.

Sõltumata andmete määratlemise tehnilistest üksikasjadest, on selle eesmärgi peamine eesmärk kaaluda, kuidas kasutajad andmeid kasutavad, ja proovida andmeid sel viisil esitada. Kui teete tellimused kasutajatele otse kättesaadavaks, et edendada oma tarkvara läbipaistvust, soovite teha tellimustele võimalikult hõlpsa juurdepääsu. Te ei soovi läbipaistvust edendada ja panna kasutajad siis kõvasti vaeva nägema, mida teie andmed tähendavad. Andmetele hõlpsa juurdepääsu ja arusaadavuse suurendamine suurendab veelgi usaldust.

Hoidke oma plokiahela rakendus lihtne

DApp-i kujundamisel tuleb arvestada paljude asjadega. Ehkki kasutajatele keskendumine peaks aitama disainilahenduse otsuseid suunata, püütakse siiski vastata iga kasutaja vajadusele. Selle märkimata jätmise korral muudab see soov kõik teha teie tarkvara liiga keerukaks ja raskesti kasutatavaks. Kasutajatele paljude valikute andmine kõlab alguses hea eesmärgina, kuid ülekoormatud kasutaja ei hakka teie tarkvarale meeldima (ega seda kasutama).

Üldotstarbeline kõnekäänd “pidage seda lihtsaks, lolliks” on endiselt asjakohane. See on kange meeldetuletus, et lihtsus on palju keerulisem kui keerukus. Võib-olla olete kuulnud, et “segane meel ütleb alati ei”, kuid soovite, et kasutajad aktsepteeriksid ja kasutaksid teie dApp-i. Tahad, et nad leiaksid, et teie tarkvara muudab nad tõhusamaks ja tõhusamaks. Nende eesmärkide saavutamiseks peate oma tarkvara mõistmise ja kasutamise lihtsaks ja selgeks tegema.

Lihtsus algab kasutajaliidesest, kuid sellega see ei piirdu. Rakenduse funktsionaalse ja andmekujunduse kõik aspektid peavad olema võimalikult lihtsad. Ärge proovige liiga teha. Selle asemel määrake, mida teie kasutajad kõige rohkem vajavad ja tahate, ja tehke seda. Esmatähtsaks pidage funktsionaalsust, mis teie tarkvara silma paistab. Lihtsana hoidmine võtab rohkem tööd, kuid tulemuseks on sageli keskendunud ja järjepidev toode, mida kasutajad kasutavad.

Eeldatavasti on blockchainile juurdepääs kallis

Veel üks käepärane kujunduseesmärk, mis aitab teil vältida arendusjärgset ümbertegemist, teeskleb algusest peale, et andmete salvestamine plokiahelas on kallis. Sest tegelikult see nii on. Paljude jaoks, kes alustasid programmeerimist juba siis, kui Y2K oli kaugel tulevikus, on salvestusruum tänapäeval palju odavam kui vanasti. Enamik arendajaid ei pea täna muretsema andmete suuruse ega selle pärast, kus neid säilitada. Blockchain muudab seda kõike. Nüüd, selle asemel, et teil oleks tonni odavat ja kiiret salvestusruumi, peate maksma vastavalt olukorrale.

Kallimad salvestusruumid pole plokiahelas uus asi, kuid neid võib olla lihtne unustada. Kui tuletate endale meelde, et ladustamine on juba varakult kallis, siis mõtlete tõenäolisemalt salvestusvõimaluste üle põhjalikumalt.

Kas peate näiteks ladustama linna ja osariiki, kuhu toode saadetakse? Linn ja osariik sõltuvad postiindeksist (või postiindeksist üldisemates seadetes.) Postiindeksi saate salvestada tarneaadressile ja alles seejärel otsida vastavat linna ja osariiki tööaja jooksul veebipõhise API abil.

Andmete, näiteks postiindeksi eraldamine ei pruugi teie rakenduse jaoks mõistlik olla, kuid andmesalvestusvalikute läbimõtlemine on teile alati kasulik. Kõige kallimad ladustamisvõimalused on peaaegu alati halva kavandamise tulemus. Ärge kujundage plokiahela d-rakendusi samamoodi nagu traditsiooniliste andmebaasirakenduste kujundamine. Nad lihtsalt pole ühesugused. Kujundage erineva mõtteviisiga ja saate parema tarkvaratoote.

Hoidke blokeeringu rakenduse kasutaja moodusest eemale

Hea plokiahela rakendus täidab kõige olulisemaid kasutaja vajadusi viisil, mis aitab neil tõhusamalt ja tulemuslikumalt tegutseda. Kuid teie kujundus peaks arvestama mitte ainult sellega, mida teie rakendus teeb, vaid ka seda, mida ta ei tee.

Igal rakendusel on piirangud ja piirangud. See kujunduseesmärk keskendub muule asjale, mida teie rakendus ei tee: see ei lähe kasutaja moel kätte. Lihtsamalt öeldes peaks teie rakendus kasutajaid aitama, mitte neid aeglustama. Teie kasutajaliides peaks aitama kasutajatel oma tööd teha ja üleminekud kasutajaliidese elementide vahel peaksid olema intuitiivsed ja vajaduse korral õpetlikud.

Mõnikord peate võtma kasutajatelt andmeid ja seejärel salvestama need plokiahelasse. (Kas mäletate, et see on kallis, eks?) Kuna teate, et hakkate kasutajaid maksma andmete salvestamise eest ahelas, ärge pange neid ka seda ootama. Kui vähegi võimalik, laske oma kasutajatel midagi produktiivset teha, samal ajal kui nende andmeid käsitlev funktsioon töötab taustal. See võib teie koodis olla hea koht sündmuste kasutamiseks.

Tehke kõik endast olenev, et mitte saada takistuseks oma kasutajatele. Kellelegi ei meeldi oodata. Mõelge läbimõeldult ja teie tootel on palju parem võimalus rahuldada oma kasutajate vajadusi.