Skip to content

laptevn/merchant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Merchant

See task.md for task definition

Review

The project contains of 3 parts - converter, interpreter and client.
The converter is used by the interpreter to convert Roman-Arabic digits. The client provides command line interface and uses the interpreter inside.

Instructions

  • Project can be built using gradle build command. Unit tests will be run after building.
  • Application can be run with build/libs/merchant-1.0-SNAPSHOT.jar test_input.txt command.

Notes

The project uses annotations from "Java Concurrency in Practise" to express thread safety in declarative way. Also Log4J is used to log exceptional cases.
Both don't help to solve the problem so should be fine from task definition perspective.

TODOs

  1. Hide collections behind abstraction in InterpreterContext.
    I left collections for simplicity and since an abstraction do not provide much value now. But in general we need to hide all redundant functionality (e.g. collection methods that are not proper for answers storage).
  2. Split the project on 3 sub projects - converter, interpreter and client.
    Current separation is based on package level for simplicity but we need to physically separate them since they are totally independent.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages