tuto-leptos. premier jet
This commit is contained in:
103
articles/non-trivial-tuto-leptos/texte-fr.md
Normal file
103
articles/non-trivial-tuto-leptos/texte-fr.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# On est tellement fan de rust qu'on a même fait notre site web avec!
|
||||
|
||||
À NationTech, on est des vrai fan de rust!
|
||||
|
||||
On sait que c'est pas l'avis de tous... même que des fois il
|
||||
|
||||
On reste quand même pragmatique, et c'est pour ça qu'[on y a bien réfléchi avant d'en faire le language principal de Harmony](https://git.nationtech.io/NationTech/harmony/src/branch/master/adr/001-rust.md). Performance, stabilité, sécurité et un language en plein essor qui a fait déjà ses preuves (voir [les bénéfices observés de l'usage de rust dans le kernel linux](https://www.linuxjournal.com/content/how-rusts-debut-linux-kernel-shoring-system-stability) et [l'effet de l'usage de rust à l'interne de google](https://rust.developpez.com/actu/377658/Google-a-adopte-Rust-pour-des-raisons-de-securite-et-a-constate-une-reduction-de-1-000-fois-des-vulnerabilites-liees-a-la-securite-de-la-memoire-compare-a-C-et-Cplusplus/)).
|
||||
|
||||
Alors, pour Harmony, un outil de gestion de Datacenters auto-hébergés, pour nous le choix était évident: Rust! Mais pour notre page web... Rust?
|
||||
|
||||
Dans le cas d'un site web, rust c'est un peu un ovni. N'empêche que [leptos](https://github.com/leptos-rs/leptos) semblait très impressionnant. Alors, on l'a essayé et voici le résultat de quelques-unes de nos expériences.
|
||||
|
||||
Spoiler, on l'a adopté! Alors, si vous avez des commentaires ou des retours d'expérience, [n'hésitez pas à venir nous les partager sur Discord](https://discord.com/invite/jKprrek8AF).
|
||||
|
||||
Pour la section tutoriel (href) n'hésitez pas à consulter aussi le repo git (url)
|
||||
|
||||
## La douce mélodie de Leptos
|
||||
|
||||
### Un ovni qui rock (émoji d'alien et de musique)
|
||||
|
||||
[a recours aux approche les plus innovantes]
|
||||
|
||||
full-stack development with server-side rendering (SSR), hydration, and isomorphic server functions, allowing seamless integration of frontend and backend logic in Rust. This simplifies architecture and reduces the need for separate APIs.
|
||||
|
||||
CSR (client) vs SSR (server)
|
||||
|
||||
|
||||
### Web typé sans les joies (émoji rire) de TypeScript
|
||||
|
||||
On se sent bien, on se sent chez soi!
|
||||
|
||||
tuto sur ce qu'est leptos. Pourquoi c'est intéressant et comment ça marche.
|
||||
|
||||
### Performance, promesse de Rust tenue par Leptos
|
||||
|
||||
" fine-grained reactivity, enabling high performance by updating only the exact parts of the DOM that change—often outperforming React, Svelte, and Vue in benchmarks. It eliminates the need for a virtual DOM, reducing overhead and improving speed."
|
||||
|
||||
### Utilisez vore logique métier
|
||||
|
||||
## Leptos en allegro
|
||||
|
||||
Maintenant, passons aux choses sérieuses et construisons un blog multilinque qui complémentera notre site web.
|
||||
|
||||
Fonctionnalités:
|
||||
|
||||
- Définition de la structure des donnée des sections avec les `struct` rust
|
||||
- conversion bidirectionnelle entre markdown et le [format fluent](https://projectfluent.org/) (`.ftl`) pour la traduction
|
||||
- une architecture ports et adapteurs avec des fonctionnalités de coeurs utilisables par un cli et par le site web
|
||||
- sections et pages
|
||||
- quelques routes pour la démo
|
||||
|
||||
et voilà!
|
||||
|
||||
Ce sera vite, ce sera joyeux: allegro!
|
||||
|
||||
### Avant toute chose, un peu de boilerplate
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
# installe rust
|
||||
|
||||
# installe lib pour wasm
|
||||
rustup target add wasm32-unknown-unknown
|
||||
```
|
||||
|
||||
rustup, c'est...
|
||||
|
||||
cargo, c'est ...
|
||||
|
||||
trunk, c'est ...
|
||||
|
||||
|
||||
### On définit les structs
|
||||
|
||||
|
||||
### On définit les sections
|
||||
|
||||
### Le style dès maintenant parce qu'on va pas au bal tout nu
|
||||
|
||||
### Voilà notre première page (émoji de note de musique)
|
||||
|
||||
### On traduit parce qu'on vise le marché international
|
||||
|
||||
### On ajoute un core et un cli juste pour la démo
|
||||
|
||||
Pour ceux qui aiment les clis, on ne vous a pas oublié. Ici, on va ajouter un petit outil en support de la traduction.
|
||||
|
||||
### On peut maintenant servir tous nos articles
|
||||
|
||||
Génération d'index.
|
||||
|
||||
Ajout des routes.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Deviez-vous changer de framework web pour leptos? Ça c'est vore affaire, on viendra pas vous dire quoi faire.
|
||||
|
||||
Mais nous, on s'amuse bien avec leptos. Ça nous rend heureux de pouvoir recycler nos skills et no tricks de rust un peu partout, alors pourquoi pas sur le web?
|
||||
|
||||
Venez en discuter sur le discord de NationTech. Et *funky codage*! (emoji de musique)
|
||||
|
||||
Reference in New Issue
Block a user