Skip to content

Latest commit

 

History

History
68 lines (57 loc) · 2.97 KB

README.md

File metadata and controls

68 lines (57 loc) · 2.97 KB

Assignment Overview

Objective: Enhance the readability and maintainability of an existing TypeScript module.

Purpose: This task is designed to test your abilities in refactoring and optimizing TypeScript code. Your work will demonstrate your proficiency in TypeScript, your understanding of software design principles, and your ability to improve the structure of existing code.

Task Requirements

  1. Research Phase:
    • Review the provided TypeScript module to understand its current functionality and structure.
    • Identify areas where the code can be improved in terms of readability, maintainability, and performance.
    • Learn about best practices in TypeScript development, focusing on clean code principles and advanced TypeScript features that could be beneficial for the module.
  2. Refactoring Phase:
    • Enhance the structure of the TypeScript module by applying refactoring techniques that improve readability and maintainability.
    • Ensure that the refactoring does not introduce any new bugs or change the module’s intended functionality.
  3. Testing and Documentation:
    • Create unit tests to cover the refactored code, ensuring all functionalities are correctly preserved and behave as expected.
    • Document the changes made, why they were made, and any challenges encountered during the refactoring process.
    • Include a guide on how to set up the development environment and run the tests for future developers.

Deliverables

A GitHub repository containing:

  • The refactored TypeScript module.
  • Unit tests covering the module.
  • A README file with: - An overview of the original module’s functionality.
  • A detailed description of the refactoring changes made and the reasons behind them.
  • Instructions for setting up the development environment, running the module, and executing the tests.
  • A summary of your experience during the refactoring process, including any resources that were particularly useful.

Evaluation Criteria

  • Code Quality: The refactored code should be cleaner, more efficient, and easier to maintain than the original. Attention will be paid to how well modern TypeScript features and design patterns are utilized.
  • Testing: The effectiveness of the unit tests in covering both old and new functionality.
  • Documentation and Communication: The clarity and completeness of the documentation, including the ease of understanding the setup instructions and the rationale behind the refactoring decisions.

Note to Candidates

This assignment is a great opportunity to showcase your technical skills and your approach to improving existing software. We are looking for detailed attention to code quality, thoughtful implementation of improvements, and thorough documentation. We encourage you to be creative and critical in how you approach this task. Good luck!