GoingNative 33: C++ Refactoring in Visual Studio 2015

Play GoingNative 33: C++ Refactoring in Visual Studio 2015
Sign in to queue

Description

Join a (hopefully) familiar face today as we go through the various C++ refactoring features in Visual Studio 2015! This video features the improved versions of the features since Preview, but it is still code in-flight, so definitely let us know in the comments below what your key customizability points are for the showcased features, and feel free to plug what other refactorings matter the most to you as well!

Prelude
[00:54] Design Principles
[01:18] "What took you guys so long?"
[03:17] Reinforcing good coding practices

The Features
[04:15] Disclaimer
[04:37] Rename
[08:27] Extract Function
[11:12] Implement Pure Virtuals
[12:45] Create Declaration/Definition
[14:14] Move Definition Location
[14:56] Convert to Raw-String Literal

[16:42] Special thanks (w/ the devs)

Want to try out a preview of all these features? Click on the shiny hyperlink =)

(Remember: the refactoring features in VS2015 Preview are not yet at the state as they are featured in the video, but your feedback based on VS2015 Preview is still super valuable to us!)

Embed

Download

Download this episode

The Discussion

  • User profile image
    Guy Micciche

    Looks good. Definitely include all those things you said to email you about. Those features look amazing!

  • User profile image
    Jagansai

    Very good features indeed. Hopefully we get to use these in our organizations pretty soon.

  • User profile image
    liux0229

    In the code extraction case, why do we deduce the parameter type to be `TimeSpan&` instead of `const TimeSpan&`? I understand you are basing that on the type of local variable used as the argument (which is non-const), but it should be relatively easy to figure out none of the extracted code is calling a non-const member function of the parameter?

    Automatically deducing `TimeSpan&` seems to encourage bad coding practices and is actually worse than just use `TimeSpan`.

  • User profile image
    Peter Sommerlad

    If you want to try one of the mentioned other C++ refactoring tools with many more refactorings, take a look at http://cevelop.com

    At least the toggling of function definitions that i invented is something my friends from Microsoft got inspired by.

    Btw, cevelop will also work with microsofts compiler.

  • User profile image
    coprime

    Nice job Gabriel!  Definitely much needed improvements, can't wait to try them out.

  • User profile image
    gha11

    @liux0229: Sorry for the late reply! The deduction limitation is a known limitation of our compiler, from which extract function gets its information (in order to make robust other aspects of the feature). So in short...we're working on it =P

  • User profile image
    hxqs

    very nice! good job

Add Your 2 Cents