Rather than prepare a demonstration of your app for the entire class, like you did for project 1, you will prepare your materials for review / evaluation. We will provide direct feedback on your App through a two phase “code review” process.
A code review typically begins with a pull request
opened by a developer/team and assigned to another member of the team for feedback and review before the code is merged into an existing codebase. A code review is for development teams to recognize and remedy bugs before code hits production.
Code reviews are about more than just finding bugs though, they can improve code quality through alignment of product goals, coding styles and established development patterns; with regular code reviews teams can improve engineering efficiencies and knowledge sharing.
This code review for project 2 differs from the typical review process in the following ways:
- Your code is already in production
- The instructional team will not need to ‘approve’ changes - instead providing feedback / suggestions for future development
- We will focus less on bugs / broken features and more on current successes and features with potential.
This ‘code review’ will be completed in two phases, each phase will provide you and the instructional team time to assess your work and evaluate your code according to the requirements of the project.
Duration: 30-60 minutes after presentations/demos
- Share the following links in the provided class Slack thread:
- A deployed application - (Heroku / Railway / etc.)
- A link to your project’s Github repository
- Each dev team will open 3 Github
issues
on the completed project. Each issue will include code snippets or self-evaluation for consideration by the instructor(s):- A “Glow” Code Snippet
- A “Grow” Code Snippet
- Reflection / Future features summary
“GitHub Issues are a bug tracking system built into the GitHub service. They provide a way for people to submit problems, get feedback, and collaborate together on code projects.” If your project does not have an ‘issues’ tab at the top of the repository’s navigation menu, you do not have issues enabled for your project. To enable issues:
- Navigate to your GH project and select the settings tab
- Scroll to the
Features
section - Select the checkbox labeled “issues” to allow issues to be created on your project.
Complete each form including:
- a title for your issue (glow, grow, reflection)
- A code snippet or paragraph providing content for review
- Any supplemental notes or resource links
Glow Highlight a feature of your application that reflects your “best” work, or had the most impact on your project’s functionality. What 50-100 lines of code are you most proud of? Include a code snippet.
Grow
What is one feature/aspect of your application that feels incomplete, buggy, or needs a future refactor? Highlight a feature / component that you believe requires feedback to improve. Include a code snippet.
Reflection
In 150-300 words answer the following questions:
- What was the most difficult part of your project’s development?
- What did you learn about developing in Mongoose + Express + Node ?
- Highlight 1-2 future features / approaches you will be investigating in future development work.
Duration: 120 minutes
Each member of the instructional team will review a selection of projects. During this phase, each instructor will assess your team’s work and determine if it meets the project’s requirements .
Each project will includes its own unique requirements which can be found in the project repos.
Each instructor will note one or more areas for review/discussion.
Duration: ~5-10 minutes per group
If requested, the instructional team will meet with each group to discuss their posted issues, any concerns, and ask additional questions based on the submitting code and your reflections.
The instructional team will discuss your provided code snippets together, providing constructive feedback as comments on your issues. These notes/comments may include:
- Suggestions for alternative approaches
- Suggestions to improve clarity
- Recommendations on additional learning paths
- Recommendations on libraries to enhance your project
We may ask for your team to explain a particular implementation, especially where it differs from an approach outlined in class lessons. We are less concerned with ‘perfect’ solutions, more so your ability to demonstrate a deeper understanding of the implementation and explain the pros / cons of your design decisions.