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
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 : afficher la 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 : afficher la 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 : afficher la 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 : afficher la 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 validateLe 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 : afficher la 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 : afficher la 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 : afficher la 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 à la page principale de (gH)