1. Принципи на дизайна на личните финанси10 за разпространени приложения за блокчейн
Ethereum за манекени

От Майкъл Соломон

Blockchain технологията е разрушителен, трансформиращ подход към начина, по който управляваме данните. Обещава радикално да промени начина, по който изпълняваме задачи, които обработват чувствителна информация в споделена среда. Критичните операции с чувствителни данни в исторически план изискват силен централен орган, който да убеди собствениците на данни да се доверят достатъчно на околната среда, за да могат да управляват своите данни.

Едно от по-трудните препятствия, които всеки blockchain dApp трябва да преодолее, е изграждането на доверие. Потребителите трябва да се доверят, че софтуерът, работещ на блокчейна, включва солидни мерки за осигуряване на сигурност и защита на поверителността, преди да предоставят чувствителни лични и бизнес данни.

Можете да извървите дълъг път към изграждането на това доверие, като се придържате към няколко основни насоки за дизайн. Ако следвате десетте дизайнерски цели за блокчейн приложения, които намерите тук, ще помогнете на потребителите да се доверят на приложението ви достатъчно, за да го използват и да разчитат на него.

Проектирайте блокчейн приложения за доверие

Една от основните причини повечето организации да се насочат към blockchain решения е способността му да споделя данни между възли, които не се доверяват една на друга. Ако се замислите, това наистина поставя висока граница за разработчиците на dApp. За да развиете успешен dApp, трябва да убедите потребителите си да се доверят на вашия софтуер с техните данни, докато го изпращате до голям брой други възли, на които не се доверявате (и те също не се доверяват).

Доверието обикновено е (но не винаги) преходно. (Да, вие се върнете към клас по математика. Ако A = B и B = C, тогава A = C. Вие сте добре дошли.) Това е най-често срещаният начин, по който ние, като хора, се справяме с доверие.

Ако имате доверие на Мария и Джо ви се доверява, тогава Джо вероятно е добре с доверието на Мария. Нека приемем, че сте хранителен критик. Джо се доверява, че ти препоръчваш добра храна. Ако публикувате, че наистина харесвате прасковения пай на Мери, тогава Джо ще има по-голяма вероятност да опитате прасковения си пай, тъй като Джо се доверява на вкуса ви в храната. Но това не се проследява с надеждна среда. В случай на blockchain dApps, потребителите ви се доверяват, но вие не се доверявате на другите в собствената си блокчейн мрежа.

Първата ви цел на дизайна е цел на високо ниво, която трябва да запазите като мотиватор за най-доброто съзнание за всички решения. Много от следващите дизайнерски цели подкрепят тази: Проектирайте вашите dApps за доверие. Тази цел означава, че искате да помислите какво искат вашите потребители и какво ги кара да чувстват, че могат да се доверят на вашия dApp.

Потребителите трябва да знаят, че вие ​​ще се грижите за техните данни. Вашият dApp не трябва да крие нищо и трябва да улеснява проверката на случващото се. Тя трябва ясно да съобщава добра и лоша информация и да осигурява цялостно усещане за благополучие. Въпреки че това е висока поръчка за софтуер, е необходимо да се изгради доверие.

Най-важният аспект на проектирането за доверие е разбирането кои са вашите потребители и какво ги кара да се чувстват комфортно. Накратко, знайте вашите потребители. Знайте какво искат и как можете да ги убедите, че няма да губите времето им или да се възползвате от доверието им към вас.

Увеличете последователността в приложенията на blockchain

Един от най-лесните начини да избегнете объркване е да ограничите опциите и конфликтните преживявания във вашите dApps. Microsoft научи отдавна силата на последователност. Те разработиха стандарти за взаимодействие с потребителите и проучиха и дефинираха всеки аспект от създаването на потребителски интерфейс. Ето защо приложенията на Microsoft се чувстват подобни една на друга.

Ако сте използвали едно приложение на Microsoft, ще разпознаете поне общия потребителски интерфейс в други приложения на Microsoft. (И ако използвате продукти на Microsoft известно време, ще си спомните огромните смущения, причинени от Microsoft, когато преобразуваха в потребителски интерфейс на базата на плочки - до голяма степен защото всички бяха толкова удобни с наследения интерфейс на Microsoft.)

