Innledning
Hei! I dag vil jeg fortelle deg historien Om Mint lang, veldig ung (men interessant) programmeringssprÄk fokusert pÄ Ä bygge SPA (enkelt side applikasjoner). Den har alle verktÞyene du trenger for Ä skrive feilfrie, lett lesbare og vedlikeholdbare applikasjoner pÄ rekordtid.
Imponert? Jeg ogsĂ„! La oss hĂ„ndtere dette sammen… đ
đ Innhold
- Hva er Mint lang egentlig?
- Hvorfor Ikke JavaScript?
- Hvorfor Ikke Elm?
- Hvorfor Mynte?
- MyntverktĂžy & Ăžkosystem
- Redigeringsutvidelser
- CLI
- Desentralisert pakkehÄndtering
- Ruting
- CSS Styling
- Endelig resultat
Hva Er Mint lang egentlig?
FĂžrst Av Alt, Mint skrevet PĂ„ Krystall:
et generelt, objektorientert programmeringssprÄk med syntaks inspirert Av SprÄket Ruby Det er et kompilert sprÄk med statisk typekontroll, men det er generelt unÞdvendig Ä angi variabeltyper eller metodeargumenter.
– Wiki
FĂžlg deretter Offisiell Mint guide:
Mint Er et sprÄk spesielt opprettet for Ä skrive enkeltsideapplikasjoner. Det er en kompilator og et rammeverk kombinert for Ä gi god utvikler erfaring samtidig som Ä skrive trygt, lesbar og vedlikeholdsbar kode.
ja, det er sant! Ser pÄ denne koden (beklager koden utheving):
// src/App.mintcomponent Counter { state counter : Number = 0 fun increment : Promise(Never, Void) { next { counter = counter + 1 } } fun decrement : Promise(Never, Void) { next { counter = counter - 1 } } fun render : Html { <div> <button onClick={decrement}> "Decrement" </button> <span> <{ Number.toString(counter) }> </span> <button onClick={increment}> "Increment" </button> </div> }}
SvÊrt lik et strengt typifisert sprÄk, men med inkludert JSX-stil, ikke sant?
Det ble fÞdt ut av frustrasjonen Til JavaScript language and ecosystem (NPM) og Elm-sprÄket, og det er ikke sÄ Äpen utviklingspraksis.
OK! đ La oss bestemme med en gang: hvorfor Ikke JavaScript og hva som er galt Med Elm.
Hvorfor Ikke JavaScript?
JavaScript Er ikke et sterkt skrevet sprÄk som gjÞr Det vanskelig Ä skrive feilfri kode og fÞrer til ikke sÄ stor utvikleropplevelse.
det har heller Ikke verktĂžyene for Ă„ lage webapplikasjoner ut av boksen, du trenger rammer og kompilatorer og bygge verktĂžy som Ăžker kompleksiteten.
Hvorfor Ikke Elm?
Elm har stor utvikleropplevelse, Men Det er et rent funksjonelt sprÄk som fÞrer til noe standardkode og gjÞr det vanskeligere Ä lÊre.
det er heller Ikke mulig Ä bidra eller pÄvirke sprÄket pÄ noen meningsfull mÄte.
Hvorfor Mint lang? đ€
Mint har som mÄl Ä kombinere utvikleropplevelsen Av Elm og Uttrykksevnen Til React for Ä skape det perfekte sprÄket for Ä bygge enkeltsideapplikasjoner.
Etter ett Ă„rs utvikling Har Mint fĂžlgende funksjoner:
- et godt typesystem
- Fine feilmeldinger
- Formatter
- Komponenter for komposisjon
- Lagrer for datalagring
- Innebygd styling
- Innebygd ruting
- Flott JavaScript interoperabilitet
- uforanderlige datastrukturer
Mint tools & Ăžkosystem
jeg ville ikke snakke om dette programmeringssprĂ„ket hvis det ikke hadde et Ăžkosystem for Ă„ starte og utvikle. SĂ„! đ
redigeringsutvidelser
- VS â Kode â legger til syntaksutheving og autofullfĂžr stĂžtte
- Emacs-legger til syntaksutheving og automatisk formatering ved hjelp av mint â format
- IntelliJ IDEA â legger til syntaksutheving
- Atom â legger til syntaksutheving
- Vim-veldig minimal (men fungerende) syntaks/ftdetect combo
cli
installere mint cli via kommando:
# For macOS:$ brew tap homebrew-community/alpha$ brew install mint-lang# For Linux:$ wget --no-verbose -O mint https://mint-lang.s3-eu-west-1.amazonaws.com/mint-latest-linux$ chmod +x ./mint$ sudo mv ./mint /usr/local/bin/mint
og nÄ, se alle kommandoer av call Mint med --help
flagg:
$ mint --helpMint - HelpââââââââââââââââââââââââââââââââââââââââââUsage: mint MintFlags: --env, -e (default: "") # Loads the given .env file --help # Displays help for the current command.Subcommands: build # Builds the project for production docs # Starts the documentation server format # Formats source files init # Initializes a new project install # Installs dependencies loc # Counts Lines of Code start # Starts the development server test # Runs the tests version # Shows versionââââââââââââââââââââââââââââââââââââââââââ
Desentralisert pakkehÄndtering
denne siden inneholder pakkene du kan bruke i prosjektene dine:
- https://www.mint-lang.com/packages
Ruting
Ruter for et program er definert pÄ Þverste nivÄ med routes
– blokken. Husk fĂžlgende ting:
- Ruter matches i den rekkefĂžlgen de er definert fra topp til bunn
- Ruter kan bare ha en ruter blokk per program
- Ruter brukes til Ă„ angi tilstanden, for ikke Ă„ gjengi ting
Eksempelkode:
routes { / { Application.setPage("index") } /users/:id (id: Number) { sequence { Application.setPage("show") Application.loadUser(id) } } /blog { Application.setPage("blog") } /blog/:slug (slug: String) { sequence { Application.setPage("post") Application.loadPost(slug) } }}
CSS Styling
i Mint-komponenter kan stiler defineres med en identifikator, og deretter brukes PĂ HTML ved hjelp av identifikatoren som EN CSS-klasse.
en stil kan inneholde en rekke CSS definisjoner, sub regler, media spĂžrringer,
if
ogcase
setninger.
Eksempelkode:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
Endelig resultat
etter mint build
har du Produksjonsklar Preact SPA. Det er det! đ
bilde av
Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
Myntforfattere https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw