Mint 🌿 a linguagem de programação para a escrita de aplicaçÔes de uma Ășnica pĂĄgina (SPA)

introdução 👋 Hoje, vou contar-lhe a histĂłria sobre Mint lang, linguagem de programação muito jovem (mas interessante) focada na construção de SPA (aplicaçÔes de pĂĄgina Ășnica). Ele tem todas as ferramentas que vocĂȘ precisa para escrever aplicativos livres de erros, facilmente legĂ­veis e de manutenção em tempo recorde. Impressionado? Eu tambĂ©m! Vamos lidar com isto juntos… Índice

  • o que Ă©, na verdade, um lang Mint?Por que nĂŁo JavaScript?Porque nĂŁo o Elm?

  • PorquĂȘ Menta?
  • Mint ferramentas & ecossistema
    • Editor de extensĂ”es
    • CLI
    • Descentralizado de gestĂŁo de pacotes
    • Roteamento
    • Estilo CSS
  • resultado Final
  • HortelĂŁ lang logo

    o Que Ă© de Menta lang, na verdade?

    em primeiro lugar, menta escrita em cristal:

    a general-purpose, object-oriented programming language with syntax inspired by the language Ruby it is a compiled language with static type-checking, but specifying the types of variables or method arguments is generally unneeed.Segue o Guia Oficial da Casa da moeda.:

    Mint Ă© uma linguagem criada especificamente para escrever aplicaçÔes de uma Ășnica pĂĄgina. É um compilador e um framework combinado para fornecer grande experiĂȘncia de desenvolvedor, permitindo escrever cĂłdigo seguro, legĂ­vel e sustentĂĄvel.Sim, Ă© verdade! Procura por este cĂłdigo (desculpe o realce de cĂłdigo):

    // 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> }}
    entrar no modo de ecrĂŁ completo sair do modo de ecrĂŁ completo

    muito semelhante a uma linguagem estritamente tipificada, mas com incluĂ­do JSX-style, certo?

    nasceu da frustração da linguagem JavaScript e do ecossistema (MPN) e da linguagem Elm e nĂŁo Ă© tĂŁo aberto prĂĄticas de desenvolvimento.OK! 👌 Vamos decidir imediatamente: Por que nĂŁo JavaScript e o que hĂĄ de errado com Elm.Por que nĂŁo JavaScript?

    JavaScript nĂŁo Ă© uma linguagem fortemente tipada, o que torna difĂ­cil escrever cĂłdigo livre de erros e leva a nĂŁo ser tĂŁo grande experiĂȘncia de desenvolvimento.

    tambĂ©m, ele nĂŁo tem as ferramentas para criar aplicaçÔes web a partir da caixa, vocĂȘ precisa de frameworks e Compiladores e construir ferramentas que aumentam a complexidade.Porque nĂŁo o Elm?

    Elm tem grande experiĂȘncia de desenvolvimento, mas sendo uma linguagem puramente funcional leva a algum cĂłdigo boilerplate e torna mais difĂ­cil de aprender. AlĂ©m disso, nĂŁo Ă© possĂ­vel contribuir ou influenciar a linguagem de forma significativa.PorquĂȘ Mint lang? đŸ€”

    Mint tem como objetivo combinar a experiĂȘncia do desenvolvedor da Elm e a expressividade da Reat para criar a linguagem perfeita para a construção de aplicaçÔes de uma Ășnica pĂĄgina.ApĂłs um ano de desenvolvimento, a Casa Da Moeda apresenta as seguintes caracterĂ­sticas ::

    1. Um bom sistema de tipo
    2. Bom mensagens de erro
    3. Formatador
    4. Componentes para composição
    5. Lojas para armazenamento de dados
    6. ConstruĂ­do em estilo
    7. roteamento interna
    8. Grande JavaScript interoperabilidade
    9. ImutĂĄvel estruturas de dados

    HortelĂŁ ferramentas ecossistema

    Mint ferramentas & ecossistema

    eu não iria falar sobre esta linguagem de programação, se ele não tem um ecossistema para o início e o desenvolvimento. Então! 😎

    Editor de extensÔes

    • VS CĂłdigo — adiciona destaque de sintaxe, e o preenchimento automĂĄtico de suporte
    • Emacs — adiciona destaque de sintaxe e auto-formatação usando o mint formato
    • IntelliJ IDEA — adiciona destaque de sintaxe
    • Átomo — adiciona destaque de sintaxe
    • Vim — mĂ­nimo (mas sim trabalho) sintaxe/ftdetect combinação

    CLI

    Instalar o Mint CLI através de comando:

    # 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
    Introduza o modo de tela cheia Sair do modo de tela cheia

    E agora, ver todos os comandos de chamada de HortelĂŁ com --help bandeira:

    $ 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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    Introduza o modo de tela cheia Sair do modo de tela cheia

    Descentralizado de gestĂŁo de pacotes

    Esta pĂĄgina contĂ©m os pacotes que vocĂȘ pode usar em seus projetos:

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

    Encaminhamento

    Rotas de uma aplicação são definidos no nível superior, com a routes bloquear. Tenha em mente as seguintes coisas:

    • Rotas sĂŁo combinados na ordem em que eles sĂŁo definidos de cima para baixo
    • Rotas sĂł pode ter um de rotas de bloco por aplicação
    • Rotas sĂŁo utilizados para definir o estado, nĂŁo tornar as coisas

    Exemplo de cĂłdigo:

    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) } }}
    Introduza o modo de tela cheia Sair do modo de tela cheia

    de Estilo CSS

    No Mint componentes, os estilos podem ser definidas com um identificador e, em seguida, aplicado para HTML usando o identificador como uma classe CSS.

    a style can contain any number of CSS definitions, sub rules, media queries, if and case statements.

    Exemplo de cĂłdigo:

    component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
    Introduza o modo de tela cheia Sair do modo de tela cheia

    resultado Final

    Depois mint build, vocĂȘ tem pronto para produção Preact SPA. É isso! 🎉

    Foto

    Ben Kolde https://unsplash.com/photos/H29h6a8j8QM
    Mint autores https://www.mint-lang.com
    Anthony Fomin https://unsplash.com/photos/Hr6dzqNLzhw

    P. S.

    Deixe uma resposta

    O seu endereço de email não serå publicado.

    More: