Треки
/
Delphi Pascal
Delphi Pascal
/
Вправи
/
Банківський рахунок
Банківський рахунок

Банківський рахунок

Середня

Вступ

Після років заповнення форм і очікування ми нарешті отримали банківську ліцензію. Це означає, що тепер ми офіційно маємо право відкрити власний банк, ура!

Наш перший пріоритет - запустити IT-системи й налагодити їхню роботу. Після дня наполегливої праці ми вже можемо відкривати і закривати рахунки, а також обробляти зняття коштів і поповнення рахунку.

Оскільки нам не хотілося писати тести, ми запрошуємо кількох друзів допомогти протестувати систему. Однак уже за пʼять хвилин один із наших друзів заявляє, що втратив гроші! Хоча ми впевнені, що наш код без помилок, ми починаємо гортати логи, щоб розібратися.

Атож, саме як ми й підозрювали, винен наш друг! Він поділився своїми тестовими обліковими даними з іншим другом, і разом вони змовилися робити депозити та знімати кошти з одного рахунку паралельно. Хто б таке зробив?

Поки ми доводимо, що фізично неможливо, щоб хтось отримав доступ до свого рахунку паралельно, наш друг самовдоволено повідомляє, що банківські правила вимагають від нас це підтримувати. Отже, без підтримки паралельної роботи з рахунками не буде й сигналу до запуску. Зітхнувши, ми подумки занотовуємо, що завтра над цим треба попрацювати. Це відсуне дату запуску ще щонайменше на один день, але що ж...

Вказівки

Ваше завдання - реалізувати банківські рахунки, які підтримують відкриття та закриття, зняття та внесення грошей.

Оскільки до банківських рахунків можна отримати доступ у багато різних способів (інтернет, мобільні телефони, автоматичні списання), програмне забезпечення банку має дозволяти безпечно працювати з рахунками з кількох потоків/процесів (термінологія залежить від обраної мови програмування) паралельно. Наприклад, одночасно може відбуватися багато внесень і знять; потрібно подбати, щоб між читанням балансу рахунку та встановленням нового балансу не виникало станів гонитви.

Повинна бути можливість закрити рахунок; операції над закритим рахунком мають завершуватися помилкою.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Delphi Pascal Exercism

Час розпочати Банківський рахунок?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Delphi Pascal, а також 76 вправ та справжнє наставництво від людей, і все це безкоштовно.