Skip to content

Rules & Guidelines for New Developers

Samuel Abramov edited this page Dec 20, 2023 · 7 revisions

Welcome aboard! We're thrilled to have you join our development team. As we aim to maintain a harmonious and productive development process, we've outlined some essential rules and guidelines. Please familiarize yourself with them before diving in.

Setup & Environment:

JDK Version: Ensure you have JDK 21 or the latest approved version for the project installed. Build Tool: We utilize Gradle for dependency management and project builds. Familiarize yourself with its basic operations.

Coding Standards

  • Style Guide: We adhere to the standards set by Google Code Formatter for Java. Ensure your code is formatted accordingly.
  • Comments: While writing comprehensive comments is encouraged, prioritize making your methods and classes self-explanatory and intuitive.
  • Commit Messages: Aim for clear and concise commit messages, highlighting the essence of your change. For instance: fix(#6): Fixes memory leak in Matrix multiplication method.

Version Control (GitHub Specifics)

  • Branching: For every task or feature, create a fresh branch. Use the naming conventions: feature/ or bugfix/.

  • Pull Requests: Upon completing and testing your feature, initiate a pull request (PR) against the main or the designated development branch.

  • Code Reviews: Each PR must undergo a review by at least one developer. Address all comments and feedback before finalizing the merge.

  • Some more commit message examples

    • chore(#66): Comments removed
    • fix(#88): NPE in Matrix class fixed
    • feat(#45): Support Vector Machine Feature implemented

Testing

  • Unit Tests: Consistently write unit tests for new methods and classes using JUnit.

Collaboration & Communication

  • Issues: Whenever you encounter bugs or have feature suggestions, raise relevant GitHub issues. Ensure you describe them clearly and categorize with appropriate labels.
  • Just ask: Questions? Just ask the team. Use our discord: EDUX DISCORD
  • Respect & Open-mindedness: Approach team discussions and critiques with an open heart and mind. Respect the diversity of thoughts and inputs.

Continuous Learning:

  • Stay abreast with the dynamic world of machine learning and Java advancements.
  • Enrich our team's knowledge base by sharing intriguing articles, studies, or tools you come across.
  • Thank you for committing to our shared vision. With your expertise, dedication, and adherence to these guidelines, our Java ML Library is poised for unparalleled success. For any queries or clarifications, feel free to connect with the project lead or any experienced team member.

To innovation and beyond!

Tools

FractalityLab - Our tool for image generation

Edux stands for self education

Learning materials