Gotham - Framework front-end coffeescript

Salut :)

Je viens juste de lancer la version 1.0 d’un projet que je code depuis quelques mois.

J’aimerais si possible avoir quelques retours au niveau de la documentation, si vous arrivez à mettre en place le tout, etc …

Voici le lien: http://gothamjs.io/

J’ai seulement lu la doc pour le moment.
Sympa le nom, et sympa la doc.
Je garde de côté et je partage ;).

Merci pour le retour :)

Qu’est ce que tu as compris du Framework ? (Histoire de savoir si c’est assez clair)

Que c’est une alternative à un framework front-end, type Angular/Ember, en coffee.
Avec une syntaxe épurée et simplifiée à la ruby/rails - mais bon ça on le tient de coffee.

Après quelques retours, j’ai décidé d’ajouter la section “core principles” sur la page d’accueil: http://gothamjs.io/

Que ce soit clair, je n’essaye pas de créer un angularjs bis, etc … si vous êtes en train de coder une application “single page”, Gotham n’est pas pour vous :)

Salut :)

Juste une petite remarque :

Maybe you want validate the form before to send the form…

devrait plutôt être :

You may want to validate the form before sending it…

et également, il faut mettre un s à render dans

Imagine your back-end renders a view for that request

Merci pour le retour, c’est corrigé ^^

Désolé mais je ne comprends pas. Même avec le “core principles”.
Il faudrait donner un exemple concret à la place de

# Do something awesome here.

Workflow

Gotham est basé sur brunch.io (un système de build du genre de grunt, gulp, etc.).

Donc tu as un vrai espace de travail, du commonJS, la possibilité de require des fichiers, avoir une syntaxe propre via coffeescript, compilation, minification, intégration avec bower (tu installes le package, c’est inclus directement dans le build et t’as même pas a gérer l’ordre des dépendances).

L’idée de gotham est que pour une requete du genre http://domain.com/users/edit/10, ton back-end génère du HTML et tu veux executer du JS bien précis (de la validation de formulaire, des effets, bref toute ta logique métier).

Routing

La première étape est donc de déclarer une nouvelle route.

Dans l’exemple ci-dessus, j’execute un controller qui se trouve dans controllers/users/edit.coffee.

Tu as la possibilité d’executer un callback pour des petites actions, et ajouter des contraintes.

Controllers

Un controller c’est une classe CommonJS, tu peux faire ce que tu veux dedans. Gotham après le système de routing charge ton controller, execute la méthode before() pour faire par exemple des validations de requête, etc. et execute ensuite la méthode run(), à partir de là tu fais ce que tu veux. Généralement c’est la méthode où je déclare mes events et que j’associe à des méthodes de la classe.

T’as quelques shortcuts disponible pour déclarer des events, etc.

Views

Une vue est tout simplement un template HTML que tu compiles avec des données. Tu évites ainsi de polluer ton code coffee avec de la génération de HTML couplé à des variables.

Le système de view utilise le système de template ECO, tu peux donc executer du code coffee dedans !

J’étais partis à la base sur handlebars, mais après quelque projets avec Gotham ça me limitait énormément, j’aimais pas la syntaxe, et je perdais plus de temps qu’a en gagner.

Autres

T’as quelques librairies, pour de la validation, pour récupérer des données d’un formulaire, tu peux créer des helpers, etc …

Voilà voilà ^^

1 « J'aime »

Salut,

Tu dis que tu ne veux pas remplacer ember/angular mais ça ressemble un peu quand même. Ça serait bien de faire un texte expliquant les ressemblances et les différences.

Ça me parait bien fait. Beau travail. Ça me parait simple à utiliser. D’après ce que je comprend, c’est un peu un Rails frontend.

1 « J'aime »

Je persiste, ça ressemble à de l’angular/ember light et épuré - notamment le routing.

J’ai lu un peu plus attentivement la doc. Ça me parait très simple d’utilisation. Plus simple qu’Ember et Angular. D’après ce que je comprend, dans ton cas, c’est le serveur qui fournis du HTML. Est-ce que je me trompe ? C’est un paris risqué à l’heure ou la mode est un backend qui fournis du JSON et le frontend qui fait uniquement la vue. D’après moi, le framework gagnerait en popularité s’il y avait une parti model qui communique avec une API. Qu’en penses-tu ?

Je vois que tu as fait ça en un mois. C’est très impressionnant.

Yop, merci pour le retour ^^

En effet tu as bien compris Gotham est + tourné sur une application web “traditionnel”, d’où le fait que je vous avais dis que c’était pas pour du single page :)

Pour la partie model oui c’est déjà dans les idées, mais je voulais avoir quelques retours d’utilisation avant !

Je suis en train d’apprendre Ember et j’aime bien le fait que le backend soit séparer du frontend.D’après moi, tu ne devrais pas aller contre ce principe. D’après ce que j’en comprend, ça ne devrait pas être trop trop difficile pour toi de le faire. Il te suffirait d’avoir des modèles, non ? Il y a peut-être déjà des libraires qui s’occupent de ça.

Ceci dit, il y a pas mal de concurrence dans les frameworks MVC. Ça être difficile de faire ta place. Bonne chance !

Je viens de faire quelques screencasts ;)

http://gothamjs.io/screencasts/1.0.0

1 « J'aime »

Sympa !
Court feedback :

  • beau travail
  • le son de tes tapes sur le clavier est un peu fort
  • dans la première vidéo taper les commandes en terminal pour les effacer en suite n’apportent pas grand chose
Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s