accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: ruby et genie logiciel

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.ruby ] 

Retour : Accueil du site fr comp lang ruby  


  Sujet:   Re: ruby et genie logiciel  
 De: doh...@gmail.com
 Groupes: fr.comp.lang.ruby
 Organisation: http://groups.google.com
 Date: 17. Jan 2008, 07:37:02
 References: 1
Bonjour,
je trouve ta démarche intéressante, ton panel sera-t-il accessible ?

LANGAGE

Je tiens à préciser que le typage du Ruby est dynamique mais fort. Par
exemple "3" + 1 ne marchera pas.

Le typage dynamique permet de coder rapidement et d'avoir du code
lisible (pas de casts ni de généricité), le développeur peu ainsi
prendre du temps pour "penser". La gestion automatisée de la mémoire
remplie la même fonction.
Je retiens 2 choses importante sur le typage dynamique :
- le code est plus simple, plus lisible, on ne s'ennuie pas avec plein
de détails, on ne créé pas des interfaces par centaines,  etc
- les erreurs sont signalés à l'exécution uniquement, les fautes de
frappe font plus mal (mais c'est aussi pour cela que les tests
unitaires existent)

Parlons des fonction. Il n'y a que des objets en Ruby, pas de type
primitif... et pas de fonctions. "+" est donc une méthode, que l'on
peut appliquer à un entier comme à une chaîne de caractère. Il n'y a
donc pas de surcharge d'opérateur. De plus le Ruby permet d'attribuer
simplement un nombre de paramètre variable, ou de donner une valeur
par défaut à un paramètre. Si l'on déclare 2 fois une méthode, la
deuxième déclaration écrasera la première. On évite ainsi les prises
de tête que procure C++.

Le côté "tout ouvert" de Ruby perturbe au début, et parait peu
crédible. Par côté tout ouvert j'entends l'introspection poussée et le
fait qu'on puisse ajouter dynamiquement des fonctionnalités à une
classe (ou directement à un objet).
Mais si l'on oublie l'aspect sécurité ($SAFE est là pour ça) il se
révèle très pratique, et permet de faire des choses surprenantes. Un
bon exemple est l'ActiveRecord::Base qui crée dynamiquement (peut-être
même aussi virtuellement, se contentant de faire "comme si" les
méthodes existaient) une classe en fonction des champs d'une table
d'une base de donnée.
Il permet entre autre de remplacer efficacement certains patrons de
conceptions (qui servent à contrer certaines barrières du langage) et
favorise la création/utilisation de framework. Bref, avantage notable.

Un mécanisme très intéressant du Ruby (tiré du Smalltalk si je
m'abuse) est le mixin. Il permet de remplacer l'héritage multiple en
le simplifiant. Une classe ne peut hériter que d'une et une seule
classe, mais inclue autant de module qu'elle le souhaite. Un module ne
peut hériter de personne mais peut inclure d'autres modules. Au lieu
de donner des signatures de méthodes (interfaces), on fournit
directement leur implémentation. Un exemple de module est Singleton,
qui transforme notre classe en singleton.

OUTILS

Je n'ai pas vraiment fait le tour des outils faits en ruby, mais je
peux au moins en citer 3.

Rake est un remplacement de make/ant. Le fichier de configuration est
écrit directement en Ruby.

RUnit est un framework de tests unitaires (pas encore testé, mea
culpa, mais visiblement très proche de JUnit)

ruby-debug fait comme son nom l'indique (mais ne devrais bien sur
jamais avoir à servir :p)

CONCLUSION

C'est surtout une question de goût. Le Ruby offre un bon nombre de
simplifications et de raccourcis en tentant de rester simple à
appréhender.
Certains y préférerons un langage plus sévère, guidant (bridant ?)
plus le développeur.
Personnellement je pense qu'un concept primordial du génie logiciel
est "penser", et le fait de pouvoir coder vite permet de penser plus,
et d'avoir moins peur des changements.


On 15 jan, 20:30, Jack <jack.c...@caramail.com> wrote:
> bonjour,
>
> j'essaie de regrouper des informations sur la pertinence d'employer Ruby
> pour concevoir des logiciels en suivant les principes du génie logiciel
>
> par exemple sur les avantages que ce langage procure dans cet usage, et
> sur l'éventail des outils qui existent pour ce langage à cet usage,
> genre qualité, documentation, tests, etc...
>
> par exemple est ce que le coté interprété du langage, le typage non
> strict, les mécanismes automatisés de gestion de la mémoire, sont un
> avantage pour faire du génie logiciel ?
>
> bref voila, tout ce qui vous semble être un atout (ou au contraire une
> faiblesse) du langage Ruby pour faire face à ces contraintes.
>
> (désolé je ne cross poste pas mais je fais un panel de ce qui existe en
> génie logiciel pour tous les langages interprétés en fait, donc je poste
> aussi pour Python, Perl, et PHP)
>
> merci d'avance pour vos réponses :)
>
> jack

--
Etienne Vallette d'Osia


DateSujet  Auteur
01.01.
o 
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Free counter and web stats