Например, ако искате да намерите текущата версия на програма за Windows, която стартирате, можете почти винаги да щракнете или да докоснете Помощ, след това да щракнете или да докоснете елемента About от менюто Помощ.

Изображението по-долу показва елемента About в VS Code. Елементът от менюто About съществува в почти всяко приложение на Windows и показва основна информация, включително номера на версията, на програмата, която стартирате. Този прост пример за последователност на потребителския интерфейс улеснява всеки да намери информация за приложението, без да се налага да го търси.

VS код Ethereum

Следващото изображение показва диалоговия прозорец About във VS Code. Ще намерите информация за изданието за повечето приложения на Windows, като щракнете или докоснете Помощ → Относно. Това е силата на последователност.

VS Code About диалогов прозорец

Вашите dApps трябва да определят ясни стандарти за всяко потребителско взаимодействие. Когато помолите потребителите си да предоставят информация, направете го по същия начин през целия си dApp. Когато потребителят въведе идентификационен номер на продукт на няколко места, полето за въвеждане трябва да изглежда еднакво на всяко място. Използвайте същите цветове, шрифтове и метод на въвеждане, за да придадете на dApp постоянен вид и усещане.

Друга област, в която ще намерите последователност в GUI приложенията, са клавишните комбинации. Почти винаги можете да използвате Ctrl-C, за да копирате маркиран текст, а Ctrl-V да поставите този текст на ново място. Постоянните клавишни комбинации улесняват още по-лесното учене и използване на нов софтуер.

По същия начин стандартизирайте цялата продукция. Съобщенията за грешки и сигналите са основни области за стандартизация. Когато е възможно, използвайте общи входни и изходни слоеве, така че всички вход и изход да използват един и същ набор от функции. Целият dApp ще изглежда по-последователен.

Опитвате се да насърчите потребителите си да продължат да използват вашия dApp. DApp, който представя последователен потребителски интерфейс, е този, който изгражда доверие. Постоянството също така улеснява вашите потребители да научат как да използват вашия софтуер, а приложение, което е лесно да се научи, е това, което потребителите вероятно ще предпочетат и приемат.

Премахнете съмнението от приложенията на blockchain с прозрачност

Една от причините, поради които потребителите се доверяват на приложение, е, че те всъщност не го разбират. Потребителите предоставят своите данни, но не са сигурни какво се случва след това. Те не знаят къде отиват данните им и дали те все още са някъде в системата. Това усещане от поставянето на данни в черна кутия може да бъде още по-силно с blockchain dApps.

Тъй като blockchain технологията става все по-популярна, цялостната информираност за нейните характеристики се увеличава. Това означава, че много от вашите потребители ще знаят, че вашият dApp изпраща данните си на много други компютри, потенциално в целия свят. Едно от препятствията, които ще трябва да преодолеете, е да убедите потребителите си, че защитавате техните чувствителни данни.

Ясно съобщавайте от какви данни се нуждае вашият dApp, защо се нуждае от всеки тип данни и какво правите с тях. Няма да е необходимо да предавате тази информация всеки път, когато поискате данни, но тя трябва да бъде достъпна при първия контакт с нов потребител и при поискване след това.

Трябва също така да улесните потребителите да виждат какво са направили (и какво е направил вашият dApp с техните данни.) Предоставянето на прозрачност на всяка стъпка дава на потребителите усещане за увереност.

Улеснете вашите потребители да разгледат и да получат проверка на действията. Това ниво на прозрачност дава на потребителите увереност, че вашият dApp прави това, за което твърди, че може да направи, и може да намали опасението, че вашият dApp крие нещо. В зависимост от нивото на загриженост на потребителите и вашите собствени дизайнерски указания, можете да изградите прозрачност във всеки работен процес или във функциите при поискване, за да позволите на захранващите потребители да пробиват по желание.

Предоставете обратна връзка, насоки и задайте очаквания за вашите приложения за блокчейн

Следващата дизайнерска цел, която ви е необходима за приложението blockchain, е предоставянето на обратна връзка и насоки и задаване на очаквания. Тази цел е логично разширяване на прозрачността. Докато прозрачността прави детайлите за транзакциите и работния процес лесно достъпни за потребителите, настройките за обратна връзка, насоки и очаквания превръщат прозрачността в нормалния работен процес. Вместо просто да позволявате на потребителите да виждат какво се е случило, трябва да им представяте информативна обратна връзка при всяка важна стъпка на работния процес.

Например, ако сте производител и току-що сте прехвърлили собственика на нов трактор на товародател, новата ви верига за доставки dApp може да ви изпрати съобщение „Току-що прехвърлихте трактор със сериен номер ABC-12345 на Unified Shipping - Номер на транзакция 456778 . “Разбира се, вероятно ще получите повече подробности за прехвърляне на капиталов елемент, но имате идея. DApp предостави обратна връзка, която по същество казва „Хей, добра работа. Ето какво направихте. ”Информативната обратна връзка е първата стъпка за убеждаване на потребителите да се доверят на вашия dApp. Отзивите им дават гаранция, че използват софтуера правилно.

Можете да разширите примера за обратна връзка, за да информирате и потребителите за следващата стъпка. В примера на трактора вашето съобщение за обратна връзка може да включва и съобщение „Искате ли да освободите заглавието сега?“ С опцията да щракнете или натиснете бутон, за да преминете към следващата стъпка. Подкани с края на задачата като тази помощ, за да се гарантира, че потребителите разбират правилния работен процес и им създават впечатление, че софтуерът им помага да вършат правилно работата си. Когато софтуерът прави потребителите по-ефективни, той преминава дълъг път към изграждане на доверие. Всички обичат софтуер, който ги прави да изглеждат добре!

Справете се с грешки в своето приложение за блокчейн с клас

Срещайте се, случват се грешки. И понякога тези грешки са големи. Надяваме се, че сте открили всички големи грешки в софтуера си по време на тестване. (Направихте изчерпателен тест, нали?) Ако го направите, повечето от грешките, които срещате в производството, ще бъдат потребителски грешки.

Когато се справяте с потребителски грешки, опитайте се да избягвате известията, които изтънчено казват „Забъркали сте!“ Съсредоточете се върху разрешаването на ситуацията, а не да повдигате вина.

Вероятно си спомняте, че сте използвали първото си GPS устройство в кола. В първите дни на GPS, ако сте се отклонили от предложения маршрут, чухте доста строго съобщение „Rerouting“. Гласът може също да е казал: „Не ходиш там, където ти казах. Изчакайте, аз ще ви кажа как да се върна към това, което ви казах. ”Съобщенията за грешки трябва да информират потребителите за случилото се, но да се съсредоточат върху това какво да правят по-нататък. Да, GPS направи това, но по принцип беше след едва доловима кавга. Не се скарайте на потребителите си.

От друга страна, не прекарвайте твърде много време, фокусирайки се върху грешки. Прекалено многословните съобщения за грешки могат да бъдат объркващи и да отнемат твърде много време за четене. Стигнете до точката. Винаги проектирайте работата с грешки от гледна точка на потребителя. Дайте на потребителите всичко необходимо, за да реагират бързо и решително на грешки и нищо повече.

Съобщенията за грешки помагат на крайните потребители да разберат какво се случва и също така помагат на персонала за поддръжка, когато отстраняват проблеми. Проектирайте вашата система за съобщения за грешки, така че тя да предоставя необходимите потребителски съобщения, както и повече подробни съобщения при поискване за отстраняване на проблеми и разследвания.

Не забравяйте, че blockchain е неизменен, така че всички грешки, които го превръщат в блок, винаги ще има. Вашият dApp трябва да разрешава потребителските проблеми с данните, преди да съхранява тези данни в blockchain. Номерът на работа с грешки е да насочите потребителите към правилното решение, без да ги забавяте. Това изисква внимание кои са вашите потребители, как използват вашия dApp и от какво се нуждаят, за да разрешат проблем. Една от вашите дизайнерски цели трябва да бъде да предоставите справяне с грешки, които отговарят на нуждите на вашите потребители във всички случаи.

