Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1 - FaireDesJeux.fr #46

Closed
wants to merge 14 commits into from
Closed

V1 - FaireDesJeux.fr #46

wants to merge 14 commits into from

Conversation

goulvenclech
Copy link
Member

@goulvenclech goulvenclech commented Sep 23, 2021

Après 17 mois en béta, il est temps de commencer sérieusement à s'attaquer à la V1 de FaireDesJeux. Cela va principalement consister en un refactor complet du site, tout en gardant l'aspect visuel et l'organisation actuelle.

Cette pull request sera actualisée au fur et à mesure de l'avancement du projet. Un kanban a également été ouvert, ainsi qu'un tag spécifique pour les issues.

Stack Technique

(work in progress)

  • Vue 2 => Vue 3
  • Tailwind => Tailwind 2 + JIT
  • Gridsome abandonné
  • TypeScript adopté
  • Vite adopté

@Princesseuh
Copy link
Member

Princesseuh commented Sep 23, 2021

Une des fonctions de Gridsome qu'il faudra reproduire c'est le support des transformations pour les images, Gridsome fait ça à travers GraphQL où tu peux mettre diverses options (qualité, taille etc) sur les images que tu query qui sont dans le data store.

Dans l'écosystème Vite, une librairie qui est pas mal aimée pour transformer les images c'est imagetools qui permet de mettre des paramètres sharp directement dans les imports. Je sais pas à quel point c'est utilisable pour nous considérant que nos images viennent de markdown (y'aurait sans doutes moyen de passer par un plugin remark/whatever truc de markdown on utilise) mais je pense que ça serait intéressant à regarder

Cependant, le délire de Gridsome de load les images progressivement avec plein de Javascript à la Medium c'est plus vraiment intéressant en 2021 avec loading="lazy" et decoding="async". On pourrait mettre un placeholder généré automatiquement et load avec les outils natifs quand même cependant. Comme eleventy-high-performance-blog de Google (code ici)

@Princesseuh
Copy link
Member

Princesseuh commented Sep 23, 2021

Par-rapport à mon dernier commit (8c59c34), le linting est actuellement très agressif, dans le sens que, le build fail en cas d'erreur de formatting par-exemple 😄

D'un côté, ça ajoute de la friction au développement, puisque ça force à toujours respecter les règles mais, la réalité c'est que la plupart des problèmes rencontrés sont très mineurs et peuvent être corrigé automatiquement par ESLint / Prettier lors de la sauvegarde dans votre éditeur préféré

Pour VS Code par-exemple, il suffit d'installer les extensions (qui sont recommandés par défaut par VS Code grâce au fichier extensions.json) et d'ajouter les options suivantes à son fichier de configuration ou à celui du workspace (.vscode/settings.json):

{
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }
}

Et voilà, à chaque sauvegarde, la très grande majorité des problèmes rencontrés seront corrigés automatiquement. Magie. Je pense également que c'est bien d'encourager le plus possible ce qu'on considère comme étant les bonnes pratiques

@goulvenclech
Copy link
Member Author

Concernant les styles Tailwind, personellement je suis plutôt contre les remettres dans un plugin, ce n'était pas une erreur si j'ai essayé de mettre au maximum dans les templates + des balises styles. Utiliser un plugin comme l'on faisait avant, c'est beaucoup de side-effects et ça oblige à revenir en permanence dans le fichier config pour vérifier si un style s'y trouve.
Je préfère vraiment adopter complétement le css atomique, en soit effectivement ça va donner de la redondance de code. Mais c'est en fait généralement plus maintenable étant donné que l'on aura plus souvent à modifier un composant que le style global. Et dans tout les cas, en Tailwind la redondance ne créé pas plus de CSS en prod.

@goulvenclech
Copy link
Member Author

Pour l'instant mes points de frictions par rapport à Snowpack/Astro plutôt que Vite :
-> Le fait de ne pas pouvoir importer des packages (pour les fonts ou tailwind) ce qui nous fait dépendre de fonts téléchargées en dur (on peut moins facilement mettre à jour) et de global.css qui est un fichier vide
-> On ne peut pas gérer les images comme on le faisait directement dans les dossiers cours, et ça va rendre la contribution plus compiquée / moins agréable
-> Le serveur dev n'est pas even close aussi agréable que Vite (notamment il crash à la moindre erreur)
-> Ca a l'air méga opinionated, y a l'air de n'y avaoir qu'une manière de faire les choses, Astro semble faire beaucoup de magie "under the hood" et la documentation est minimaliste... Peur que l'on se retrouve très vite limités

Je sais que Astro évolue rapidement, donc peut-être que ça s'arrangera. Mais so far je me demande a quel point ça nous arrange par rapport à NuxtJS par exemple.

@goulvenclech
Copy link
Member Author

Rendu obsolète par #56 , bye bye !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
V1 Version 1.0 de FaireDesJeux
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

2 participants