Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancements Tips #16

Open
matejicko opened this issue Oct 24, 2024 · 2 comments
Open

Enhancements Tips #16

matejicko opened this issue Oct 24, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@matejicko
Copy link
Collaborator

FrozenDictionary

Problem: Now, StructureExplorer returns Dictionary implementation of IReadOnlyDictionary filled with TestCases which were found after exploration. The better, more performance-optimized implementation of IReadOnlyDictionary is FrozenDictionary. The only disadvantage of this implementation is that it doesn't guarantee the order of elements, which is important for this case.

Possible solution: Implement own TestCaseCollection, which will have sorted test cases as well as in FrozenDictionary, for better look-up. Another approach is to put another field to ApplicationContext which will hold the ordered list, and the map/dictionary will be in different field of type FrozenDictionary.

DI container

Problem: So far, the instance creation of steps is done by simple factory methods which are in each class. Althought, this is well-known pattern it brings some problems with the re-usability of the code.

Possible solution: Implement own service discovery extension method. If implemented correctly, the creation of the steps can be easy, just by calling serviceProvider.GetService<SpecificStep>.

Mutation tests

Problem: The initiative is to write unit tests for each case. Of course, this is almost unreachable goal in the real world.

Possible solution: Add mutation testing framework, which will detect, how much of the code and test cases these unit tests actually cover. One of the examples is Stryker.NET.

@matejicko
Copy link
Collaborator Author

NuGet Retrieval Optimization

Now, each #nuget directive triggers NuGet package download and installation. For better performence, it would be nice to have some kind of register of already downloaded NuGet packages. If it is once downloaded, then there is no need to do it again.

@matejicko
Copy link
Collaborator Author

matejicko commented Nov 13, 2024

Change of approach to DI container was implemented within this PR (#20)
Nuget Retrieval Optimization was resolved in this PR (#23)

@matejicko matejicko added the enhancement New feature or request label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant