Site en cours de migration
Paradigme OO
[Livre] Practical Object-Oriented Design **RECOMMANDÉ
Excellent complément à la formation. Bonne explication de l'abstraction et dans un contexte d'un langage dynamique.
Tell don't Ask
Courte explications du Tell don't Ask et des conséquences **RECOMMANDÉ
(introduit aussi la loi de Demeter et le CQS)
https://pragprog.com/articles/tell-dont-ask
Billet sur le S*T*OLID de Jason Gorman:
http://codemanship.co.uk/parlezuml/blog/?postid=1267
Explication du Tell d'ont Ask par Martin Fowler
http://martinfowler.com/bliki/TellDontAsk.html
Principes SOLID
Aide mémoire / poster SOLID
http://wall-skills.com/2013/solid-principles-for-maintainable-oo-code/
[Livre] Growing Object-Oriented Software, Guided by Tests **RECOMMANDÉ
http://www.amazon.ca/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627/
[Livre] Agile Software Development, Principles, Patterns, and Practices **RECOMMANDÉ
Principes SOLID et Design Patterns
http://www.amazon.ca/Agile-Principles-Patterns-Practices-C/dp/0131857258
Abstraction et polymorphisme
Why extends is evil -- Improve your code by replacing concrete base classes with interfaces **RECOMMANDÉ
http://www.javaworld.com/article/2073649/core-java/why-extends-is-evil.html
Design simple (Simple Design)
Agile in a Flash
http://agileinaflash.blogspot.ca/2009/02/simple-design.html
The Four Elements of Simple Design
http://blog.jbrains.ca/permalink/the-four-elements-of-simple-design
Beck Design Rules (par M. Fowler)
http://martinfowler.com/bliki/BeckDesignRules.html
Understanding the Four Rules of Simple Design (Livre)
https://leanpub.com/4rulesofsimpledesign
Why Every Element of SOLID is Wrong
https://speakerdeck.com/tastapod/why-every-element-of-solid-is-wrong
Patrons d'entreprises
[LIVRE] Patterns of Enterprise Application Architecture
https://www.martinfowler.com/books/eaa.html
DDD
Exemple (source) illustrant un projet en DDD
http://dddsample.sourceforge.net/
Courtes explications des patrons de DDD **RECOMMANDÉ
http://dddsample.sourceforge.net/characterization.html
Formation en ligne sur le DDD **FORTEMENT RECOMMANDÉ
(Formation en ligne à partir d'un cas réel d'une clinique vétérinaire)
http://www.pluralsight.com/courses/domain-driven-design-fundamentals
[Livre] Implementing Domain-Driven Design **SUGGÉRÉ comme livre
http://www.amazon.ca/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577
Communauté DDD:
[Livre] Applying Domain-Driven Design and Patterns: With Examples in C# and .NET
http://www.amazon.ca/Applying-Domain-Driven-Design-Patterns-Examples-ebook/dp/B0054KOKQQ
Modèle hexagonal (Hexagonal Architecture / Port & Adapter)
Description initiale du patron
Relation avec les tests et les Mocks. Également un très bon article pour comprendre le patron. Très bien imagé.
Hexagonal Architecture For Testers: Part 2
Images et description très claires du patron.
Domaine anémique et riche
Article d'origine de Martin Fowler
Beware of anemic domain models
Court résumé des désavantages
How We Code: ORMs and Anemic Domain Models
Exemple partant d’un domaine anémique avec Active Record vers un domaine riche tout en démontrant les avantages
The Anemic Domain Model Pattern
Discussion sur le sujet et contexte d’application
ORM anti-patterns - Part 1: Active Record **RECOMMANDÉ
Avantages et inconvénients du pattern Active Record
On Domain-Driven Design, Anemic Domain Model, Code Generation, Dependency Injection and More…
Opinion en faveur d’un domaine anémique
Building rich domain models in rails. separating persistence.
Comment transformer une application Rails en domaine riche.
Orientation-objet et langages dynamiques (Ruby, Python, JavaScript ...)
RubyConf 2009 - SOLID Ruby by: Jim Weirich **RECOMMANDÉ
https://www.youtube.com/watch?v=dKRbsE061u4
SOLID JavaScript In A Wobbly (World Wide Web)
https://www.youtube.com/watch?v=TAVn7s-kO9o
Design patterns
Dive Into Design Patterns
https://refactoring.guru/design-patterns/book
SourceMaking.com (Design patterns, Refactoring …)
[Livre] Agile Software Development, Principles, Patterns, and Practices
Principes SOLID et Design Patterns
http://www.amazon.ca/Agile-Principles-Patterns-Practices-C/dp/0131857258
Exemple (code) en DDD:
http://dddsample.sourceforge.net/
Code d'exemple du livre "Implementing Domain-Driven Design" de Vaughn Vernon:
https://github.com/VaughnVernon/IDDD_Samples
DDD & Object Calisthenics
Il s'agit de petits exercices à faire à répétition en suivant des contraintes pour se pratiquer en programmation
orientée-objet. Voici une liste (non-exhaustive) de contraintes:
1. Utiliser uniquement 1 niveau d'indentation par méthode
2. Ne pas utiliser le mot clé _else_
3. Encapsuler toute primitive, String, Double, ... par un objet
4. _First Class Collections_
5. Un seul point (appel de méthode, accès à un membre d'une classe, etc.) par méthode
6. Aucune abbréviation
7. Garder toute entité petite (ex: classe < 50 lignes, package < 10 fichiers, module < 5 packages, ...)
8. Moins de 2 membres instantiés par classe
9. Aucun getter/setter/properties
Source: [ThoughtWorks Anthology]
Explications détaillées: [Jeff Bay - Object Calisthenics]
SOLIDs
- Jeu de la vie
Code propre et professionnalisme
[Livre] Clean Code: A Handbook of Agile Software Craftsmanship **RECOMMANDÉ
http://www.amazon.ca/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
[Livre] The Clean Coder: A Code of Conduct for Professional Programmers
http://www.amazon.ca/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073
Vidéos et cours en ligne Clean Coders
NOTE: Nous les recommandons fortement
Plurialsight
http://www.pluralsight.com/training
Blogue et actualités
Blogue d’Elapse Technologies
http://developpementagile.com/
InfoQ
Personnalités
Robert C. Martin
@unclebobmartin
J.B. Rainsberger
@jbrains
http://blog.thecodewhisperer.com/
Jason Gorman
@jasongorman