Académique Documents
Professionnel Documents
Culture Documents
1. OBJECTIF
L’objectif principal de ce module, est de concilier les théories
apprises en programmation, à la pratique en tenant compte des réalités
professionnelles.
Après la bonne conciliation des théories apprises à la pratique, l’apprenant
sera en mesure de ce qui suit :
Maîtriser les aspects essentiels de la programmation.
Savoir analyser et traduire des besoins fonctionnels en algorithmes.
Savoir s’appuyer sur un Framework pour développer plus simplement des
applications web performantes.
2. Bases de la programmation
Objectif
Découvrir les différents aspects essentiels de la programmation, de la
programmation procédurale à la programmation objet et disposer ainsi de bases
solides permettant d'appréhender par la suite divers langages de développement.
2.1. Définition d'un programme informatique
Un programme informatique est un ensemble d'opérations destinées à être
exécutées par un ordinateur.
Un programme source est un code écrit par un informaticien dans un langage de
programmation. Il peut être compilé vers une forme binaire, ou directement
interprété
2.2. Algorithmique
Un algorithme est une suite finie et non ambiguë d'opérations ou d'instructions
permettant de résoudre un problème ou d'obtenir un résultat.
2.3. Programmation procédurale :
En informatique, la programmation procédurale est un paradigme qui se fonde
sur le concept d'appel procédural.
Une procédure, aussi appelée routine, sous-routine ou fonction (à ne pas
confondre avec les fonctions de la programmation fonctionnelle reposant sur des
fonctions mathématiques), contient simplement une série d'étapes à réaliser.
N'importe quelle procédure peut être appelée à n'importe quelle étape de
l'exécution du programme, y compris à l'intérieur d'autres procédures, voire dans
la procédure elle-même (récursivité).
Avantages de la programmation procédurale :
La programmation procédurale est un meilleur choix qu'une simple
programmation séquentielle. Les avantages sont en effet les suivants :
La possibilité de réutiliser le même code à différents emplacements dans
le programme sans avoir à le retaper (factorisation), ce qui a pour effet la
réduction de la taille du code source et un gain en localité des
modifications, donc une amélioration de la maintenabilité (compréhension
plus rapide, réduction du risque de régression) ;
Une façon plus simple de suivre l'exécution du programme : la
programmation procédurale permet de se passer d'instructions telles que
Goto, évitant ainsi bien souvent de se retrouver avec un programme
compliqué qui part dans toutes les directions (appelé souvent <<
programmation spaghetti»); cependant, la programmation procédurale
permet les << effets de bord », c'est-à-dire la possibilité pour une
procédure qui prend des arguments de modifier des variables extérieures à
la procédure auxquelles elle a accès (variables de contexte plus global que
la procédure).
• Ada
• C#
• Java
• Objective-C
• Perl
• Python
• Ruby
• Visual Basic
IOS
Pour le développement dédié à iOS (iPhone, iPad, iPod) le langage Objective-C
te permettra de faire des merveilles, notons aussi que c'est possible de faire
quelque chose des mieux avec le C# en utilisant le fameux Xamarin de
Microsoft pour le développement mobile.
Windows Phone
Vous êtes fan de Microsoft et ses produits, vous voulez faires des applications
pour ces produits, le C# est mieux adapté pour vos besoins de développement.
2.5. Notion de variables :
Dans la plupart des langages, on travaille généralement sur des variables, c'est-à-
dire que l'on associe à un nom un contenu. On pourra ainsi appeler une variable
"varl" et y stocker le chiffre 8
2.6. Modularisation du code :
La modularité (la programmation modulaire permet la réutilisation du code, via
l'écriture de librairies).
La réutilisabilité L'extensibilité
Pour une meilleure productivité des développeurs et une plus grande qualité des
applications.
2.7. FRONTEND VS BACKEND :
Langages utilisés
Framework utilisés
JavaScript Laravel
Framework
Django
React
Rails
Vue
Spring
Angular
Express
Ember
Hapi
Backbone
CSS Framework
Boots rap
Fondation
Bulma
Sematic UI
Materialize
Taiwind CSS
2.7. FRONTEND VS BACKEND :
3. Environnement de développement
3.1. Le Langage Python
Est un langage récent et moderne utilisable pour coder une grande variété de
programmes différents.
Le langage de programmation Python a été créé par Guido van Rossum en 1990
et est rendu disponible sous licence libre. Son développement est aujourd'hui
assuré par la Python Software Fondation, fondée en 2001. Il s'agit d'un langage
interprété fonctionnant sur la plupart des plateformes informatiques (notamment
Linux, Windows et MacOs). Il est également très apprécié des pédagogues qui le
considèrent comme étant un bon langage pour s'initier aux concepts de base de
la programmation.
Depuis sa création, le succès du langage n'a cessé de croitre, jusqu'à le porter
parmi les dix langages de programmation les plus populaires. Il s'agit d'un
langage de haut niveau, à usage général. Les dernières versions stables du
langage sont la 2.7.12 (25 juin 2016) et la 3.5.2 (27 juin 2016). Ces deux
versions, communément appelées Python 2 et Python 3, continuent toutes les
deux d'exister, essentiellement pour des raisons de compatibilité. Dans ce cours,
nous utiliserons la version 3.
Depuis sa création, le succès du langage n'a cessé de croitre, jusqu'à le porter
parmi les dix langages de programmation les plus populaires. Il s'agit d'un
langage de haut niveau, à usage général. Les dernières versions stables du
langage sont la 2.7.12 (25 juin 2016) et la 3.5.2 (27 juin 2016). Ces de versions,
communément appelées Python 2 et Python 3, continuent toutes les deux
d'exister, essentiellement pour des raisons de compatibilité. Dans ce cours, nous
utiliserons la version 3.
3.2. Découverte du Framework
- Connaissances communes : le travail est basé sur une seule et même boîte
à fonctionnalités ;
▪ DirectX 9-capable vidéo card that runs at 1024 x 768 or higher display
resolution
Django
Pyramide
TurboGears
Flask
Bottle
CherryPy
Etc.
3.5. Découverte du Framework DJANGO
Django, le Framework web pensé pour les perfectionnistes qui veulent tenir
leurs deadlines.
Il contient tout ce dont vous avez besoin ! Un serveur web, un ORM puissant, un
moteur de gabarit, un client de test et beaucoup d'autres fonctionnalités qui vous
faciliteront la vie !
Historique
▪ But: Réaliser une sorte de CMS, simple à utiliser pour les non
informaticiens
Caractéristiques
Framework Web de référence
ORM, Template
Cache
Migrations (intégrées tardivement, l'un des meilleurs systèmes de
migrations existant)
Formulaires, Vues génériques
Authentification
Internationalisation, Unicode
Gestion complète des exceptions
Bonne documentation
Framework Web généraliste offrant
MVT = Modèle Vue Template Système de Template
ORM = Object Relationnel Mapper (comme SQLAlchemy ou Doctrine)
Serveur Web intégré Interface d'Admin complète, souple et extensible
3.6. Installation Django
Virtualenv
C'est un Environnement virtuel Python qui permet d'installer ses propres
paquets.
Création virtualenv -p python3
Myenv
Installation de Django
pip install django
Puis ajouter notre nouvelle App aux applications chargées par défaut :
3.10. Les Url et les Vues
Pour faire fonctionner notre application, nous avons besoin de configurer au
moins une route (URL) qui va déclencher un comportement. Les routes se
configurent dans les fichiers urls.py
Les fichiers urls.py
Editons tout d'abord le fichier GestionAbonnes/urls.py et ajoutons la ligne
suivante dans url patterns :
From django. Contrib import admin from django. url import include, path
Url patterns = [path ('admin/", admin. site. Url), path ('auteurs/', include
('auteurs. Url'))
Fichier urls.py dans l'App auteurs
From django. Url import path from. Import views url patterns = [path ('index',
views. Index, Name='index')
3.11. Les views
Les Views ou Vues correspondent en gros aux « < contrôleurs >> dans une
application MVC, c'est à dire qu'elles vont faire généralement le lien entre le
modèle et les Template d'affichage en jouant le rôle de << chef d'orchestre » ou
d'aiguillage.
Dans le répertoire Gestion Abonnes/auteurs, il va falloir ajouter d fichier
views.py la fonction index () suivante :
From Django, shortcuts import rendre
From. Model import Auteur
Def index(request) :
auteurs-Auteur.objects.all ()
Return rendre (requête, ‘auteurs/index.html', {'posts’ : auteurs})
Defshow (request, id) :
auteur-Auteur.objects.get(pk-a)
Return render (request,'auteurs/show, humi, post : auteur})
4. Etude de cas
4.1. Enoncé
Dans le souci de rendre sa gestion plus fluide et moderne, la section
Bibliothèque de l'ISC veut se doter d'une application Web pour la gestion de ses
activités.
Les fonctions attendues de l'application sont les suivantes :
- L'inscription des abonnés
- Gestion des auteurs (Créer et mettre à jour des auteurs des ouvrages)
Gestion de consultation des ouvrages par les abonnés
Les états attendus se présentent comme suit :