Liens utiles

Vous trouverez dans ces liens utiles des lectures et des outils qui n'ont pas pu être présentés dans le cours.

Lectures conseillées

Planification

Conception

Outils de modélisation UML (Open-source)

Patrons de conception (Design Patterns)

Implémentation

Templates

  • cookiecutter est une collection de templates pour des projets dans différents langages sur différentes plateformes; ils permettent d'avoir rapidement un environnement opérationnel.

Cours de Java

Journalisation

  • Apache logging services regroupe plusieurs projets open-source permettant la journalisation du comportement d'applications (langages supportés : Java, PHP, C++, .Net)
    • Log4j (a logging library for Java) permet de journaliser l'activité d'une application Java.
    • Chainsaw permet de visualiser graphiquement les log obtenus avec log4j.

Environnement de développement intégré

  • Eclipse est un IDE polyvalent grâce à l'utilisation de plugins.
  • Netbeans est une bonne alternative (Principaux langages supportés : Java, HTML5, PHP, C/C++)

Java

C/C++

Python

* Pycharm (Il y a une licence pour l'université)

PHP

Frameworks

PHP

  • Phalcon est un micro-framework PHP programmé en C, c'est le plus rapide à ce jour en termes de requêtes par seconde (source)
  • Symfony2 est le framework le plus populaire, il facilite grandement le développement d'applications web complexes; il est modulaire et dispose de nombreux plugins.

Python

Tests

Outils de tests

Junit

  • Junit - Chapitre de Développons en Java de Jean-Michel Doudoux
  • Junit - Chapitre de Développons en Java avec Eclipse de Jean-Michel Doudoux
  • Junitum est une extension de JUnit basé sur les idées développées dans TestNG

TestNG

Python

  • Tox vise à standardiser et à automatiser les tests en Python

Web

  • gremlins.js est un application pour tester de manière exhaustive les applications web et node.js

Frameworks de test

Behaviour Driven Development

JSystem

  • JSystem est un framework reconnu conçu pour écrire et gérer graphiquement des tests d'applications. Il est basé sur JUnit et ANT.

STAF

GUITAR

Robot Framework

Web

  • zuul permet de tester du code javascript dans plusieurs navigateurs web simultanément.

Tests de montée en charge serveur web

Listes d'outils de test

Outils de gestion (version,projet,etc.)

Outils de base

Forges logicielles

Integration continue

  • Jenkins est un outil d'intégration continue; il permet d'automatiser et de répéter à intervalles réguliers les tâches liées aux activités récurrentes d'un projet (la construction, les tests de la version la plus récente l'application …)

Visualisation

  • Gource permet de visualiser l'évolution d'un projet.

Collaboration

Gestion de tâches

  • Request Tracker est un système de gestion de tickets qui permet de personnaliser les workflows
  • Original|TaskFreak est un gestionnaire de tâche inspiré par l'approche GTD.

Qualité

Articles

Métriques de qualité

Débogage

Méthodologie
Cours
Syllabus

Lesson 1: How Debuggers work
  Theory: Scientific method and its application to debugging.
  Fun fact: First bug in the history of computer science.
  Practice: Building a simple tracer.

Lesson 2: Asserting Expectations
  Theory: Assertions in testing and in debugging.
  Fun fact: The most expensive bug in history.
  Practice: Improving the tracer.

Lesson 3: Simplifying Failures
  Theory: Strategy of simplifying failures. Binary search. Delta debugging principle.
  Fun fact: Mozilla bugathon.
  Practice: Building a delta debugger.

Lesson 4: Tracking Origins
  Theory: Cause-effect chain. Deduction. Dependencies. Slices.
  Fun fact: Sherlock Holmes and Doctor Watson.
  Practice: Improving the delta debugger.

Lesson 5: Reproducing Failures
  Theory: Types of bugs (Bohr bug, Heisenbug, Mandelbug, Schrodinbug). Systematic reproduction process.
  Fun fact: Mad laptop bug.
  Practice: Building a statistic debugging tool.

Lesson 6: Learning from Mistakes
  Theory: Bug database management. Classifying bugs. Bug maps. Learning from mistakes.
  Fun fact: Programmer with the most buggy code.
  Practice: Improving your tools and practicing on a real world bug database.
Outils

PHP

Profilage

  • Kcachegrind est un front end pour Valgrind (version KDE). Il existe également une version Qt : Qcachegrind pour MS Windows et Mac OSX (à compiler depuis les sources obtenues sur le dépôt kcachegrind)

Java

PHP

Analyse automatique du code

Java

Javascript

Optimisation du code

Généralités

Java

Latence (web)

Pour les applications web, il est possible d'améliorer la latence par l'utilisation d'un CDN (Content Delivery Network) qui héberge les librairies les plus populaires au plus près de l'internaute.

  • CDNjs est hébergé par CloudFlare (liste fixe)
  • jsDelivr héberge des librairies Javascript, jQuery, des fonts, des frameworks CSS,… (il est possible de soumettre d'autres fichiers)

Recherche de code source

Moteur de recherche

Forges (projets open-source)

Index de projets open-source

  • http://freecode.com permet une recherche par mots-clés/tags/langages et redirige vers le site web du projet.

Sécurité web

  • Nikto permet d'effectuer certains tests de sécurité sur un serveur web.

Divers

enseignement/gl/liens.txt · Dernière modification: 2019/06/03 20:36 par janiszek