expert:developpement
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | expert:developpement [2018/11/17 12:53] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Le développement sous GNU/Linux ====== | ||
+ | ===== Le développement: | ||
+ | |||
+ | Le développement, | ||
+ | |||
+ | La confusion est souvent faite entre le développeur et le programmeur. C'est naturel puisque, d'une part la programmation fait partie du processus de développement et d' | ||
+ | |||
+ | Cependant, le développement est un processus bien plus complet. Il inclue les différentes analyses, la modélisation, | ||
+ | |||
+ | ===== Les grands principes du développement moderne ===== | ||
+ | |||
+ | ==== Software as a Service ==== | ||
+ | |||
+ | Le logiciel en tant que service. | ||
+ | |||
+ | Cette façon de faire est massivement utilisée dans le libre. Le logiciel n'est pas une fin en soi, il évolue en fonction des besoins des utilisateurs. À contrario des éditeurs de logiciels traditionnels qui fournissent une application telle quelle, on part ici du principe que les logiciels doivent s' | ||
+ | |||
+ | Cela force en outre à un dialogue perpétuel entre les développeurs et les utilisateurs finaux. | ||
+ | |||
+ | ==== La modularité ==== | ||
+ | |||
+ | Là encore, les logiciels libres sont des exemples parfaits. L' | ||
+ | |||
+ | Les modules sont des composants complémentaires que l'on peut ajouter à la demande et développer en fonction des besoins. | ||
+ | |||
+ | Ainsi, avec un logiciel modulaire, si une fonctionnalité n' | ||
+ | |||
+ | ==== Le MVC ==== | ||
+ | |||
+ | Model-Vue-Controler: | ||
+ | |||
+ | Contrôler les données à tous les niveaux peut paraître rébarbatif, | ||
+ | |||
+ | ===== La modélisation ===== | ||
+ | |||
+ | La modélisation est un opération qui consite à créer des modèles (sic!) de structure et de traitement des données. | ||
+ | ==== Le meurise (obsolète) ==== | ||
+ | |||
+ | Je le site ici parcequ' | ||
+ | |||
+ | Le meurise n'est pas une mauvaise méthode, elle était utile à la grande époque de la programmation impérative mais ne s'est jamais imposée (sauf en France vu que cocorico! c'est un français qui l'a mise au point) et n'est plus du tout d' | ||
+ | |||
+ | ==== UML ==== | ||
+ | |||
+ | Unified Modeling Langage (langage de modelisation unifié): l'UML est un standart définit par l'OMG (Object Managing Group) et donc utilisé de manière internationnale pour modéliser les applications orientées objet. | ||
+ | |||
+ | L'UML fournit plusieurs types de diagrammes différents, | ||
+ | |||
+ | La sémantique UML comporte relativement peu d' | ||
+ | |||
+ | * Voire: [[uml|UML]] | ||
+ | |||
+ | ===== Le choix des composants ===== | ||
+ | |||
+ | On n'en est plus à recréer la roue et à inventer tous les élements d'un logiciel à chaque fois. La première chose à faire quand on développe, une fois compris les besoins de l' | ||
+ | |||
+ | Tout d' | ||
+ | |||
+ | Quelles bibliothèques vais-je pouvoir utiliser? Même si la roue n' | ||
+ | |||
+ | ==== Les frameworks ==== | ||
+ | |||
+ | Dans un domaine particulier, | ||
+ | |||
+ | Les frameworks imposent généralement le MVC, gèrent eux-même la communication avec la/les base(s) de données et mettent à disposition du développeur, | ||
+ | |||
+ | === L' | ||
+ | |||
+ | Les frameworks sont basés sur le pricipe d' | ||
+ | |||
+ | ==== Le choix du langage et du SGBD ==== | ||
+ | |||
+ | Le choix du langage de programmation et le choix du système de gestion de bases de données ne sont pas des paramètres déterminants mais plutôt des choix déterminés par les besoins et le paradigme de programmation. Aujourd' | ||
+ | |||
+ | En conséquence, | ||
+ | |||
+ | === Les langages de scripts === | ||
+ | |||
+ | PHP, Perl, Python, Ruby, etc. Ces langages dits de haut niveau offrent une très grande abstraction vis à vis de la machine elle-même. Ils permettent une programmation rapide et on peut tester les scripts très vite sans avoir à les compiler. Ce sont les langages roi du web. | ||
+ | |||
+ | Évidemment, | ||
+ | |||
+ | === Les langages compilés de haut niveau === | ||
+ | |||
+ | Le C++ et le java sont certainement les plus populaires. Ce sont des langages orientés objet et qui offrent des performances exemplaires. Après avoir créé le code, il faut le transformer en langage binaire: c'est la compilation. L' | ||
+ | |||
+ | === Les langages compilés procéduraux === | ||
+ | |||
+ | Pour du procédural pûr, il est évident que le C, le fortan ou le lisp, aujourd' | ||
+ | |||
+ | === Le langage assembleur (ASM) === | ||
+ | |||
+ | C'est le langage de plus bas niveau, les instructions qui vont être directement données au processeur, les seules qu'il est réellement capable d' | ||
+ | |||
+ | On ne l' | ||
+ | * Pour créer un langage de programmation | ||
+ | * Pour créer des drivers | ||
+ | * Pour optimiser certains morceaux de code | ||
+ | |||
+ | === Le SGBD === | ||
+ | |||
+ | En ce qui concerne les bases de données, on pourra utiliser sqlite pour les besoin réduits, postgres pour les gros besoins. Mysql est beaucoup utilisé pour le web mais peut poser des problèmes à cause du non respect des standards sql. | ||
+ | |||
+ | L' | ||
+ | |||
+ | Par exemple, pour se simplifier la vie durant la phase de développement, | ||
+ | ===== Les outils de travail ===== | ||
+ | |||
+ | ==== Modélisation ==== | ||
+ | |||
+ | Pour créer des diagrammes, n' | ||
+ | * [[graphisme: | ||
+ | * [[bouml|Bouml]] (écrit en C++) | ||
+ | * [[umbrello|Umbrello]] (écrit en C++, logiciel KDE) | ||
+ | * [[argouml|ArgoUML]] (écrit en java) | ||
+ | |||
+ | (Tout ça est pour de l'uml; pour du merise, il n' | ||
+ | |||
+ | ==== Les IDE ==== | ||
+ | |||
+ | Les IDE (integrated development environment) sont des programmes rassemblant des ensembles d' | ||
+ | * [[geany|Geany]]: | ||
+ | * [[codeblocks|Code:: | ||
+ | * [[kdevelop|Kdevelop]]: | ||
+ | * [[dev: | ||
+ | |||
+ | ==== Les éditeurs de texte ==== | ||
+ | L' | ||
+ | * [[gedit|Gedit]]: | ||
+ | * [[kate|Kate]]: | ||
+ | * [[util: | ||
+ | * [[util: | ||
+ | |||
+ | ==== Les frameworks ==== | ||
+ | |||
+ | Je vous donne un échantillon des frameworks les plus répendus mais il y en a des centaines d' | ||
+ | |||
+ | === Frameworks multimedia === | ||
+ | * FFmpeg | ||
+ | * Gstreamer | ||
+ | * xine | ||
+ | * Phonon (KDE) | ||
+ | |||
+ | === Frameworks graphiques === | ||
+ | * Graphical Modeling Framework | ||
+ | |||
+ | === Frameworks web === | ||
+ | * Python: | ||
+ | * Django | ||
+ | * Zope | ||
+ | * Twisted | ||
+ | * Web2py | ||
+ | * Javascript: | ||
+ | * jQuery | ||
+ | * Dojo | ||
+ | * Google Web Toolkit | ||
+ | * Node.js | ||
+ | * PHP: | ||
+ | * Symphony | ||
+ | * Zend | ||
+ | * eZ Publish | ||
+ | * Perl: | ||
+ | * Catalyst | ||
+ | * Ruby | ||
+ | * Ruby on Rails | ||
+ | |||
+ | ===== Tutoriels sur linuxPedia ===== | ||
+ | * [[expert: | ||
+ | * Bases de programmation avec python: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ | * [[expert: | ||
+ |
expert/developpement.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1