Iandris / myCine

0 stars 0 forks source link

Individual Project Review #6

Closed bnisler closed 7 years ago

bnisler commented 7 years ago

Design/Code Review 2

Project: myCine

Developer: iandris, Mike Young

Reviewer: bnisler, Benjamin Nisler

Category Criteria Analysis/Comments
Running application
Describe the application functionality that has been built and is working. Login, become a user, search for movies, add to wish list, send/receive friend requests.
What is good? The look and feel of the web app looks professional. You can tell quite a bit of time and effort has already been put into this project.
What could be improved? When hitting the site, initially the raw HTML flashes before it is pretty-ified. Ensure you're not bringing back naughty movies!
Unit Tests
What are the code coverage statistics? >92%
Are @Before/@BeforeClass/@After/@AfterClass used to reduce redundant code? @Before and @After is used.
JSPs
Is templating used to eliminate redundant code(for example, header.jsp, footer.jsp, etc.) Yes, several jsps are used for templating.
What is good? Lots of good templating, use of different directories for public, secured, admin, and includes. Uses JSPs to include scripts.
What could be improved? Separate out your javascript into it's own directories.
Code quality
Are methods single-purpose? Yes
Are classes appropriately-sized classes (no monster classes)? Yes
Are the same lines of code repeated at all? Outside of the DAOs, no.
Do any classes perform very similar functions that could be candidates for super/subclass relationships? Perhaps DAOs?
Are any values hard-coded that should be in a properties file? Not that I have found
Are variable names descriptive? Yes, some are a bit truncated.
Are there many branches or loops that could be simplified or broken up into smaller methods? Some methods get "iffy" (several nested if-else statements). Try and remedy this.
Do the DAOs use Hibernate? No hard-coded sql! Yes, SQL only for targeted queries.
Has log4J been added? Yes.
Are there logging statements in the code? Yes.
Are appropriate logging levels used? Info, debug, error, for example. error used in try-catch of DAOs
Are there any System.out.printlns in the code? No.
Other comments/notes? Limit the use of EAGER, move sorting from Servlet layer to the DAO layer (ie - use 'sort by' in your targeted queries),
Web Service/API integration
Which web service/api is being used? OMDB API (movie database)
Is the integration built? Yes
If so, evaluate the integration code. What is good? What could use improvement? Good - it's implemented and working!!! Improvement - OmdbJson.java is 1 monster method. Try and break it up using private helper methods.
Independent research topic
What is the developer's independent research topic? Spock for unit testing
Has the topic been implemented in the project? No.
If so, evaluate the implementation. What is good? What could use improvement?
Key takeaways
List at least 3 things you learned while reviewing this project that will help you in your own project. Good example of implementing API, frontend directory structure, separation of public v private (authentication) for REST.