Skip to content

Clean Code

  • Qu'est-ce que le "Clean Code" ?
  • Quels outils/techniques utilisez-vous pour vous assurer que vous faites du "Clean Code" ?
  • Quand est-ce qu'il faut commenter du code ?

CraftsmanShip

Manifest for software craftsmanship

Élever le niveau En tant qu’aspirants Artisans du Logiciel, nous relevons le niveau du développement professionnel de logiciels par la pratique et en aidant les autres à acquérir le savoir-faire. Grâce à ce travail, nous avons appris à apprécier :

Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus. Pas seulement l'adaptation aux changements, mais aussi l'ajout constant de la valeur. Pas seulement les individus et leurs interactions, mais aussi une communauté de professionnels. Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs. C'est-à-dire qu'en recherchant les éléments de gauche, nous avons trouvé que les éléments de droite sont indispensables.

© 2009, les soussignés. Cette déclaration peut être copiée librement, quelle que soit la forme, mais seulement dans sa totalité, y compris cette remarque.

OOP

  • Quels sont les 3 grands principes de l'orienté objet ?

SOLID

Principes SOLID

S - Responsabilité unique (Single responsibility principle) Une classe doit avoir une seule et unique raison de changer, ce qui signifie qu’une classe ne doit appartenir qu’à une seule tâche.

O - Ouvert/fermé (Open/closed principle) Les objets ou entités devraient être ouverts à l’extension, mais fermés à la modification.

L - Substitution de Liskov (Liskov substitution principle) Si q(x) est une propriété démontrable pour tout objet x de type T, alors q(y) est vraie pour tout objet y de type S tel que S est un sous-type de T.

I - Ségrégation des interfaces (Interface segregation principle) Un client ne doit jamais être forcé à installer une interface qu’il n’utilise pas et les clients ne doivent pas être forcés à dépendre de méthodes qu’ils n’utilisent pas.

D - Inversion des dépendances (Dependency inversion principle) Les entités doivent dépendre des abstractions, pas des implémentations. Il indique que le module de haut niveau ne doit pas dépendre du module de bas niveau, mais qu’ils doivent dépendre des abstractions.

Méthode Agile

Manifest Agile

Manifeste pour le développement Agile de logiciels

Nous découvrons comment mieux développer des logiciels par la pratique et en aidant les autres à le faire. Ces expériences nous ont amenés à valoriser :

Les individus et leurs interactions plus que les processus et les outils Des logiciels opérationnels plus qu’une documentation exhaustive La collaboration avec les clients plus que la négociation contractuelle L’adaptation au changement plus que le suivi d’un plan

Nous reconnaissons la valeur des seconds éléments, mais privilégions les premiers.

Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas

© 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice.

Principes sous-jacents au manifeste

Nous suivons ces principes : Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.

Accueillez positivement les changements de besoins, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.

Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.

Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.

Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés.

La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.

Un logiciel opérationnel est la principale mesure d’avancement.

Les processus Agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.

Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité.

La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.

Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées.

À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.

  • Agile vs Cycle en V ?
  • Quels sont les grands principes Agile ?
  • Kanban vs Scrum
  • Outils de gestion agile Jira ?

Veille Technologique

  • Faites-vous de la veille technologique ? (curiosité, intérêt pour son travail)
  • Comment effectuez-vous votre veille (mailing list, suivi de la communauté, meetup, devfest...) ?
  • Participez-vous à de l'open source ?