I am Ruirong Chen and currently in my last term of pursuing Bachelor of Computer Science in University of Waterloo. I joined the Review Board team around two month ago as a part of UCOSP program. The Review Board is a great tool for web-based code reviews and offers a smooth interface and a variety of extensions. I picked Review Board because I think it would be a great way to gain more knowledge with Python and the Django framework. In addition, as I am more interested in web front-end development, I feel like it would be a great fit for me.
I participated in the Code Sprint and started off with several small bug fixes and an easy project. After finishing my first project, I quickly dive into a much more complex project which would require me to understand the core components of the Review Board. It involves understanding how the system of comparing two files (diff) works in Review Board, from generating the diffs in the backend to actually rendering them in the front end. Once I have a grasp of how the system functions, I can implement a diff system for other non-file-based information such as the description field of code review. This project would serve as a nice introduction to the inner working of review board since it touches a bit of everything in the program stack.
As I gradually pick up more and more piece of the code base, I realize how complex it is in the backend to build up something that’s easy to use and start to appreciate the beauty behind the Django framework, which is a popular web framework for building up dynamic websites. It not only does a lot of the grunt work in backend development for web developers, but also provides a rich, flexible template language that enables developer to quickly build up web pages in the front end. The more I dive into the code base, the more I am amazed by what it is capable of.
In addition to the Django framework, Review Board also utilizes several other open sourced libraries and tools, such as Djblets, jQuery and Less, to help simplify the development process. This not only poses interesting challenges since I need to work with several external components when I am developing for Review Board, but also makes up for a great learning experience as I am exposed to new technologies and workflows.
I am excited to learn more about the systems and technologies behind Review Board as I develop and contribute to it. It is definitely a rewarding experience for a web developer and I really appreciate UCOSP for organizing the program and make it possible. Besides, Review Board itself is a great tool to use among software development teams and I am proud to be one of its contributors.
Ruirong (Jim) Chen