Функции за дизайн във вашето приложение за blockchain, които се фокусират върху действията на потребителя, а не върху данните

Функциите осигуряват действията на вашите интелигентни договори. Един от начините за разглеждане на смарт договорите е, че те са съставени от данни (съществителни имена) и действия (глаголи). По този начин създаването на интелигентни договори улеснява тяхното описание и дизайн и обикновено води до приложение, което протича добре от гледна точка на потребителя.

Тъй като всички приложения съществуват, за да отговарят на изискванията на някои потребители, има смисъл да се проектира софтуер в светлината на потребителя. На най-високо ниво, ако потребителят иска да създаде нова поръчка, трябва да започнете с функция, наречена createNewOrder (). Можете да промените нещата, докато усъвършенствате дизайна си, но стартирането с потребителска гледна точка помага да се запази автентичността с целите на софтуера. Проектирането на технически компоненти, които отговарят на потребителските цели, също помага да се избегне твърде далеч от функционалните цели на високо ниво.

Много от днешните организации за разработка на софтуер зависят от методите, които започват с потребителски истории. Като разработчик ще бъдете помолени да създадете софтуер, който изпълнява изискване, което изглежда като „Като потребител, искам да ____. -в празен текст от предходното изявление), е добра дизайнерска стратегия за създаване на удобен за употреба софтуер.

Всяка функция не трябва да се преобразува директно с действията на потребителя, но функциите ви на високо ниво трябва да изглеждат така, че да удовлетворяват потребителските истории. Винаги ще са ви нужни функции, ориентирани към по-ниско ниво или ориентирани към данни, за да изпълните техническите стъпки на всяка задача. Добре е, ако тези функции не се свързват директно с потребителските истории. Но вашите функции от по-ниско ниво трябва да играят части във функциите, с които потребителите взаимодействат. Като много общо правило, вашите обществени функции трябва да приличат много на реакции от потребителска история.

Съхранявайте данни от приложението blockchain въз основа на действията на потребителя, а не на структури от данни

Потребителите може да не взаимодействат директно с данни, но все пак трябва да се опитвате да организирате данни въз основа на потребителските изисквания. Тази обща цел е повече правило. Използвайте тази цел, когато първоначално проектирате изискванията за вашите интелигентни договори. Вероятно ще трябва да прецизирате дизайна и да го промените, но като започнете с данни, картографирани по заявки на потребителя, помага софтуерът ви да остане верен на потребителските изисквания.

Например, ако проектирате софтуер за създаване и поддържане на поръчки, започнете със структурата на твърдост Solidity, която определя поръчката по начина, по който потребителят я вижда. Поръчката може да бъде колекция от полета, които я описват, като номер на поръчка, дата на поръчка, поръчка на клиента, инструкции и списък с редове за поръчка. Редките за поръчка съдържат полета като номер на продукта, цена и количество. Можете да дефинирате това като структура от променливи и списък на структури от реда за ред.

Независимо от техническите подробности за това как определяте данните, основната цел на тази цел е да разгледа как потребителите ще използват данните и да се опита да представи данните по този начин. Ако правите поръчки директно достъпни за потребителите, за да насърчите прозрачността на вашия софтуер, искате да направите поръчките възможно най-лесни за достъп. Не искате да насърчавате прозрачността и след това карате потребителите да работят усилено, за да разберат какво означават вашите данни. Осигуряването на лесен достъп до данните и разбирането ще изгради още повече доверие.

Поддържайте простото си приложение за blockchain

Имате много неща, които трябва да вземете предвид при проектирането на dApp. Въпреки че фокусирането върху потребителите трябва да помогне за директни дизайнерски решения, тенденцията е да се опитва да отговори на всички нужди на потребителя. Ако оставите без проверка, това желание да го направите всичко ще направи вашия софтуер прекалено сложен и труден за използване. Предоставянето на много възможности на потребителите в началото звучи като добра цел, но претоварен потребител няма да хареса (или използва) вашия софтуер.

Всеобхватната поговорка „пазете я просто, глупава“ все още е актуална. Това е строго напомняне, че простотата е много по-умна от сложността. Може би сте чували, че „обърканият ум винаги казва„ не “, но искате вашите потребители да приемат и използват вашия dApp. Искате те да открият, че вашият софтуер ги прави по-ефективни и ефикасни. За да постигнете тези цели, трябва да направите разбирането и използването на вашия софтуер лесно и ясно.

Простотата започва с потребителския интерфейс, но не спира до там. Всеки аспект на функционалността и дизайна на вашето приложение трябва да бъде възможно най-прост. Не се опитвайте да правите прекалено много. Вместо това определете това, което вашите потребители се нуждаят и искат най-много, и направете това. Поставете приоритет на функционалността, която ще накара вашия софтуер да изпъкне. Простата му отнема повече работа, но често води до фокусиран и последователен продукт, който потребителите ще използват.

Очаквайте достъпът до blockchain да е скъп

Друга удобна цел на дизайна, която ще ви помогне да избегнете преработката след разработката, е да се преструва от самото начало, че съхраняването на данни в blockchain е скъпо. Защото в действителност е така. За мнозина, които започнаха да програмират обратно, когато Y2K беше далеч в бъдещето, съхранението днес е много по-евтино, отколкото преди. Повечето разработчици днес не трябва да се притесняват за размера на данните или къде да ги съхраняват. Blockchain променя всичко това. Сега, вместо да имате на разположение тонове евтино и бързо съхранение, трябва да плащате, докато отидете.

Скъпото съхранение не е ново нещо в blockchain, но може да бъде лесно да се забрави. Ако си припомните, че съхранението е скъпо в началото, ще е по-вероятно да помислите за възможностите за съхранение по-задълбочено.

Например, трябва ли да съхранявате града и държавата, където ще бъде доставен продукт? Градът и щата са зависими от пощенския код (или пощенския код в по-общи настройки). Можете да съхраните пощенския код в адреса за доставка и след това просто да потърсите съответния град и щат, използвайки онлайн API по време на изпълнение.

Разделянето на данни като примера с пощенски код може да няма смисъл за приложението ви, но винаги ще се възползвате от обмислянето на вашите опции за съхранение на данни. Най-скъпите опции за съхранение почти винаги са резултат от лошо планиране на дизайна. Не проектирайте blockchain dApps по същия начин, по който създавате традиционни приложения за бази данни. Те просто не са еднакви. Дизайн с различен начин на мислене и ще получите по-добър софтуерен продукт.

Стойте далеч от пътя на потребителя на blockchain

Доброто приложение за блокчейн отговаря на най-важните нужди на потребителя по начин, който им помага да бъдат по-ефективни и ефикасни. Вашият дизайн обаче трябва да отчита не само това, което прави приложението ви, но и това, което не прави.

Всяко приложение има ограничения и ограничения. Тази цел на дизайна се фокусира върху друго нещо, което приложението ви не прави: не става по начина на потребителя. Просто казано, приложението ви трябва да помага на потребителите, а не да ги забавя. Вашият потребителски интерфейс трябва да помага на потребителите да вършат работата си, а преходите между елементите на потребителския интерфейс трябва да бъдат интуитивни и поучителни, когато е необходимо.

Понякога ще трябва да вземате данни от потребителите и след това да ги съхранявате в blockchain. (Спомняте ли си, че това е скъпо, нали?) Тъй като знаете, че ще накарате потребителите да плащат за съхраняване на данни в blockchain, не ги карайте също да го чакат. Когато е възможно, оставете вашите потребители да правят нещо продуктивно, докато функцията, която обработва техните данни, работи на заден план. Това може да е добро място във вашия код за използване на събития.

Направете всичко възможно, за да не станете пречка за вашите потребители. Никой не обича да чака. Дизайн с мисъл и вашият продукт ще има много по-голям шанс да задоволи нуждите на вашите потребители.