Mint 🌿 ohjelmointikieli yhden sivun sovellusten kirjoittamiseen (SPA)

Johdanto

Hello! 👋 TĂ€nÀÀn, kerron teille tarinan Mint lang, hyvin nuori (mutta mielenkiintoinen) ohjelmointikieli keskittynyt rakentamiseen SPA (yhden sivun sovelluksia). SiinĂ€ on kaikki työkalut, joita tarvitset kirjoittaaksesi virheettömiĂ€, helposti luettavia ja yllĂ€pidettĂ€viĂ€ sovelluksia ennĂ€tysajassa.

vaikuttunut? Niin minĂ€kin! Hoidetaan tĂ€mĂ€ yhdessĂ€… 😉

📝 SisĂ€llysluettelo

  • mikĂ€ Minttulangi oikeastaan on?
    • miksi ei JavaScript?
    • miksei Jalava?
  • Miksi Minttu?
  • Mint tools & ecosystem
    • Editor extensions
    • CLI
    • hajautettu paketinhallinta
    • reititys
    • CSS Styling
  • lopputulos

Mint lang logo

mikÀ on Mint lang oikeasti?

ensinnÀkin KiteellÀ kirjoitettu minttu:

yleiskÀyttöinen, olio-orientoitunut ohjelmointikieli, jonka syntaksin taustalla on kieli Ruby se on kÀÀnnetty kieli, jossa on staattinen tyyppitarkistus, mutta muuttujien tai menetelmÀargumenttien mÀÀrittely on yleensÀ tarpeetonta.

– Wiki

seuraava, seuraa virallista rahapajan opasta:

Mint on kieli, joka on luotu erityisesti yhden sivun sovellusten kirjoittamiseen. Se on kÀÀntÀjÀ ja puitteet yhdistettynÀ tarjota suuri kehittÀjÀ kokemus samalla kirjoittaa turvallinen, luettavissa ja yllÀpidettÀvissÀ koodi.

kyllÀ, se on totta! NÀyttÀÀ tÀmÀn koodin (anteeksi koodin korostus):

// 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> }}
Siirry kokoruututilaan poistu kokoruututilasta

hyvin samanlainen tiukasti typistetty kieli, mutta mukana JSX-tyyliin, eikö?

se syntyi JavaScript-kielen ja ekosysteemin (npm) ja Elm-kielen turhautumisesta, eivÀtkÀ sen kehityskÀytÀnnöt ole niin avoimia.

OK! 👌 PÀÀtetÀÀn heti: miksi ei JavaScript ja mitĂ€ vikaa Elm.

miksi ei JavaScript?

JavaScript ei ole vahvasti tyypitetty kieli, joka vaikeuttaa virheettömÀn koodin kirjoittamista ja johtaa ei niin suureen kehittÀjÀkokemukseen.

siinÀ ei myöskÀÀn ole työkaluja web-sovellusten luomiseen laatikosta, tarvitaan kehyksiÀ ja kÀÀntÀjiÀ sekÀ rakennetaan työkaluja, jotka lisÀÀvÀt monimutkaisuutta.

miksei Jalava?

Jalavalla on paljon kehittÀjÀkokemusta, mutta puhtaasti funktionaalisena kielenÀ se johtaa johonkin boilerplate-koodiin ja vaikeuttaa sen oppimista.

kieleen ei myöskÀÀn voi vaikuttaa millÀÀn mielekkÀÀllÀ tavalla.

miksi minttu lang? đŸ€”

Mint pyrkii yhdistÀmÀÀn Elmin kehittÀjÀkokemuksen ja Reactin ilmaisuvoiman luodakseen tÀydellisen kielen yksisivuisten sovellusten rakentamiseen.

vuoden kehitystyön jÀlkeen Rahapajalla on seuraavat ominaisuudet:

  1. HyvÀtyyppinen jÀrjestelmÀ
  2. Nizzan Virheilmoitukset
  3. formaatti
  4. Komposition komponentit
  5. tiedon tallennus
  6. sisÀÀnrakennettu stailaus
  7. sisÀÀnrakennettu reititys
  8. Suuri JavaScript yhteentoimivuus
  9. muuttumattomat Tietorakenteet

Mint tools ecosystem

Mint tools & ecosystem

en puhuisi tĂ€stĂ€ ohjelmointikielestĂ€, jos sillĂ€ ei olisi ekosysteemiĂ€ kĂ€ynnistĂ€mistĂ€ ja kehittĂ€mistĂ€ varten. No! 😎

Editor extensions

  • vs. koodi — lisÀÀ syntaksin korostuksen ja automaattisen tĂ€ydennystuen
  • Emacs — lisÀÀ syntaksin korostuksen ja automaattisen muotoilun kĂ€yttĂ€en mint-muotoa
  • IntelliJ IDEA — lisÀÀ syntaksin korostuksen
  • Atom — lisÀÀ syntaksin korostuksen
  • vim — hyvin minimaalinen (mutta toimiva) syntaksi/ftdetect combo

Cli

Mint CLI: n asentaminen komennolla:

# 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
Siirry kokoruututilaan poistu kokoruututilasta

Ja nyt, katso kaikki kÀskyt call MintiltÀ --help lipulla:

$ 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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Siirry kokoruututilaan poistu kokoruututilasta

hajautettu paketinhallinta

TÀmÀ sivu sisÀltÀÀ paketit, joita voit kÀyttÀÀ projekteissasi:

  • https://www.mint-lang.com/packages

reititys

sovelluksen reitit mÀÀritellÀÀn ylÀtasolla routes lohkon kanssa. Muista seuraavat asiat:

  • reitit sovitetaan siinĂ€ jĂ€rjestyksessĂ€ kuin ne on mÀÀritelty ylhÀÀltĂ€ alas
  • reiteillĂ€ voi olla vain yksi reittilohko hakemusta kohti
  • reittejĂ€ kĂ€ytetÀÀn tilan asettamiseen, ei asioiden muuttamiseen

esimerkkikoodi:

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) } }}
Siirry kokoruututilaan poistu kokoruututilasta

CSS Styling

Mint componentsissa tyylit voidaan mÀÀritellÀ tunnisteella, jonka jÀlkeen niitÀ voidaan soveltaa HTML: ÀÀn kÀyttÀen tunnistetta CSS-luokkana.

tyyli voi sisÀltÀÀ minkÀ tahansa mÀÀrÀn CSS-mÀÀritelmiÀ, alisÀÀntöjÀ, mediakyselyjÀ, if ja case lausumia.

esimerkkikoodi:

component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
Siirry kokoruututilaan poistu kokoruututilasta

lopputulos

mint build jĂ€lkeen on tuotantovalmis Preact SPA. Nyt riitti! 🎉

Kuva:

Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
rahapajan tekijÀt https://www.mint-lang.com
Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw

P. S.

Vastaa

SÀhköpostiosoitettasi ei julkaista.

More: