Compte bancaire

Compte bancaire

Moyen

Introduction

Après des années à remplir des formulaires et à attendre, tu as enfin obtenu ta licence bancaire. Cela signifie que tu es désormais officiellement autorisé à ouvrir ta propre banque, hourra !

Ta première priorité est de mettre les systèmes informatiques en marche. Après une journée de dur labeur, tu peux déjà ouvrir et fermer des comptes, ainsi que gérer les retraits et les dépôts.

Comme tu n'avais pas envie de te fatiguer à écrire des tests, tu invites quelques amis à venir tester le système. Mais au bout de cinq minutes à peine, l'un de tes amis affirme avoir perdu de l'argent ! Même si tu es convaincu que ton code ne contient aucun bug, tu commences à parcourir les logs pour enquêter.

Ah oui, comme tu le soupçonnais, c'est ton ami qui est en tort ! Il a partagé ses identifiants de test avec un autre ami, et ensemble ils ont conspiré pour faire des dépôts et des retraits sur le même compte en parallèle. Qui ferait une chose pareille ?

Alors que tu soutiens qu'il est physiquement impossible d'accéder à son compte en parallèle, ton ami te fait remarquer d'un air suffisant que les règles bancaires exigent que tu prennes cela en charge. Donc, pas de prise en charge bancaire en parallèle, pas de feu vert pour la mise en production. Avec un soupir, tu prends mentalement note de t'y pencher demain. Cela repoussera ta date de lancement d'au moins un jour de plus, mais bon...

Instructions

Ta tâche consiste à implémenter des comptes bancaires qui prennent en charge l'ouverture, la fermeture, les retraits et les dépôts d'argent.

Comme on peut accéder à un compte bancaire de bien des façons différentes (internet, téléphone portable, prélèvements automatiques), ton logiciel bancaire doit permettre d'accéder aux comptes en toute sécurité depuis plusieurs fils d'exécution ou processus (la terminologie dépend de ton langage de programmation) en parallèle. Par exemple, de nombreux dépôts et retraits peuvent avoir lieu en même temps ; tu dois faire en sorte qu'il n'y ait pas de situations de concurrence entre la lecture du solde du compte et l'affectation du nouveau solde.

Il doit être possible de fermer un compte ; les opérations sur un compte fermé doivent échouer.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Delphi Pascal Exercism

Prêt à commencer Compte bancaire ?

Inscris-toi sur Exercism pour apprendre et maîtriser Delphi Pascal avec 76 exercices, et un vrai mentorat humain, le tout gratuitement.