Skip to content

Instantly share code, notes, and snippets.

@seb-martin
Last active November 28, 2017 19:55
Show Gist options
  • Save seb-martin/8292b15f07f5cc8f2815dd9fea7e70a4 to your computer and use it in GitHub Desktop.
Save seb-martin/8292b15f07f5cc8f2815dd9fea7e70a4 to your computer and use it in GitHub Desktop.
Palmarès des solutions au kata _Bank Account_

Revue Kata Bank Account

Avis des résolutions du kata Bank account.

Palmarès

  1. Solution 2
  2. Solution 4
  3. Solution 3
  4. Solution 1

Solution 1

https://github.com/rootman1985/KataBank.git

Soumis le 13/11/2017.

Les (+)

  • Architecture en couches
  • Interface de service
  • Abstraction des opérations bancaires
  • Contrôle des entrées, Exceptions métier

Les (-)

  • Pas de tests unitaires
  • Account: les opérations devraient être un SortedSet
  • Operation: getOperationDate() retourne un String
  • Operation: est un ValueObject de l'Entity Account. Relation Operation -> Account pas terrible
  • Operation: nommage des propriétés (idOperation, operationDate)
  • Préfixer les interfaces avec un I n'est pas une convention Java.
  • ActionBankImpl : Les méthodes operationsHistoryForCustomer() et operationsHistoryForAccount() devraient retourner un SortedSet d'opérations bancaires plutôt que de se contentant d'effectuer un print

Solution 2

Soumis le 13/11/2017.

Les (+)

  • Tests unitaires, utilisation de mocks
  • DDD
  • Clean architecture
  • Clean code
  • CQRS
  • Event Sourcing

BankAccount: Aggregate Méthodes BankAccount deposit et withdraw: Command Méthode print: Query TransactionHolder: EventStore Transaction: Event

Les (-)

Solution 3

https://github.com/Houssem911/myKata

Soumis le 22/11/2017.

Les (+)

  • Présence de tests
  • Architecture en couches
  • Contrôle des entrées, Exceptions métier
  • Langage omniprésent
  • Builder facilitant la création des objets
  • Formatage des données

Les (-)

  • Fonctionnalités non réclamées (Montants min/max de dépôt/retrait)
  • Méthodes print pas testées (pas testables)
  • Tests nécessitant un ordre d'exécution
  • Utilité du service AccountLineService discutable

Solution 4

Soumis le 28/11/2017.

Les (+)

  • Présence de tests
  • Clean architecture
  • DDD, Clean code
  • CQRS
  • Contrôle des entrées, exception métier

Les (-)

  • Méthode print non testée
  • Manque de formatage (Pas d'alignement, format des dates)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment