2

In looking at various questions that are specifically mentioning a tool (as they are often tool questions that should have been asked on Stack Overflow years ago instead of here), I've come across this question which vexes me:

The question ends with:

I do not want that the view has to have the knowledge about the helper classes, that is the main view model shall provide all the properties... but the functions shall delegate the work to the helper classes to keep the viewModel class maintainable.

Is there any known add in /tool for visual studio, which can automatize this?

And the way that I would look at fixing it would be to remove the tool request, de tag the tool related tag and move on. However, there are two answers.

Resharper 7 Beta can do this - it is called "Extract class". You can try it for free.

New refactorings: specifically, the intensely requested Extract Class refactoring to split cumbersome classes into single-responsibility classes, and Transform Out Parameters to Tuple refactoring for functional style supporters. Note that Extract Class is currently only available in ReSharper Internal mode (devenv.exe /ReSharper.Internal).

"Extract method" usually means to "move portion of one method's code to a new method while maintaining functionality".

and

Sounds like a case for using extension methods. Simply move Function1() to MyViewModelHelper, make it static, and change the first/only paramater to be like this:

...

The second answer goes on to answer how to do the refactoring.


So, if I remove the tool recommendation part of the question, the first (and accepted answer three up votes) becomes invalidated. Saying "use this tool and select this menu option" isn't a good answer without that tool recommendation part of the question. Its not a great answer in the first place, but it does answer the question and was apparently helpful.

Is there something that can be done to fix this question? Does it require a mod to come in and delete an up voted and accepted answer? Is that within the purview of the mod's scope? Does it require getting a bunch of down votes and 20k answer delete votes instead?

Note: the actual question is not mentioned in the text here to try to avoid any meta effect. If you want to see it, it is in a comment.

  • 4
    The reason SE doesn't like questions that ask for tools is because they often lead to a long list of external links from users promoting their own favorite product. That said, if an answer does suggest a tool and explain why it is the best solution to the problem, I see no problem with it, especially if there is a very limited number of potential solutions. It would help if I could see the question you are referring to though. – Rachel Nov 18 '15 at 15:42
  • You know, it's a real pain to retrieve that comment while not having edit-privileges, and unless you know how to hack the URL to get to the revisions, I don't know how you would go about it... – Deduplicator Jan 9 '16 at 21:24
2

I really don't see what the problem is with this question or it's answers. I'd argue that the question would have been fine to ask on Stack Overflow if people had not developed a broken model of what does and does not work on Q&A. We have an entire site dedicated to software recommendations and it works well enough. A good deal of the success of that site stems from solid ground rules that have been refined by the community. But mostly it was the dedication of many users who really care about helping others make good choices when picking out software. It's not for everybody (which is why most sites reject recommendation questions) but this type of question doesn't cause anything like the problems many veteran users assume they will.

Second, this isn't really a tool request question at all. It's a question about refactoring C# classes. Like any programmer worth their salt, the OP noticed that the job they were facing might very well be automatable. This is a point in the question's favor not a demerit. I spent years doing dumb repeatable tasks until a co-worker pointed me to the exec shell command. I kick myself for not asking earlier for help. I don't see why a programmer who is looking for how to refactor C# classes should not find this answer on Programmers—especially since it seems to be the right way to tackle the problem.

I mentally removed the offending paragraphs and I don't see how removing them makes the answer any less valid. If there's an automated way to do a repetitive task, that's often the best answer. If, for some reason, it isn't, the best thing to do is to leave the question open so that someone more knowledgeable can provide a better answer. Closing the question because it includes some hints that the author was hoping to avoid doing drudgy by hand seems, well, cynical and paranoid. Maybe not a stellar question, I suppose. But I hope there is a place on this site for useful questions that get helpful answers.

  • 1
    By the way, I was deeply skeptical that a recommendations site could ever work. I'm not too proud to admit I was dead wrong. – Jon Ericson Nov 18 '15 at 23:56
  • 2
    That the accepted answer is referring to a three year old piece of software that you can no longer get not an issue? How should the community curate that answer? Would another answer that is "Matej's answer is out of date - Reshaper 10 is available [here]" with copy and paste from the documentation a valid answer? Or "Visual Studio Refactoring tool does this too now" Are new answers modeled after the accepted one good answers? How do we help new users give good answers to that question when it contains Is there any known add in /tool for visual studio, which can automatize this? ? – user40980 Nov 19 '15 at 0:04
  • @MichaelT: Nothing stops you from editing that information in even now. Unless you plan on deleting the question altogether, you probably should update the link to a canonical location. The problem of dealing with outdated answers is one we are looking at for all sites as you well know. But the solution here is simple: edit and/or provide a fresh answer. This isn't a great test case for what you are trying to prove. – Jon Ericson Nov 19 '15 at 0:17
  • 2
    I do not believe that adding more recommendations to the existing answer would help new users understand not to ask recommendation questions here. I believe the other answer is good. My preferred course of action would be to delete the pure recommendation answer, adjust the question so that it isn't asking about recommendations and instead focuses on the refactoring so that the other answer is in agreement and reopen - but I lack the tools to delete the accepted up voted answer without trying to get four people to down vote it - and that is likely frowned upon by various people. – user40980 Nov 19 '15 at 0:22
  • If just the question is edited, it makes the accepted answer a bit out of agreement with the question and it also would appear to other users that providing tool links and just tool links (maybe some C&P documentation) is an acceptable way to answer questions that are not about tools at all. – user40980 Nov 19 '15 at 0:25
  • @MichaelT: I went ahead and removed the bit that hints at a tool in the question. However, I think you are over estimating the sophistication of people who ask terrible questions. They might refer to a question like this in their post hoc justification for not reading up on this site. That's annoying, I'm sure. – Jon Ericson Nov 19 '15 at 0:31
  • 2
    We get post-hoc justifications all the time. Refer to the "well, there's a visual-studio-2010 tag available with open questions" the other day. It is especially tiring when one is active in closing and sees this sort of thing (especially the "well, can't you just ignore it and look on another thread"). Having these examples and answers that others use as prototypes for their own is something that we have difficulty cleaning up. Its a painful process as we've well known and have been told. – user40980 Nov 19 '15 at 0:35
  • 1
    We cannot put our heads in the sand and pretend that people coming in from google are not reading those questions and answers and emulating them in their own posts. If we want to be able to expect the level of quality that means we hope someone spends an hour to write, it sometimes means deleting the answers that someone took 30 seconds to write. – user40980 Nov 19 '15 at 0:37
  • 1
    @MichaelT: You seem to imply that if every dirty or broken window were removed people would stop complaining when their dumb question was closed. That seems pretty unlikely to me. – Jon Ericson Nov 19 '15 at 0:39
  • 2
    @JonEricson They would probably complain less, as they wouldn't be able to point to the broken window as justification, and they'd be far less likely to post the dumb question in the first place, as they would never have seen the broken window. I agree it doesn't completely solve the problem but it's clearly a part of the solution. – Ixrec Nov 19 '15 at 0:41
  • 4
    Certainly not. As Adam commented some time back there are people who post "derp - here is a text box". And those will still be closed. However, when people ask tool recommendation questions and get tool recommendation answers, (or tool link and some docs) it is discouraging to the people who want to write answers to questions that will take an hour to produce. – user40980 Nov 19 '15 at 0:41

You must log in to answer this question.