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

Question: May I use ReSharper/CodeMaid on this code? #43

Open
astrohart opened this issue Jan 16, 2021 · 6 comments
Open

Question: May I use ReSharper/CodeMaid on this code? #43

astrohart opened this issue Jan 16, 2021 · 6 comments

Comments

@astrohart
Copy link
Contributor

@madskristensen Hi Mads,

This is more of a question just to you. I was not sure how else to communicate my question besides posting an issue, since you have no email address listed.

Anyhoo...

I am going and making some updates on my own fork of this repo, and on a separate, 'astrohart' branch. I am loath to "Suspend" my ReSharper since VS's code tools are quite anemic and I am used to ReSharper. I have ReSharper set to automatically format the code when I do a save.

I am concerned only that, when I submit a PR it may be challenging for you to see the actual change made due to the several add/remove lines that are simply coming from a code reformat.

May I proceed and use my code-formatting tools on your files, or would you rather I not?

-Brian

@astrohart
Copy link
Contributor Author

@madskristensen Another quick question: Currently, I have solved the following:

  • WindowStyle.None issue
  • Chrome styling
  • Theming

Will create a PR. After that gets released in order to solve the immediate issues occurring that the community is raising, then I would like to go through the code clean up the format, and then make the code more SOLID. (Single-Resp. Principle etc.) and more IoC-friendly. There are some code smells here that I am concerned would make the solution overall less scalable.

For right now, I will check in a PR for a branch that has the exact same code as your master but simply fixes the outstanding issues. But, with your permission, I would like to then go in and 'overhaul' the code base.

@astrohart
Copy link
Contributor Author

@madskristensen Got the notifications that you approved the pull request I just recently filed. I am not sure you got a chance to get to this issue - my question as to basically can I:

  1. Sprinkle XML docs through out the code base
  2. Use CodeMaid and ReSharper code-formatting tools on it to make the code easier to deal with
  3. Give the code the SOLID treatment - you know, make it adhere to single-responsibility principle, open-closed principle etc.

Option 3 above is of particular interest. I'd like to do so. My next pull request will address this Issue as a whole, without individual issues being filed for everything I think needs correcting. I will be somewhat verbose into the commit messages.

@madskristensen
Copy link
Collaborator

@astrohart is option 3 a big tasks with a lot of changes?

@astrohart
Copy link
Contributor Author

astrohart commented Jan 19, 2021

@madskristensen All 3 options will involve a lot of changes. The concern is with increasing technical debt from this point forward in the code maintenance cycle.

Right now, my primary concern is that the code is VERY tightly-coupled with its dependencies, and I am troubled by that fact. It seems to me that it will only get worse down the road if something isn't done.

What I've found with my own projects is, that as the number of lines of code increases at this point, you're running the risk of this software becoming less maintainable.

I see it already as being on the cusp of that slippery slope. So, I don't really have a good answer for you. Is it a lot of changes, yes. But in my opinion, it really needs addressing if the project is going to be carried any further,

Using my ReSharper/CodeMaid tools the refactoring work itself is not as big an effort as otherwise it would be. The code will also end up vastly more readable and future-proof as a result.

The argument 'd make -- and I am probably repeating myself, I'm an educator, sorry for that -- for doing this now, is the core feature-set seems to be 80% of the way there. The upside of doing this work is, now when new features are to be added, first of all it will be easier to do so, but also without breaking existing functionality.

There are still also about 13 existing issues with this code on this particular project. A SOLID refactoring will allow them to be surfaced more readily and dealt with without sacrificing robustness.

@astrohart
Copy link
Contributor Author

@madskristensen Long and the short of it, if you are willing, I am more than happy to make the code SOLID as a friendly gesture! Maintainability and extensibility are key.

I have also identified that this project could do with a (command-line interface) CLI. Say I am an IT guy and I am rolling Visual Studio out across an org. With a CLI, the extensions could be mass-rolled out across the organization using scripts. Refactoring to make the code SOLID would allow for greater code re-use in the case you wanted to go the CLI route -- the refactoring upshot would be to make the code vastly more modular, in which case the module in charge of installing extensions could be "popped out" and used to implement a CLI. As it stands right now, the code could be a lot more loosely-coupled; right now it's very tightly-coupled.

@madskristensen
Copy link
Collaborator

@astrohart Ok, thanks for clarifying. I'm game, bring it in :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants