DEV Community

Bing Pan
Bing Pan

Posted on

Learning from working on other's project

It is a unique learning experience for me to build a new feature on anther person's project repository.

  1. Development environment:
    Even though I expected that Java’s development environment could be complicated, I spent much more time on setting up Eclipse than I expected. The project I choose to work on uses Maven to handle dependencies for Apache Common CLI and IO while I use them via importing corresponding JAR files of those libraries by setting the Classpath under Eclipse’s Java Build Path.

    Another known issue is the version conflict of jdk. The latest free jdk download through Oracle’s official website is the 15th version. However, as of September 2020, the latest version of jdk Eclipse uses is the 14th. I have to adjust the environment variable for the System path on my Windows 10 machine even after I downloaded and installed the corresponding old version. The situation gets worse when Oracle requires a user to register in order to download any of the older versions.

  2. Learning something new:
    It is quite pleasantly surprised to find an existing library Apache Common CLI my colleague uses to parse and process the user input via the command line, especially after I programmed everything from the ground up all by myself in Java. His usage of Apache Common CLI makes his project better organized than mine. I should do more research next time when I work on any new project. I am not intended to become lazy. Just that I don’t have to re-invent the wheel when there exists a library created by some collective professional efforts.

  3. Eclipse is not well integrated with Git as VS Code:
    To be honest, I spent almost 15 percent of my time on setting up my colleague’s project locally via Eclipse. According to my professor’s video instruction on how to use Git, any file or directory created via Git is displayed immediately by VS Code, which reflects what has happened on the system the computer is operating on. When in Eclipse I can pick which branch I am going to work on, I cannot see new files and directory on Windows system. This fact complicates my work processes.

  4. The importance of modular programming:
    While working on my colleague’s project, I can get a sense that a good programming project should be modularized by creating standardized interface via an object’s public methods. In other words, via encapsulation, one can provide coherent public interface without exposing the inner complexity of implementation and private states. When I added a recursively searching all sub-directory feature, my colleague’s existing method makes it simple and clean for me to implement mine.

Top comments (0)