Išbandykite geriausius DApp kūrimo karkasus, tokius kaip Hardhat, Truffle ir Foundry. Šis išsamus vadovas apima viską, ko reikia pasaulio kūrėjams kuriant decentralizuotas programas.
Ateities architektūra: Pasaulinis DApp kūrimo karkasų vadovas
Skaitmeninis kraštovaizdis patiria monumentalų poslinkį. Pereiname nuo centralizuotų Web2 platformų prie decentralizuoto, vartotojams priklausančio Web3 interneto. Šios revoliucijos centre yra Decentralizuotos programos, arba DApps, kurios veikia lygiaverčių tinklų, tokių kaip blokų grandinė, o ne vienų serverių principu. Pasaulio kūrėjams tai yra ir jaudinanti galimybė, ir sudėtingas mokymosi procesas. DApp kūrimas apima sąveiką su sudėtingomis, nekintamomis sistemomis, kur klaidos gali būti brangios ir neatšaukiamos.
Štai kur DApp kūrimo karkasai tampa nepakeičiami. Jie yra karkasai, leidžiantys kūrėjams efektyviai kurti, testuoti ir diegti tvirtas ir saugias išmaniąsias sutartis ir programas. Tinkamo karkaso pasirinkimas gali žymiai paspartinti jūsų kūrimo gyvavimo ciklą, pagerinti saugumą ir supaprastinti bendradarbiavimą globalioje komandoje. Šis vadovas skirtas kūrėjams visame pasaulyje – nuo startuolio Bangalūre iki „FinTech“ įmonės Londone ar laisvai samdomo kūrėjo San Paule – teikiant išsamią DApp kūrimo aplinkos apžvalgą ir padedant pasirinkti tobulus įrankius jūsų kitam Web3 projektui.
DApp kūrimo sistemos supratimas
Prieš gilindamiesi į konkrečius karkasus, labai svarbu suprasti, kur jie tinka platesnėje DApp architektūroje. Tipiška DApp susideda iš kelių sluoksnių, kurių kiekvienas atlieka skirtingą paskirtį. Karkasai veikia kaip „klijai“, orkestruojantys šių sluoksnių sąveiką.
- 1 sluoksnis: Blokų grandinės tinklas: Tai yra pagrindinis sluoksnis, decentralizuota viešoji apskaitos knyga, kurioje įrašomos visos operacijos ir būsenos pakeitimai. Pavyzdžiai yra Ethereum, Solana, Polygon, BNB Chain ir Avalanche. Pagrindinė sąvoka čia yra EVM (Ethereum virtuali mašina) suderinamumas, o tai reiškia, kad blokų grandinė gali vykdyti išmaniąsias sutartis, sukurtas Ethereum, žymiai išplečiant galimų įrankių ir kūrėjų skaičių.
- 2 sluoksnis: Išmaniosios sutartys: Tai savaime vykdomos sutartys, kurių sutarties sąlygos tiesiogiai įrašytos į kodą. Jos veikia kaip jūsų DApp užpakalinė logika, veikianti blokų grandinės tinkle. Jos paprastai rašomos tokiomis kalbomis kaip Solidity (EVM grandinėms) arba Rust (Solana).
- 3 sluoksnis: Komunikacijos sluoksnis (API/SDK): Jūsų programos sąsajai reikia būdo bendrauti su blokų grandine – skaityti duomenis, siųsti operacijas ir sąveikauti su išmaniosiomis sutartimis. Bibliotekos, tokios kaip ethers.js ir web3.js, suteikia šią esminę jungtį, veikdamos kaip tiltas tarp vartotojo sąsajos ir decentralizuotos užpakalinės dalies.
- 4 sluoksnis: Sąsaja: Tai yra vartotojo sąsaja (UI), su kuria sąveikauja vartotojai. Ji gali būti sukurta naudojant bet kokią standartinę žiniatinklio technologiją, pvz., React, Vue arba Angular. Sąsaja naudoja komunikacijos sluoksnį, kad prisijungtų prie vartotojo piniginės (pvz., MetaMask, Phantom) ir sąveikautų su išmaniosiomis sutartimis.
- 5 sluoksnis: Decentralizuota infrastruktūra: Norint tikrai decentralizuotos programos, kiti komponentai taip pat turi vengti centrinių gedimo taškų. Tai apima decentralizuotas saugojimo sprendimus, tokius kaip IPFS (InterPlanetary File System) arba Arweave, skirtus failams ir sąsajos turtui talpinti, ir duomenų indeksavimo paslaugas, tokias kaip The Graph, skirtas efektyviai užklausti blokų grandinės duomenis. Orakulai, tokie kaip Chainlink, suteikia saugų būdą perkelti realaus pasaulio, ne grandinės duomenis į blokų grandinę.
Taigi, kur čia karkasai? DApp kūrimo karkasai supaprastina visą išmaniosios sutarties gyvavimo ciklą. Jie suteikia įrankius rašyti, kompiliuoti, testuoti, derinti ir diegti jūsų išmaniąsias sutartis (2 sluoksnis), taip pat supaprastina integraciją su komunikacijos sluoksniu (3 sluoksnis) ir sąsaja (4 sluoksnis).
Kriterijai DApp kūrimo karkaso pasirinkimui
Karkaso pasirinkimas yra strateginis sprendimas, kuris paveiks jūsų projekto efektyvumą, saugumą ir mastelio keitimą. Štai pagrindiniai kriterijai, į kuriuos turėtų atsižvelgti kūrėjai ir komandos, nepriklausomai nuo jų geografinės padėties:
1. Blokų grandinės ir kalbos palaikymas
Ant kokios blokų grandinės kuriate? Ar ji suderinama su EVM? Jūsų pasirinkimas iš karto susiaurinamas pagal jūsų pasirinktą ekosistemą. Panašiai, jūsų komandos programavimo kalbos patirtis yra svarbus veiksnys. Dažniausios kalbos Web3 yra JavaScript/TypeScript, Solidity, Rust ir Python.
2. Naudojimo paprastumas ir mokymosi kreivė
Kaip greitai naujas kūrėjas jūsų komandoje gali tapti produktyvus? Ieškokite karkasų su aiškia, išsamia dokumentacija, intuityvia komandų eilutės sąsaja (CLI) ir protingomis numatytosiomis reikšmėmis. Staigi mokymosi kreivė gali uždelsti projektus ir sukelti riziką.
3. Bendruomenė ir ekosistema
Gyvybinga, pasaulinė bendruomenė yra galingas turtas. Tai reiškia daugiau internetinių mokymo programų, aktyvių palaikymo kanalų (tokių kaip Discord ar Telegram), trečiųjų šalių papildinių ir didesnę talentų bazę, iš kurios galima samdyti. Karkasas su stipria ekosistema užtikrina, kad nekuriate izoliuotai ir galite pasinaudoti bendruomenės sukurtais įrankiais.
4. Testavimo ir derinimo galimybės
Išmaniųjų sutarčių klaidos gali sukelti katastrofiškus finansinius nuostolius. Geresnis karkasas siūlo tvirtą testavimo aplinką. Pagrindinės savybės, į kurias reikia atkreipti dėmesį, apima vietinę blokų grandinę greitam testų vykdymui, įrankius gyvo pagrindinio tinklo būsenos forkingui realistiškam testavimui ir aiškius, aprašomuosius klaidų pranešimus. Galimybė pridėti `console.log` pareiškimus Solidity viduje, funkcija, kurią sukūrė Hardhat, yra esminis pakeitimas derinant.
5. Sąsajos integravimas
Kaip sklandžiai karkasas sujungia jūsų išmaniąsias sutartis su jūsų sąsaja? Ieškokite funkcijų, kurios automatiškai generuoja sutarčių ABI (Application Binary Interfaces) ir tipų apibrėžimus (pvz., TypeScript), o tai sumažina integravimo klaidas ir pagerina kūrėjo patirtį.
6. Saugumo funkcijos
Ar karkasas integruojasi su saugumo analizės įrankiais, tokiais kaip Slither ar MythX? Ar jis skatina geriausią saugumo praktiką pagal dizainą? Nors joks karkasas negali garantuoti saugumo, kai kurie suteikia geresnius įrankius, padedančius jums audituoti ir sustiprinti jūsų kodą.
Giluminė apžvalga: Populiariausi DApp kūrimo karkasai
Panagrinėkime pagrindinius karkasus, kurie šiandien dominuoja Web3 kūrimo erdvėje. Kiekvienas turi savo filosofiją, stipriąsias puses ir idealius naudojimo atvejus.
1. Hardhat (Pramonės standartas EVM)
Apžvalga: Hardhat yra lanksti, išplečiama ir greita Ethereum kūrimo aplinka, parašyta JavaScript ir TypeScript kalbomis. Ji tapo de facto standartu profesionalioms komandoms, kuriančioms su EVM suderinamomis grandinėmis, dėl savo galingos papildinių ekosistemos ir dėmesio kūrėjo patirčiai.
Palaikomos blokų grandinės: Visos EVM suderinamos grandinės (Ethereum, Polygon, BNB Chain, Arbitrum, Optimism ir kt.).
Pagrindinės savybės:
- Hardhat tinklas: Nepaprastai greitas vietinis Ethereum tinklas, skirtas kūrimui. Jame yra tokios funkcijos kaip pagrindinio tinklo forkingas, automatinis klaidų ataskaitų teikimas ir `console.log` palaikymas Solidity kode.
- Papildinių ekosistema: Didžiausia Hardhat stiprybė. Bendruomenė sukūrė šimtus papildinių tokioms užduotims kaip Etherscan sutarties patvirtinimas, dujų ataskaitų teikimas ir integravimas su įrankiais, tokiais kaip Waffle ir TypeChain.
- TypeScript gimtoji: Stiprus TypeScript palaikymas, užtikrinantis tipų saugumą jūsų testams, scenarijams ir sutarčių sąveikoms.
- Užduočių vykdytojas: Lanksti sistema, skirta automatizuoti įprastas užduotis ir kurti sudėtingus darbo procesus.
Privalumai:
- Labai lankstus ir konfigūruojamas.
- Išskirtinės derinimo galimybės.
- Didelė ir aktyvi papildinių ekosistema.
- Puiki TypeScript integracija saugesniam kodui.
Trūkumai:
- Jo lankstumas kartais gali reikšti daugiau pradinio nustatymo ir konfigūracijos, palyginti su labiau apibrėžtais karkasais.
Kam tai skirta: Profesionalios kūrimo komandos ir individualūs kūrėjai, vertinantys lankstumą, galingus derinimo įrankius ir turtingą ekosistemą. Tai šiandien yra populiariausias pasirinkimas daugumai rimtų EVM pagrindu veikiančių projektų.
2. Truffle Suite (Veteranas karkasas)
Apžvalga: Kaip viena iš ankstyviausių DApp kūrimo aplinkų, Truffle turi ilgą istoriją ir yra žinoma kaip visapusiškas, viskas viename sprendimas. Paketą sudaro trys pagrindiniai komponentai: Truffle (kūrimo aplinka), Ganache (asmeninė blokų grandinė vietiniam kūrimui) ir Drizzle (sąsajos bibliotekų rinkinys).
Palaikomos blokų grandinės: Visos EVM suderinamos grandinės.
Pagrindinės savybės:
- Integruotas paketas: Truffle, Ganache ir Drizzle yra suprojektuoti dirbti kartu sklandžiai, siūlydami pilną paruoštą naudojimui patirtį.
- Automatinis sutarčių testavimas: Subrendusi sistema testų rašymui tiek JavaScript, tiek Solidity kalbomis.
- Integruoti perkėlimai: Struktūrizuota sistema išmaniosioms sutartims diegti, leidžianti valdyti sudėtingus diegimo scenarijus.
- Truffle DB: Integruotas derinimo įrankis operacijų vykdymui žingsnis po žingsnio.
Privalumai:
- Puikiai tinka pradedantiesiems dėl savo struktūruoto požiūrio ir išsamios dokumentacijos.
- Brandus ir išbandytas daugelį metų.
- „Viskas viename“ paketas supaprastina pradinį nustatymo procesą.
Trūkumai:
- Gali jaustis standesnis ir mažiau lankstus nei Hardhat.
- Kūrimas sulėtėjo, palyginti su konkurentais, o ekosistema nėra tokia dinamiška kaip Hardhat.
- Ganache gali būti lėtesnis nei Hardhat tinklas, vykdant didelius testų rinkinius.
Kam tai skirta: Pradedantiesiems, įžengiantiems į Web3 erdvę, dėstytojams, mokantiems blokų grandinės kūrimo, ir komandoms, kurios renkasi stabilų, viskas viename sprendimą su ilga veikimo istorija.
3. Foundry (Rust pagrindu veikiantis iššūkis)
Apžvalga: Foundry yra naujesnis, itin greitas ir nešiojamas įrankių rinkinys Ethereum programų kūrimui, parašytas Rust kalba. Jo pagrindinis skirtumas yra tai, kad jis leidžia kūrėjams rašyti savo testus tiesiogiai Solidity kalba, o tai daugeliui atrodo intuityviau ir efektyviau nei konteksto keitimas į JavaScript.
Palaikomos blokų grandinės: Visos EVM suderinamos grandinės.
Pagrindinės savybės:
- Forge: Testavimo karkasas. Jis yra neįtikėtinai greitas ir leidžia rašyti testus, fuzz testus ir formalius įrodymus Solidity kalba.
- Cast: Galingas komandų eilutės įrankis RPC skambučiams į EVM grandines. Jį galite naudoti operacijoms siųsti, sutartims iškviesti ir grandinės duomenims tikrinti nerašant jokių scenarijų.
- Anvil: Vietinis testavimo tinklo mazgas, veikiantis kaip itin greitas Hardhat tinklo ar Ganache pakaitalas.
- Solidity scenarijai: Rašykite diegimo ir sąveikos scenarijus tiesiogiai Solidity, o ne JavaScript kalba.
Privalumai:
- Išskirtinis greitis: Parašytas Rust kalba, todėl yra žymiai greitesnis nei jo JavaScript pagrindu veikiantys analogai.
- Rašykite testus Solidity: Didelis ergonominis laimėjimas Solidity kūrėjams.
- Galingi įrankiai: Cast yra universalus ir galingas CLI įrankis sąveikai grandinėje.
- Fuzz testavimas: Integruotas savybių pagrindu atliekamas testavimas kraštutiniams atvejams rasti.
Trūkumai:
- Naujesnis nei Hardhat ir Truffle, todėl bendruomenė ir trečiųjų šalių įrankiai vis dar auga.
- Mokymosi kreivė gali būti statesnė tiems, kurie nėra susipažinę su komandų eilute ar Foundry filosofija.
Kam tai skirta: Kūrėjams, kurie teikia pirmenybę našumui ir mėgsta rašyti savo testus Solidity kalba. Jis greitai populiarėja tarp saugumo tyrėjų ir DeFi protokolo kūrėjų, kuriems reikia ypač didelio greičio ir galingų testavimo funkcijų.
4. Brownie (Pythonistų pasirinkimas)
Apžvalga: Brownie yra Python pagrindu veikiantis kūrimo ir testavimo karkasas išmaniosioms sutartims, skirtoms EVM. Jis patraukia didelę pasaulinę Python kūrėjų bendruomenę, pasinaudodamas Python galingomis scenarijų galimybėmis ir išsamiomis bibliotekomis duomenų analizei, automatizavimui ir saugumui.
Palaikomos blokų grandinės: Visos EVM suderinamos grandinės.
Pagrindinės savybės:
- Python pagrindu veikiantis scenarijų kūrimas: Rašykite testus, diegimo scenarijus ir sudėtingą sąveikos logiką naudodami Python.
- Pytest integravimas: Naudoja populiarią ir galingą `pytest` karkasą testavimui, siūlydamas tokias funkcijas kaip armatūra ir išsamios ataskaitos.
- Sutarčių pagrindu atliekamas testavimas: Testavimo filosofija, orientuota į sutarčių sąveikas.
- Konsolės sąveika: Interaktyvi konsolė greitam derinimo ir sąveikos grandinėje.
Privalumai:
- Puikiai tinka kūrėjams, turintiems stiprų Python pagrindą.
- Pasinaudoja didele ir brandžia Python ekosistema scenarijų kūrimui, duomenų mokslui ir saugumo analizei.
- Puikiai tinka DeFi projektams, kuriems reikalinga sudėtinga kiekybinė analizė ir modeliavimas.
Trūkumai:
- Nišinis, palyginti su JavaScript pagrindu veikiančiais karkasais, su mažesne bendruomene.
- Sąsajos kūrimo pasaulis yra labai orientuotas į JavaScript, o tai gali sukelti trintį.
Kam tai skirta: Python kūrėjams, kiekybiniams analitikams ir DeFi komandoms, kuriems reikia atlikti sudėtingus scenarijų kūrimo, duomenų analizės ar saugumo testavimo darbus kaip kūrimo darbo eigos dalį.
5. Anchor (Solana standartas)
Apžvalga: Pereinant už EVM ekosistemos ribų, Anchor yra populiariausias karkasas programoms (vadinamoms „programomis“) kurti Solana blokų grandinėje. Solana architektūra iš esmės skiriasi nuo Ethereum, o Anchor suteikia labai reikalingą abstrakcijos sluoksnį, kad supaprastintų kūrimą Rust kalba.
Palaikomos blokų grandinės: Solana.
Pagrindinės savybės:
- Sumažintas pasikartojantis kodas: Drastiškai sumažina pasikartojančio kodo kiekį, reikalingą Solana programoms.
- Sąsajos apibrėžimo kalba (IDL): Automatiškai generuoja IDL iš jūsų Rust kodo, kuris vėliau gali būti naudojamas kliento pusės bibliotekoms generuoti TypeScript/JavaScript kalbomis, supaprastinant sąsajos integravimą.
- Saugumo abstrakcijos: Automatiškai tvarko daugelį įprastų saugumo patikrų (pvz., sąskaitos nuosavybės), sumažinant klaidų atsiradimo tikimybę.
- Darbo srities valdymas: Struktūrizuotas būdas valdyti kelias susijusias programas viename projekte.
Privalumai:
- Laikomas būtinu bet kokiam rimtam Solana kūrimui.
- Labai pagerina kūrėjo patirtį ir saugumą Solana.
- Sklandi sąsajos integracija per automatiškai generuojamą IDL.
Trūkumai:
- Specifinis Solana ekosistemai; žinios nėra tiesiogiai pritaikomos EVM grandinėms.
Kam tai skirta: Bet kuriam kūrėjui ar komandai, kuriančiai programas Solana blokų grandinėje.
Karkasų palyginimas: Tiesioginė lentelė
Kad padėtume jums vizualizuoti skirtumus, pateikiame apibendrinamąją lentelę:
| Karkasas | Pagrindinė kalba | Pagrindinė savybė | Geriausiai tinka |
|---|---|---|---|
| Hardhat | JavaScript / TypeScript | Papildinių ekosistema ir `console.log` | Profesionalioms EVM komandoms, kurioms reikia lankstumo ir galingo derinimo. |
| Truffle Suite | JavaScript | „Viskas viename“ paketas (Truffle, Ganache) | Pradedantiesiems ir pedagogams, ieškantiems struktūruotos, brandžios aplinkos. |
| Foundry | Rust / Solidity | Ypač didelis greitis ir Solidity testavimas | Į našumą orientuotiems kūrėjams ir saugumo tyrėjams. |
| Brownie | Python | Pytest integravimas ir Python scenarijų kūrimas | Python kūrėjams, ypač DeFi ir duomenų analizės srityse. |
| Anchor | Rust | Supaprastintas Solana kūrimas ir IDL | Visiems kūrėjams, kuriantiems Solana blokų grandinėje. |
Pradžia: Praktinis pavyzdys su Hardhat
Teorija puiku, bet praktika geriau. Pereikime prie pagrindinio Hardhat projekto nustatymo. Šis pavyzdys yra universalus ir gali būti sekamas bet kurio kūrėjo, turinčio įdiegtą Node.js.
1 žingsnis: Aplinkos nustatymas
Įsitikinkite, kad turite naujausią Node.js versiją (v16 ar naujesnę) ir įdiegtą npm (arba yarn). Tai galite patikrinti paleisdami `node -v` ir `npm -v` savo terminale.
2 žingsnis: Hardhat projekto inicijavimas
Sukurkite naują projekto katalogą ir inicijuokite jį su Hardhat.
mkdir my-dapp && cd my-dapp
npm init -y
npm install --save-dev hardhat
npx hardhat
Jums bus užduota keletas klausimų. Šiame pavyzdyje pasirinkite „Create a TypeScript project“ ir sutikite su numatytosiomis reikšmėmis.
3 žingsnis: Projekto struktūros nagrinėjimas
Hardhat sukurs pavyzdinį projektą su tokia struktūra:
- contracts/: Kur yra jūsų Solidity šaltinio failai (pvz., `Lock.sol`).
- scripts/: Skirta diegimo ir sąveikos scenarijams (pvz., `deploy.ts`).
- test/: Skirta jūsų testavimo failams (pvz., `Lock.ts`).
- hardhat.config.ts: Centrinis jūsų projekto konfigūracijos failas.
4 žingsnis: Sutarties kompiliavimas
Paleiskite kompiliavimo užduotį. Hardhat atsisiųs nurodytą Solidity kompiliatorių ir sukompiliuos jūsų sutartis, generuodamas ABI ir baitų kodą `artifacts/` kataloge.
npx hardhat compile
5 žingsnis: Testų vykdymas
Hardhat pateikiamas su pavyzdiniu testavimo failu. Norėdami jį paleisti, tiesiog vykdykite testavimo komandą. Tai paleis atmintyje esančią Hardhat tinklo instanciją, įdiegs jūsų sutartį, paleis testus ir tada viską išjungs.
npx hardhat test
Konsolėje turėtumėte matyti sėkmingą testavimo vykdymą. Šis greito grįžtamojo ryšio ciklas daro karkasus tokiais galingais.
6 žingsnis: Sutarties diegimas
Pavyzdinis `deploy.ts` scenarijus `scripts/` aplanke rodo, kaip įdiegti jūsų sutartį. Norėdami jį paleisti vietiniame Hardhat tinkle:
npx hardhat run scripts/deploy.ts --network localhost
Sveikiname! Ką tik sukompiliavote, išbandėte ir įdiegėte išmaniąją sutartį naudodami profesionalų kūrimo karkasą.
DApp karkasų ateitis: Stebimos tendencijos
Web3 erdvė vystosi neįtikėtinai sparčiai, ir jos kūrimo įrankiai nėra išimtis. Štai keletas pagrindinių tendencijų, formuojančių DApp karkasų ateitį:
- Daugia grandinių ir L2 integravimas: Kadangi blokų grandinės kraštovaizdis tampa vis labiau fragmentuotas su daugybe 1 sluoksnio ir 2 sluoksnio mastelio sprendimų, karkasai turės užtikrinti sklandų, vieno paspaudimo palaikymą sutarčių diegimui ir valdymui keliose grandinėse.
- Patobulinta kūrėjo patirtis (DX): Konkurencija pritraukti kūrėjus skatins DX inovacijas. Tikimasi greitesnių kompiliatorių, išmanesnio kodo užbaigimo, integruotų derinimo priemonių, galinčių vizualiai peržvelgti operacijas, ir galingesnių vietinių testavimo tinklų.
- Integruotas formalus patvirtinimas ir saugumas: Saugumas pasislinks į kairę, o daugiau karkasų tiesiogiai integruos statinės analizės, fuzz testavimo ir formalaus patvirtinimo įrankius į kūrimo procesą, aptikdami klaidas dar prieš jų diegimą.
- Sąskaitos abstrakcija (ERC-4337): Šis svarbus Ethereum atnaujinimas leidžia lankstesnes ir patogesnes piniginių konstrukcijas. Karkasai turės pritaikyti savo testavimo ir diegimo įrankius, kad visiškai palaikytų išmaniąsias sutarčių pinigines ir naujus operacijų srautus.
- AI pagalba kūrimui: Tikimasi, kad AI įrankiai padės rašyti ir audituoti išmaniąsias sutartis, generuoti testus ir optimizuoti dujų naudojimą, visa tai integruota tiesiogiai į karkaso aplinką.
Išvada: Kūrimas decentralizuotam pasauliui
DApp kūrimo karkasai yra daugiau nei tik įrankiai; tai visapusiškos aplinkos, kurios suteikia kūrėjams galimybę kurti naujos kartos internetą. Nuo lanksčios Hardhat galios iki neapdoroto Foundry greičio, tinkamas karkasas gali paversti sudėtingą idėją saugia, mastelio keitimo ir sėkminga decentralizuota programa.
Jūsų pasirinkimas galiausiai priklausys nuo jūsų komandos įgūdžių, jūsų projekto tikslinės blokų grandinės ir jūsų specifinių poreikių, susijusių su našumu, saugumu ir lankstumu. Geriausias patarimas bet kuriam kūrėjui, bet kurioje pasaulio vietoje, yra eksperimentuoti. Sekite pavyzdžius, sukurkite nedidelį projektą su dviem ar trimis skirtingais karkasais ir pažiūrėkite, kuris jums atrodo natūraliausias ir produktyviausias.
Įvaldę šiuos galingus įrankius, jūs ne tik rašote kodą – jūs kuriate atviresnę, skaidresnę ir į vartotoją orientuotą skaitmeninę ateitį visiems.