[Ruby] Mes premières classes, recherche de défaut - 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 : [Ruby] Mes premières classes, recherche de défaut (/showthread.php?tid=5674) Pages :
1
2
|
[Ruby] Mes premières classes, recherche de défaut - Maz - 03-09-2011 Bonjour, dans le but de coder en ruby différemment qu'en "php avec la syntaxe ruby", j'aimerais vous montrez 3classes que j'ai créé juste pour l'entraînement, j'ai suivi ce tuto qui nous apprends entre autres: boucles, itérations, conditions, comparaisons, type de variables, fonctions, classes... Un truc pour bon gros débutant comme moi. Ce que je recherches sont les critiques! Voici donc mes 3classes:
Merci. RE: [Ruby]Mes premières classes, recherche de défaut - srm - 04-09-2011 Préambule : je ne code pas tellement en Ruby Ça me semble pas mal du tout ça RE: [Ruby]Mes premières classes, recherche de défaut - Maz - 04-09-2011 J'ai beaucoup essayé d'utiliser vraiment ruby comme il se doit, après 6ans de php, c'est un peu dur de penser façon ruby... Mais dorénavant je comprends beaucoup mieux les codes de Rails... je ne savais même pas que les each do était en fait des boucles... Il y a quelques points dans mes class sur lesquels j'ai un peu de doute sur "l'optimisation", tant technique que du point de vue visibilité, par exemple: dans une méthodes, on ne fait pas de return? j'ai essayer avec return text_list par exemple pour la méthode personne#afficher, ça fonctionnes, mais ça fonctionnes aussi sans... j'ai même essayer sans la variable text_list, ça marches aussi... Pour un codeur php c'est un peu bizarre de voir ça, mais bon, je m'y ferais ,) j'ai remarqué aussi que le adresse_email = nil dans personne#initialize était inutile... Si une variable n'est pas déclaré dans l'appel de la méthode, ça ne renvoi pas d'erreur? J'ai essayer new personne("Billoir", "Romain"), sans spécifier adresse ou autre variable qui ne sont pas défini comme optionnel, aucune erreur ne m'est renvoyé... Je trouves aussi les itérateurs vraiment très puissant et à la fois super simple d'utilisation. RE: [Ruby] Mes premières classes, recherche de défaut - Sephi-Chan - 04-09-2011 Je te conseille de passer à l'anglais tout de suite, c'est plus approprié pour le développement et encore plus pour Ruby on Rails, qui utilise beaucoup l'inférence de noms. Généralement, on n'écrit pas explicitement le return : Ruby retourne automatiquement la dernière expression appelée. Je n'aime pas trop cette méthode "afficher" pour tes personnes : je te conseille plutôt d'utiliser to_string. Ensuite, je ne trouve pas la définition d'un itérateur pertinente : faire directement @address_book.contacts.each est infiniment plus naturel. Enfin, je te recommande d'utiliser l'interpolation de chaîne plutôt que la concaténation (la coloration syntaxique est meilleure dans les éditeurs).
Après, je ne sais pas trop si ce genre d'exercice te sera vraiment utile dans la mesure où tu écriras souvent des modèles/contrôleurs qui te fourniront un socle différent (par exemple, tes constructeurs ne prendront jamais une liste nom, prénom, etc. mais un hash d'attributs). RE: [Ruby] Mes premières classes, recherche de défaut - Maz - 04-09-2011 (04-09-2011, 09:58 AM)Sephi-Chan a écrit : Je te conseille de passer à l'anglais tout de suite, c'est plus approprié pour le développement et encore plus pour Ruby on Rails, qui utilise beaucoup l'inférence de noms. Check, check, check, check. Par contre: Oui, j'y trouves déjà une utilité, je comprends déjà beaucoup mieux ce que je fait sur Rails, quand on passes de php à Rails, sans passer par les fondamentales de Ruby, on se demandes si les syntaxes: @variable :variable variables.each do |variable| sont des syntaxes spéciales inventé par Rails, maintenant j'ai ma réponse. Et puis de toute manière, mon but étant de faire un projet complexe de jeu web (j'allais dire jeu php...). Je ne pourrais pas tout faire avec Rails je penses (bien que je ne connaisses pas ses limites), mais déjà j'ai vu que les Active Record ne supportaient que les types suivant:
RE: [Ruby] Mes premières classes, recherche de défaut - Sephi-Chan - 04-09-2011 Tu as plus simple pour l'enum. Une simple chaîne avec un validateur.
Pour ce qui est du type point, il faudrait que tu me décrives un peu le truc, j'ai peut-être une piste pour toi avec la composition. Et après, il doit sûrement exister des adapters pour les types géométriques des différentes bases. RE: [Ruby] Mes premières classes, recherche de défaut - Maz - 04-09-2011 Le type point est formé ainsi: (n, n). Tout simplement. Mais ensuite j'ai des type path: ((n, n), (n2, n2), (n3, n3)) probablement dans le futur aussi des type circle etc mais si j'arrives à gruger point, en théorie j'arrives pour path et le reste suivras. J'ai pas spécialement envie de passer en regex tout ce foutoirs :p RE: [Ruby] Mes premières classes, recherche de défaut - Viciousity - 05-09-2011 Même remarque que Sephi, nommer ses classes en anglais est mille fois plus naturel pour des langages tels que Ruby Rajoutes à cela que Rails est un framework du type "Convention over configuration" et tu verras que même si cela demande parfois un certains effort, chercher et utiliser un nom adapté et cohérent pour tes classes est vraiment essentiel RE: [Ruby] Mes premières classes, recherche de défaut - Sephi-Chan - 05-09-2011 Tu peux dans ce cas utiliser la composition avec (composed_of), ça te permet d'avoir des objets composés (adresse, monnaie, coordonnées) au sein d'une entité. Ça permet d'avoir par exemple un objet de la classe Address dans l'attribut address d'un utilisateur. Jette un œil à la page de doc que je t'ai donné et fais quelques essais. Tu verras bien si ça colle à ton besoin. RE: [Ruby] Mes premières classes, recherche de défaut - Maz - 05-09-2011 ça m'as l'air d'être un bon début de piste, mais, mon champs si j'utilise composed_of seras un string et juste les objets en entrée et sortie seront des Class Point par exemple? si c'est le cas c'est pas l'idéal car j'utilise des fonction PostgreSQL tel que le calcul de la taille d'un chemin etc... J'ai choisi PostgreSQL pour ces fameux types géométriques qui collent beaucoup mieux aux jeux web que MySQL (qui de plus est beaucoup moins respectueux des normes SQL). |