Valid XHTML     Valid CSS2    

Langages de scripts, automatisation de commandes et

production de documents structurés :

4. Frameworks de développement pour langages de script

                     gilles.hunault "at" univ-angers.fr

 

Table des matières cliquable

  1. Qu'est-ce qu'un framework en général ? Et un framework de développement par rapport à un IDE ?

  2. Quels sont les grands frameworks pour Awk, Rexx, Perl, Php, Tcl, Python et Ruby ?

  3. Des tutoriels en français pour Djoomla, Symfony, Zend et Cakephp ?

  4. Détails des commandes django-admin et manage.py

  5. Détails des commandes curl, rvm, gem, rails, bundle, rake, rspec

  6. D'autres frameworks pour Ruby et Django

  7. Environnements de développement et de test

 

Il est possible d'afficher toutes les solutions via ?solutions=1.

 

1. Qu'est-ce qu'un framework en général ? Et un framework de développement par rapport à un IDE ?

Les débutant(e)s confondent souvent éditeurs de programmes, environnements de développement, frameworks de développement (web ou non) et logiciels d'aide au développement. Essayer d'expliciter les distinctions entre ces quatre termes.

Solution :  

Solution détaillée volontairement non communiquée.

La réponse a été fournie en cours.

 

2. Quels sont les grands frameworks pour Awk, Rexx, Perl, Php, Tcl, Python et Ruby ?

Nous avons vu les sept langages de scripts Awk, Rexx, Perl, Php, Tcl, Python et Ruby. Quels sont les grands frameworks de développement web pour ces langages ?

Solution :  

Solution détaillée volontairement non communiquée.

Nous avons fourni en cours (pour ceux et celles qui étaient là) des liens pour des listes de frameworks.

 

3. Des tutoriels en français pour Djoomla, Symfony, Zend et Cakephp ?

Est-il facile de trouver un tutoriel en français pour les frameworks Djoomla, Symfony, Zend et Cakephp ? Peut-on facilement les installer et les tester ? Est-ce simple de les comparer ?

Solution :  

Faisons sobre (pour une fois) : malheureusement, non.

 

4. Détails des commandes django-admin et manage.py

Le tutoriel de Django 1.4 a utilisé principalement les commandes django-admin et python manage.py. Quelles sont les paramètres et options de ces commandes ? Est-ce facile de maitriser Django ?

Solution :  

La documentation officielle sur le site de django indique qu'avec django-admin --help on trouve les différentes sous-commandes suivantes :


     $gh> django-admin --help
     
     Usage: django-admin subcommand [options] [args]
     
     Options:
       -v VERBOSITY, --verbosity=VERBOSITY
                             Verbosity level; 0=minimal output, 1=normal output,
                             2=all output
       --settings=SETTINGS   The Python path to a settings module, e.g.
                             "myproject.settings.main". If this isn't provided, the
                             DJANGO_SETTINGS_MODULE environment variable will be
                             used.
       --pythonpath=PYTHONPATH
                             A directory to add to the Python path, e.g.
                             "/home/djangoprojects/myproject".
       --traceback           Print traceback on exception
       --version             show program's version number and exit
       -h, --help            show this help message and exit
     
     Type 'django-admin help <subcommand>' for help on a specific subcommand.
     
     Available subcommands:
       cleanup
       compilemessages
       createcachetable
       dbshell
       diffsettings
       dumpdata
       flush
       inspectdb
       loaddata
       makemessages
       reset
       runfcgi
       runserver
       shell
       sql
       sqlall
       sqlclear
       sqlcustom
       sqlflush
       sqlindexes
       sqlinitialdata
       sqlreset
       sqlsequencereset
       startapp
       startproject
       syncdb
       test
       testserver
       validate
     
     

Le nombre important de sous-commandes et la réalisation des quatre parties du tutoriel Django 1.4 (Django 1.5 en contient cinq) montre certainement qu'il n'est pas simple de maitriser Django, même si on maitrise Python car il faut maitriser REST et l'analyse des URL via des expressions régulières, il faut maitriser ORM pour interfacer SQL, il faut aussi maitriser MVC, les templates pour HTML, les tests, l'intégration de Javascript pour Ajax..

 

5. Détails des commandes curl, rvm, gem, rails, bundle, rake, rspec

Le tutoriel de Ruby on rails 3.0.5 a utilisé principalement les commandes curl, rvm, gem, rails, bundle, rake et rspec. Quelles sont les paramètres et options de ces commandes ? Est-ce facile de maitriser Ruby on Rails ?

Solution :  

La plupart des commandes de Ruby on Rails fonctionnent avec le paramètre --help On trouvera dans le fichier curl_help.txt le rappel des commandes de curl et dans rvm_help.txt celles de rvm, dans gem_help.txt celles de gem et dans rails_help.txt celles de rails. Et puis, bien sûr, dans bundle_help.txt on trouve celles de bundle, dans rake_help.txt on trouve celles de rake et dans rspec_help.txt on trouve celles de rspec.

 

6. D'autres frameworks pour Ruby et Django

Passionné par Ruby, je voudrais pouvoir tester un "tutorial" un peu conséquent, avec des tests, de l'ORM et une document en français pour les frameworks Padrino, Camping et Sinatra. Est-ce possible ? Est-ce aussi simple et rapide qu'avec Rails (> 3.1) ?

Passionné aussi par Python 3, je voudrais pouvoir tester un "tutorial" un peu conséquent, avec des tests, de l'ORM et une document en français pour les frameworks Bottle, Flask et web2py. Est-ce possible ? Est-ce aussi simple et rapide qu'avec Django (> 1.5) ?

Solution :  

Hélas, non.

 

7. Environnements de développement et de test

Visiblement pour utiliser des framework de développement, il faut souvent des versions différentes d'un même langage, des outils logiciels et des configuration spéciales. Faut-il tout installer sur son ordinateur et savoir tout configurer ?

Comment bien gérer les différentes versions de Python et de Ruby ?

Quelles sont les grandes solutions de virtualisation et de conteneurisation et en quoi facilitent-elles le développement, le test et le déploiement d'applications ?

Solution :  

Comme nous l'avions déjà indiqué, il faut passer par rvm pour bien gérer les versions de Ruby et par virtualenv pour bien gérer les versions de Python.

Il n'est en général pas conseillé de vouloir tout installer et tout configurer soi-même parce que les frameworks sont parfois fragiles ou changeants. Les solutions de virtualisation et de conteneurisation sont en général conseillées. La virtualisation fournit un système d'exploitation alors que la conteneurisation ne fournit qu'un environnement configuré.

Parmi les grandes solutions de virtualisation, on peut citer VMware et VirtualBox.

Parmi les grandes solutions de conteneurisation, on peut sans doute citer Docker, vagga, LXD, Rocket et Bitnami.

Elles facilitent le développement, le test et le déploiement d'applications dans la mesure où elles fournissent des environnements et/ou des machines avec système d'exploitation déjà configurées, prêtes à l'emploi correspondant à un usage standard ou non. En termes d'installation, de configuration et de reproductibilité, c'est donc un gain énorme de temps.

 

 

Code-source php de cette page ; code javascript utilisé. Retour à la page principale du cours.

 

 

retour gH    Retour à la page principale de   (gH)