Skip to content

Sharing iP code quality feedback [for @OnlyTheEnd] #1

Description

@soc-se-script

@OnlyTheEnd We did an automated analysis of your code to detect potential areas to improve the code quality. We are sharing the results below, to help you improve the iP code further.

IMPORTANT: Note that the script looked for just a few easy-to-detect problems only, and at-most three example are given i.e., there can be other areas/places to improve.

Aspect: Tab Usage

No easy-to-detect issues 👍

Aspect: Naming boolean variables/methods

Example from src/main/java/veigar/command/CommandResult.java lines 17-17:

    private final boolean showHelp;

Example from src/main/java/veigar/command/CommandResult.java lines 22-22:

    private final boolean exit;

Suggestion: Follow the given naming convention for boolean variables/methods (e.g., use a boolean-sounding prefix).You may ignore the above if you think the name already follows the convention (the script can report false positives in some cases)

Aspect: Brace Style

No easy-to-detect issues 👍

Aspect: Package Name Style

No easy-to-detect issues 👍

Aspect: Class Name Style

No easy-to-detect issues 👍

Aspect: Dead Code

Example from src/main/java/Veigar.java lines 35-35:

        //System.out.println("I am VeigarBot \nHEHEHEHA");

Example from src/main/java/Veigar.java lines 37-37:

            //Scanner scanner = new Scanner(System.in);

Example from src/main/java/Veigar.java lines 38-38:

            //String s = scanner.nextLine();

Suggestion: Remove dead code from the codebase.

Aspect: Method Length

No easy-to-detect issues 👍

Aspect: Class size

No easy-to-detect issues 👍

Aspect: Header Comments

Example from src/main/java/Veigar.java lines 30-33:

    /**
     * While not exiting, parses the users commands into commands and further arguments.
     * Executes the specified command if found, else warns the user about it.
     */

Example from src/main/java/veigar/tools/Storage.java lines 60-63:

    /**
     * Save a generic list of tasks to JSON.
     * @param tasks Saves the taskList to a JSON file specified under filePath.
     */

Suggestion: Ensure method/class header comments follow the format specified in the coding standard, in particular, the phrasing of the overview statement.

Aspect: Recent Git Commit Messages

possible problems in commit 123b041:


Add JavaFX UI and refactor Veigar response

Introduce a JavaFX-based GUI: adds Main, Launcher, MainWindow controller, DialogBox, FXML views (MainWindow.fxml, DialogBox.fxml) and user/Veigar images.
Update build.gradle to JavaFX 17.0.17 and set Launcher as the application entry.
Refactor Veigar to expose getResponse for GUI use and adjust main.
Fix TaskList formatting and minor index message, add markUndone/markDone Javadoc.


  • body not wrapped at 72 characters: e.g., Introduce a JavaFX-based GUI: adds Main, Launcher, MainWindow controller, DialogBox, FXML views (MainWindow.fxml, DialogBox.fxml) and user/Veigar images.

possible problems in commit 2393dfd:


Refactor commands to return CommandResult

Introduce CommandResult to encapsulate command feedback and exit/show Help flags. Update Command enum variants to return CommandResult instead of printing directly and to set exit state for BYE. Update Veigar.run() to handle CommandResult (print feedback, check exit). Refactor TaskList to return strings for list/show/find, add markDone/markUndone helpers, and centralize persistence in afterChange(). Small formatting/import/javadoc tweaks (VeigarException, Parser import, minor message adjustments).


  • body not wrapped at 72 characters: e.g., Introduce CommandResult to encapsulate command feedback and exit/show Help flags. Update Command enum variants to return CommandResult instead of printing directly and to set exit state for BYE. Update Veigar.run() to handle CommandResult (print feedback, check exit). Refactor TaskList to return strings for list/show/find, add markDone/markUndone helpers, and centralize persistence in afterChange(). Small formatting/import/javadoc tweaks (VeigarException, Parser import, minor message adjustments).

Suggestion: Follow the given conventions for Git commit messages for future commits (do not modify past commit messages as doing so will change the commit timestamp that we used to detect your commit timings).

Aspect: Binary files in repo

No easy-to-detect issues 👍


ℹ️ The bot account used to post this issue is un-manned. Do not reply to this post (as those replies will not be read). Instead, contact cs2103@nus.edu.sg if you want to follow up on this post.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions