-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
46 lines (35 loc) · 1.82 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Payment Tracker README
======================
Spuštění programu
-----------------
$ mvn clean package
$ java -cp "target/payment-tracker.jar:target/dependency/*" cz.mamuf.test.paymenttracker.Main
nebo pro načtení/zápis do souboru:
$ java -cp "target/payment-tracker.jar:target/dependency/*" cz.mamuf.test.paymenttracker.Main [cesta k souboru]
Používání
---------
Program dle zadání očekává vstup '<CCC> <value>', kde <CCC> je měna a <value>
částka, nebo 'quit' pro ukončení.
Ošetření vstupů a chyb
----------------------
- Zadá-li uživatel neplatný vstup, program jej na to upozorní a vyzve jej
k novému zadání.
- Chyby přístupu k souborům nejsou ošetřeny.
- Pokud zadaný soubor neexistuje, je vytvořen po zadání první platby.
- Pokud již existuje, načtou se stávající záznamy.
- Pokud je stávající formát souboru neplatný, program skončí s chybovou
hláškou.
Poznámky ke kódu
----------------
V návaznosti na náš pohovor jsem se začal učit nové vlastnosti Javy 1.8
a rozhodl jsem se tuto úlohu naprogramovat s jejich pomocí. Proto používám
streamy a lambda výrazy, kde je to vhodné.
PaymentStore - Bylo by vhodnější, aby metody vyhazovaly potomka výjimky
PaymentTrackerException namísto IOException, ale pro účely tohoto úkolu je to
zbytečné. V případě rozšíření programu bych to v rámci refaktoringu zřejmě
udělal.
ConsoleUI - Uznávám, že to není úplně nejlepší řešení. Bohužel v čisté Javě
zřejmě nelze snadno kombinovat načítání vstupu uvozené popiskem a průběžný
výstup. Nepodařilo se mi zařídit to tak, aby uživatel vždy viděl, co napsal,
a to pohromadě. Pokud dojde k výpisu na výstup uprostřed rozepsaného vstupu,
vstupní text bude na obrazovce rozdělen.