django

Django unchained !!!

Qu’est ce que django ?

La Plateforme de développement Web pour les perfectionnistes sous pression.

Django est un framework de construction d’applications web basé sur le langage Python. Il embarque un mapper ORM et tout un framework pour gérer la partie web, à la fois coté client et coté serveur. Il est noter que la construction d’applications avec Django est particulièrement rapide et permet un démarrage de projet sur les chapeaux de roues…

Les problématiques

Actuellement en cours de réalisation sur un projet de maintenance applicative, je me retrouve confronté à plusieurs effets un peu inattendus…

Django à beau ètre un framework populaire, les applications développées avec ce framework souffrent de la multiplicité des sources d’informations. Documentation en ligne pas toujours à jour, livres et tutoriels très didactiques mais pas toujours adaptés à une reprise, support épisodique de la communauté, je me propose de vous livrer quelques éléments de recherche qui vous aideront à prendre contact en douceur.

Versions

Comme tout framework jeune, django évolue vite, très vite, il vous faudra donc un peu d’outillage pour pallier à l’effet « mais ca marchait en 1.2 !!! »

Tout d’abord, django emploie python, il vous faudra donc rapidement faire un choix sur la version de python. 2.7 ou 3.x ? Dans la pratique des choses, le développement de la branche 2.7 est arrété, ce qui en fait la version la plus stable. Ensuite, les spécifications de cette version étant bloquées, plusieurs interpréteurs sont disponibles. Choisissez d’installer l’interpréteur de référence (cPython) disponible sur le sie de Python ou celui délivré par le gestionnaire de paquets de votre OS.

Ensuite, familiarisez vous avec la dynamique des outils associés à Python : les setuptools (PIP et easy_install) mais surtout virtualenv.

Virtualenv va vous permettre de créer un « environnemnt virtualisé », c’est à dire un répertoire qui contiendra touts les pré-requis et bibliothèques avec lesquels vous travaillerez. Cet environnement peut ensuite ètre « activé » ce qui vous permet d’installer et d’exécuter tous les outils python nécessaire à votre développement à l’intérieur de cet environnement. Désactivez le, et aucune modification n’a été faite sur votre Python « système » (c-a-d l’install de python que vous avez réalisé au nivveau de votre système d’exploitation. Ainsi :

-J’installe Python

-Je télécharge setuptools et virtualenv

-Je crée un virtualenv nommé « dj12″

-Je l’active

-J’installe django 1.2

-Je désactive

-Je crée un virtualenv nommé « djlatest »

-Je l’active

-J’installe la dernière version de django (1.7.1 à la date de rédaction)

-Je désactive

Et je peux ainsi activer au choix mon environnement en django 1.2 ou en django 1.7 pour travailler sur mes projets.

Serveurs

 

Il est important de noter qu’un outil de développement web devra, tôt ou tard, fournir des livrables à déployer sur un serveur web.

La problématique à laquelle j’ai été confronté est simple : comment mettre en place un environnement de test ?

J’ai tout d’abord essayé d’exécuter le serveur de développement via la méthode « runserver » de django. Même si cette approche fonctionne, il reste de grosses problématique concernant les ressources statiques. En effet, le moteur de django réserve à celles-ci un traitement particulier, ce qui pour l’instant ne me permet pas encore de tester sur un environnement « à l’identique ». Je me suis donc orienté vers un déployement sur un serveur apache « full ».

Mais… L’application que j’ai récupérée utilisait un vieux module apache (mod_python) pour exécuter l’application. Après la traditionnelle phase de backup, et plusieurs tentatives pour réitérer cette configuration sur mon serveur de test, il est vite apparu évident que la manière « moderne » de déployer faisait appel à un module plus récent, plus agile et plus sécurisé nommé WSGI. Quelques fichiers de configuration plus tard, l’applicatif tourne bien et me permet de faire tester mon client dans des conditions satisfaisantes.

Développement

S’est ensuite posée la question de l’environnement de développement. Mes ressources de formation me suggéraient d’employer pyCharm (de jetbrains) ou WingIDE, tous deux particulièrement adaptés au Python. J’ai également installé sur ma machine PTVS (Python Tools for Visual Studio) qui s’avère un peu plus difficile à configurer, mais dont le confort (pour un utilisateur régulier de Visual Studio) semble bien meilleur.

Je n’hésiterais pas à vous tenir au courant de mes avancées en la matière.

A bientôt pour un nouveau billet technologique.

Veille active avec les oreilles

logo_carre_transparent_150height

Difficile de nos jours d’avoir du temps pour lire régulièrement des nouveautés sur notre métier. Du coup, aujourd’hui je vous propose de vous libérer les yeux avec quelques sources pour vos oreilles uniquement. Planifier vos synchros de podcasts, et à vous le bus, la voiture, ou même le podcast en codant (ca semble un peu méta, mais bon, j’assume mon geek intérieur)

De quoi aurez-vous besoin ?

  • D’une connexion
  • D’un bon niveau d’anglais (!)
  • D’un lecteur de podcasts (la plupart des lecteurs audio le permettent)
  • Éventuellement d’un mobile pour vous balader avec vos podcasts tout frais
  • … et bien entendu, de quelques adresses de podcasts

A commencer par :

Software Engineering Radio

Excellent cast pour une réflexion haut niveau sur l’industrie et l’état de l’art.

http://www.se-radio.net/

Dot Net Rocks

Un des plus anciens podcasts sur les technologies .NET, plus de 1000 épisodes.

http://www.dotnetrocks.com/

The Java Posse

La vraie actualité du monde java, les casts sont parfois un peu fouillis, mais les notes et liens fournis permettent d’avoir une vue très claire des sujets abordés.

http://javaposse.com/

Les Cast Codeurs

Un cast en français !!! surtout orienté Java et très dynamique, ces gars vont vous faire réver 😉

http://lescastcodeurs.com/

This week on Channel 9

Si vous ne connaissez pas Channel 9, il s’agit d’une webTV orientée technique et sponsorisée par Microsoft, un peu comme si Game One était produite par Nintendo, vous voyez le genre ?

http://channel9.msdn.com/shows/This+Week+On+Channel+9/

.NET Générique

  • http://thesoundof.net/
  • http://www.hanselminutes.com/
  • http://herdingcode.com/
  • http://deepfriedbytes.com/podcast/
  • http://jesseliberty.com/
  • http://msdevshow.com/

Java Générique

  • http://www.grailspodcast.com/
  • http://www.javaworld.com/podcasts/
  • http://www.informit.com/podcasts/index.aspx?st=60291
  • https://itunes.apple.com/us/podcast/debug/id578812394

Fourre tout

  • http://www.thisdeveloperslife.com/
  • http://thechangelog.com/
  • http://blog.stackoverflow.com/category/podcasts/
  • http://theshipshow.com/
  • http://nodeup.com/
  • http://devchat.tv/js-jabber/
  • http://devchat.tv/ruby-rogues/
  • http://javascriptshow.com/
  • http://phptownhall.com/
  • https://itunes.apple.com/us/podcast/the-food-fight-show/id495577922

 

Vos suggestions sont les bienvenues, évidemment.

 

Migrations techniques, modernisation ou intégration, vos choix sont vastes et nous sommes là pour vous aiguiller et vous conseiller.

AQAMAD c’est …

AQAMAD c’est une histoire qui commence d’abord avec un constat. A l’époque ou je démarre dans le métier, aucune école ou institut ne fournissait une réelle formation aux bases de la programmation telle qu’elle serait pratiquée quelques années plus tard. C’est un chemin d’autodidacte qui se saisit de son premier langage pour y trouver une application pratique. Et très rapidement, c’est le contact avec le monde de l’entreprise. Aux premières moulinettes à fichier vont succéder des applicatifs de gestion complexes, des challenges technologiques, et l’exigence du client vis à vis de son projet.

C’est aussi, et très rapidement, les difficultés ; les systèmes évoluent, les besoins métiers changent, la charge augmente, et les applicatifs ne sont pas toujours conçus pour le supporter.
Ce sont les premières découvertes, les techniques, les bonnes pratiques, les méthodes qui permettent de prendre en charge ces nouveaux besoins.

C’est une évolution dans le marché du service, avec les structures qui s’appelaient à l’époque SSII, le premier contact avec la sous-traitance et le travail en régie, ce sont de nombreuses équipes rencontrées, avec leurs environnements et leurs habitudes, leurs contraintes techniques, politiques et financières. C’est la qualité façon « ISO 9001″, avec sa lourdeur administrative et ses tonnes de papier. C’est également une réflexion sur la pratique du métier de développeur, l’importance de la qualité logicielle, du pilotage projet, et de la veille technologique personnelle.

C’est un jour une rencontre avec une structure à taille humaine, réceptive. C’est la formation des collaborateurs, la mise en place d’outils de développement maison, la rédaction des premières normes de développement, et le travail sur  les architectures web et n-tiers. C’est le développement du premier framework de mapping SGBD->Web, toujours fonctionnel, qui servira de support à plus d’une douzaine d’applicatifs, dont un progiciel tout intégré pour la gestion de contrats d’assurances.

C’est l’intégration dans les équipes d’un grand groupe, le rôle de référent technique transverse. La reprise de leur portail d’entreprise, de l’annuaire, des solutions SSO, du référentiel des tiers, de plusieurs applicatifs connexes et l’interconnexion avec les systèmes généraux (compta, éditique, ged). C’est le contact avec une architecture logicielle d’entreprise, la mise au point des représentations du SI et de ses briques logicielles, c’est la mise en place d’applications distribuées et composites, les premiers EDI temps réel, les workflows multi-application. Une vision différente de la conception, avec comme points de référence, qualité et pérennité.

C’est la mise en place d’un référentiel de normes de développement, de bonnes pratiques, de documentations techniques sur les frameworks maisons, de supports de formation et autres. C’est la construction de la chaîne d’outillage de développement, de la gestion du code source au déploiement des livrables, en passant par la gestion de configuration, et le lien avec les équipes systèmes*. C’est l’arrivée des méthodes agiles et leur adaptation à la structure, c’est la mise en place de contrôle qualité du code avec l’arrivée de la prestation en offshore*. C’est la mise en relief des problématiques grâce à des métriques qualités issus du suivi statistique des tickets et demandes, et leur mise en rapport avec les éléments codés pour chaque tâche. C’est 5 ans de revue de code, sur 7 langages différents, produits par près de 20 développeurs.

C’est l’amélioration continue grâce à la formation, à l’outillage et au pilotage.

Et aujourd’hui …

Grégoire Cassou, fondateur d’AQAMAD, le 27 Octobre 2014

* : de 46% de mises en production réussies sans intervention humaine à 92% en un an

** : de 67% des tickets livrés clôturés sans retours à 83% en 6 mois