JeuWeb - Crée ton jeu par navigateur
Démarrer avec Ruby, questions - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Démarrer avec Ruby, questions (/showthread.php?tid=218)

Pages : 1 2


Démarrer avec Ruby, questions - gragar - 06-01-2011

Bonjour à tous

Dans ma présentation j'avais expliqué que je souhaitais apprendre à utiliser Symfony. En gros j'ai créé un jeu en procédural il ya quelques mois, j'ai voulu reprendre et je me suis dit pourquoi ne pas essayer de transposer tout ça en frameworks pour avoir quelque chose de beaucoup plus propre ?

Du coup j'ai testé Symfony et j'avoue que j'ai eu beaucoup de mal. J'ai codé en POO à une époque, il ya de ça presque 10 ans en C++ mais ça remonte à loin. Mon jeu actuel est en "quasi" POO. Quasi parce que bien des choses sont, je penses, du procédural englobé dans quelques classes, mais mal définies ou utilisées.
J'ai bien aimé le coté "carré" de Symfony mais j'avoue avoir beaucoup de mal à projeter ça pour un jeu. Pour ce qui est gestion de formulaire par exemple, alors là aucun problème, c'est super. Pour ce qui est de gerer X types d'unités différentes lancées sur un territoire pour piquer des ressources là j'avoue que j'ai du mal à voir comment ça va se passer :heuuu:

Du coup je me suis dit bon, Symfony c'est pas ton truc, laisse pas tomber et regarde Ruby dont Sephichan vante tant de mérites.
Du coup je suis allé regarder sur le site, qui est je trouve mieux fait que celui de Symfony, et ça me semble déjà plus clair. Par contre j'ai trouvé peu de tuto en français (ouais l'anglais et moi ça fait deux) donc je me demandais si vous aviez des liens, des tutos, bref des choses qui pourraient m'aider à démarrer. En gros pour simplifier on part du principe que je suis débutant, comme ça pas de prise de tête..
J'ai trouvé ce bouquin Débuter en programmation avec Ruby, en avez vous déjà entendu parler ? dois-je le commander ou est-ce que je peux trouver de bonnes choses sur le net ?
Quelle est la différence (le complément ?) entre Ruby et Ruby on rail ?

Exemple de choses m'ayant posé problème : déjà la déclaration des bases dans les fichiers yml, j'ai mis du temps à comprendre comment ça se passait. Mais surtout, la perte de données à chaque fois que l'on fait une modif dans la base (ajout de table par exemple), ce qui me trouble car pour tester mon un jeu il faut des comptes, des actions lancées, des territoires conquis qui donnent des ressources en temps réels, bref pas mal de choses qui font que si tout est effacé à la moindre manip, ça doit être une belle galère..

Point important je suis sous windows et beaucoup de tutos que j'ai trouvé parlaient d'installation ou d'utilisation sous nunux, du coup j'ai un peu de mal à comprendre comment transposer ça..

Bref vous l'aurez compris j'ai beaucoup de questions qui risquent de venir petit à petit, je vous remercies d'avance si vous prenez quelques minutes pour y répondre :respect:


RE: Démarrer avec Ruby, questions - Viciousity - 06-01-2011

(06-01-2011, 12:43 AM)gragar a écrit : J'ai bien aimé le coté "carré" de Symfony mais j'avoue avoir beaucoup de mal à projeter ça pour un jeu. Pour ce qui est gestion de formulaire par exemple, alors là aucun problème, c'est super.
Tu vas te régaler avec Ruby on Rails (RoR ou Rails pour le intimes).
Pourquoi? Simplement car Rails est aussi carré que symfony au niveau de l'organisation du code mais en laissant toutefois une grande liberté. Personnelement sous symfony j'avais l'impression de subir le framework plutôt que de l'utiliser (avis personnel ...). La gestion des formulaires est adorable, simple et facile Smile


(06-01-2011, 12:43 AM)gragar a écrit : Par contre j'ai trouvé peu de tuto en français (ouais l'anglais et moi ça fait deux) donc je me demandais si vous aviez des liens, des tutos, bref des choses qui pourraient m'aider à démarrer. En gros pour simplifier on part du principe que je suis débutant, comme ça pas de prise de tête..
J'ai trouvé ce bouquin Débuter en programmation avec Ruby, en avez vous déjà entendu parler ? dois-je le commander ou est-ce que je peux trouver de bonnes choses sur le net ?
Pour sa je ne vais pas être de grande aide car la grande partie de la communauté de Ruby est anglophone.
Pour commencer, je pense que commencer a étudier le RUBY tout court est une bonne base:
# Ruby-Docs
# Rails Tutorial
-- Mon préféré, il aborde une grande partie des capacités de rails de manière simple et ludique, apprend a utiliser GIT et a deployer son application avec. En anglais :S


(06-01-2011, 12:43 AM)gragar a écrit : Quelle est la différence (le complément ?) entre Ruby et Ruby on rail ?
Ruby est un langage de programmation.
Rails est un framework WEB qui utilise ruby. En gros tu code en ruby, Rails compile et te ressert sa pour le web Smile


(06-01-2011, 12:43 AM)gragar a écrit : Mais surtout, la perte de données à chaque fois que l'on fait une modif dans la base (ajout de table par exemple), ce qui me trouble car pour tester mon un jeu il faut des comptes, des actions lancées, des territoires conquis qui donnent des ressources en temps réels, bref pas mal de choses qui font que si tout est effacé à la moindre manip, ça doit être une belle galère..
Alors en fait ce n'est pas du tout sa Smile, Rails ne remet pas a jour tes tables a chaque fois que tu en crée une ou la modifie (en environnement de dev). Fin je ne vais pas rentrer dans les détails mais Rails marche avec un système de migration. Tu rentre ton code ruby pour les table et ensuite tu lance la migration et il crée lui même les tables, les champs, les clés sur ceux-ci.

Par contre windows est vivable pour dévelloper sous Rails mais loin d'être optimal :S

Cordialement Viciousity.


RE: Démarrer avec Ruby, questions - srm - 06-01-2011

Symfony 1 est nul, Symfony 2 est top, jete y un oeil, même si il est encore en bêta et qu'il devrait sortir en version finale dans 2/3 mois Smile

Edit: Il est à noter que je trouve toujours Active Record super chiant sous Rails, et que je recommande plutôt d'utiliser DataMapper sous Rails pour quelqu'un qui tient à utiliser Rails Smile
Edit2: D'ailleurs tous les ORM du monde professionnel (Java) et les nouveaux qui sortent (Doctrine 2) utilisent le pattern Data Mapper et plus/pas le pattern Active Record, c'est pas pour rien Wink


RE: Démarrer avec Ruby, questions - Sephi-Chan - 06-01-2011

(06-01-2011, 12:43 AM)gragar a écrit : Du coup je suis allé regarder sur le site, qui est je trouve mieux fait que celui de Symfony, et ça me semble déjà plus clair. Par contre j'ai trouvé peu de tuto en français (ouais l'anglais et moi ça fait deux) donc je me demandais si vous aviez des liens, des tutos, bref des choses qui pourraient m'aider à démarrer. En gros pour simplifier on part du principe que je suis débutant, comme ça pas de prise de tête..

Effectivement, la documentation de Ruby on Rails est bien plus claire que celle de Symfony. En revanche, tu devrais éviter les ressources en français, plus rares et moins à jour. Le site http://guides.rubyonrails.org/ est simplement excellent, tu peux peut-être t'aider d'un traducteur automatique pour pouvoir en profiter.

Pour t'aider à démarrer, je peux toujours de proposer de jeter un œil au draft présent dans ma signature.


(06-01-2011, 12:43 AM)gragar a écrit : J'ai trouvé ce bouquin Débuter en programmation avec Ruby, en avez vous déjà entendu parler ? dois-je le commander ou est-ce que je peux trouver de bonnes choses sur le net ?
Quelle est la différence (le complément ?) entre Ruby et Ruby on rail ?

Je te déconseille ce genre de livre. Déjà parce qu'il est de 2006, et ensuite parce qu'il ne porte pas sur Rails : tu vas y apprendre plein de choses qui ne te seront pas utiles.

Quant à la différence entre Ruby et Ruby on Rails, c'est simplement que Ruby est le langage et Ruby on Rails le framwork. Comme PHP était le langage utilisé dans Symfony.


(06-01-2011, 12:43 AM)gragar a écrit : Exemple de choses m'ayant posé problème : déjà la déclaration des bases dans les fichiers yml, j'ai mis du temps à comprendre comment ça se passait. Mais surtout, la perte de données à chaque fois que l'on fait une modif dans la base (ajout de table par exemple), ce qui me trouble car pour tester mon un jeu il faut des comptes, des actions lancées, des territoires conquis qui donnent des ressources en temps réels, bref pas mal de choses qui font que si tout est effacé à la moindre manip, ça doit être une belle galère..

C'est parce que tu ne maîtrises pas encore les migrations (très bien expliquées dans le guide dédié : http://guides.rubyonrails.org/migrations.html.

Quand tu crée un modèle via la ligne de commande, par exemple :


rails generate model user usernameConfusedtring emailConfusedtring password_hashConfusedtring password_saltConfusedtring universe_id:integer persistence_tokenConfusedtring last_request_at:datetime

Le système va te créer une migration nommée 20101124082539_create_users.rb (le nombre n'est qu'un timestamp) qui contiendra du code comme :


class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :email
# ...
end
end

def self.down
drop_table :users
end
end

Il y a du code pour lancer une migration (up) et pour en revenir (down). Ce qui te permet de versionner le schéma de ta base de données.

Ensuite, quand tu veux agir sur ta structure, tu le fais via des migrations que tu crées via la ligne de commande :


rails generate migration AddPartNumberToProducts part_numberConfusedtring

La migration aura la tronche suivante (car Rails détecte pas mal de chose d'après le nom des migrations, il reconnaît les formes "AddXXXToYYY" et "RemoveXXXFromYYY").



class AddPartNumberToProducts < ActiveRecord::Migration
def self.up
add_column :products, :part_number, Confusedtring
end

def self.down
remove_column :products, :part_number
end
end

Une fois que tu as des migrations, tu peux les lancer via différentes commande rake. La plus courante (pour mettre en place les migrations) :


rake db:migrate


(06-01-2011, 12:43 AM)gragar a écrit : Point important je suis sous windows et beaucoup de tutos que j'ai trouvé parlaient d'installation ou d'utilisation sous nunux, du coup j'ai un peu de mal à comprendre comment transposer ça..

Pas de chance ! Mais heureusement, il y a plusieurs articles sur le sujet :

Voilà, voilà ! Et ne t'embête pas avec ActiveRecord, DataMapper, commence simplement avec les outils mis à ta disposition. Wink La masse d'utilisateur est bien plus tournée vers ActiveRecord, pour lequel tu trouveras plus d'aide.


Sephi-Chan


RE: Démarrer avec Ruby, questions - Viciousity - 06-01-2011

Et surtout que Active Record fait super bine son boulot ;P


RE: Démarrer avec Ruby, questions - srm - 06-01-2011

Et que DataMapper le fait mieux :')
et Sequel encore mieux :')


RE: Démarrer avec Ruby, questions - Sephi-Chan - 06-01-2011

Autant commencer avec ActiveRecord, pour lequel il y a plus de ressources. Il pourra se forger son opinion plus tard sur les différents ORM.


Sephi-Chan, N'importe quoi, ta notion de "mieux"…


RE: Démarrer avec Ruby, questions - gragar - 06-01-2011

Déjà avant toute chose merci à tous pour vos réponses.

Citation :Pour sa je ne vais pas être de grande aide car la grande partie de la communauté de Ruby est anglophone.
Pour commencer, je pense que commencer a étudier le RUBY tout court est une bonne base:
# Ruby-Docs
# Rails Tutorial
-- Mon préféré, il aborde une grande partie des capacités de rails de manière simple et ludique, apprend a utiliser GIT et a deployer son application avec. En anglais :S
Oui après avoir posté j'ai continué à chercher et c'est vrai qu'il n'y a pas grand chose en français. Pas grave je ferais avec ^^
J'ai commencé à mettre le nez dans le Ruby. Je pensais bien que le "on rail" était le framework mais je voulais avoir confirmation.
J'ai fait le premier "tuto" en live sur le site de Ruby, le langage à l'air super clair et intuitif (enfin pour l'instant en tout cas).

Citation :e te déconseille ce genre de livre. Déjà parce qu'il est de 2006, et ensuite parce qu'il ne porte pas sur Rails : tu vas y apprendre plein de choses qui ne te seront pas utiles.
Effectivement je n'avais pas fait attention à la date de parution du livre, ça commence à dater. Je vais donc me débrouiller avec la doc en ligne, ça devrait le faire.

Citation :Symfony 1 est nul, Symfony 2 est top, jete y un oeil, même si il est encore en bêta et qu'il devrait sortir en version finale dans 2/3 mois
Effectivement ça n'engage à rien de tester le 2. Mais c'est vrai qu'au premier abord Ruby me semble plus accessible et plus clair (après c'est surement parce que je n'ai pas l'habitude des Frameworks).

Viciousity et Sephi-chan merci pour l'explication par rapport aux migrations. C'est le gros point que j'avais du mal à comprendre avec Symfony et ça m'avait énormément refroidit. Je regarde ton lien de suite après Sephi, mais déjà avec ton explication j'ai compris le principe, ça me rassure.

Pour Windows malheureusement je n'ai pas le temps et surtout la motiv de monter un nunux, faudrait que je recherche quelles sont les versions actuelle, laquelle me correspondrait le mieux, etc. Sachant que je me suis arrêté à Mandrake 10 en cours, ça remonte ^^

En lisant les différents sujets de Sephi-chan sur Ruby je suis tombé là dessus Railsforzombies ça a l'air d'etre un tuto super sympa, je vais y jeter un oeil !

Merci à vous 3


RE: Démarrer avec Ruby, questions - Viciousity - 06-01-2011

De rien on est la pour sa hein Smile

Par contre Ox, merci pour m'avoir donner DM a réfléchir, je me demande si je ne vais pas l'implanter Smile


RE: Démarrer avec Ruby, questions - Sephi-Chan - 06-01-2011

L'avantage de DataMapper sur ActiveRecord est qu'il s'entend bien avec les autres systèmes (Cf. Plays Well With Others de Why DataMapper?). Tout ça peut être bien utile quand on en a besoin.

A part ça, je trouve la query interface vraiment moyenne, et c'est un vrai problème pour moi.


Sephi-Chan