Sugerencias de productividad de Visual Studio C++

Sugerencias de productividad de Visual Studio C++

Visual Studio es mi principal entorno de desarrollo. He estado usando esta herramienta probablemente desde la versión 2003…2005. Estoy muy contento de que VS se esté volviendo cada vez más poderoso en estos días y también puede usarlo en múltiples plataformas (a través de VS Code, para aplicaciones web o en la nube). Lo que es aún mejor:¡es gratis para uso personal o si es una empresa pequeña (CommunityVersion)! Hoy, preparé algunos consejos de productividad que pueden hacer su vida un poco más fácil al desarrollar una aplicación en este IDE de Microsoft.

Mi objetivo es el desarrollo de aplicaciones nativas, pero la mayoría de las reglas también deberían ser genéricas para otros idiomas.

Aprenda a moverse en código

Este es un tema muy amplio y probablemente el aspecto más importante en mylist. Cuando aprende a programar, puede trabajar con proyectos simples con solo varios archivos de código. En ese escenario tienes la mayor parte del código en tu cabeza. Pero, en un proyecto comercial terminarás con cientos de archivos y clases. ¿Cómo moverse eficientemente en estructuras tan complicadas? Puede olvidarse fácilmente de la jerarquía de archivos, y mucho menos de las clases y subsistemas.

Estos son algunos pasos básicos:

Usar ir a definición/declaración

Probablemente, esto es lo que uso con más frecuencia:cambiar entre definición y declaración de una función, una variable o una clase.

Mientras lee algún código dentro de un método simplemente haciendo clic en el nombre del método (F12, Ctr+Alt+F12) puedes ir a su declaración o viceversa. Luego, puede ver dónde se encuentra el encabezado de función/método, de qué clase forma parte.

Esto funciona no solo para métodos o tipos, sino también para variables/miembros:en un método largo, puede ir a la definición de alguna variable para ver dónde está declarada.

Posible problema :a veces esta función no funciona bien para proyectos grandes :)Intellisensees de vez en cuando terco y no quiere cooperar. Pero si eres paciente, eventualmente alcanzarás el objetivo. Además, Intellisense ha mejorado mucho con cada versión de Visual Studio.

Lo más poderoso:poder navegar a lo que quieras. ¿Tal vez quieras verificar una función? o una declaración de clase? o algún otro símbolo? En Visual Studio (a partir de la versión 2010) existe el comando "Navegar a":Ctrl + COMMA

Ingrese el atajo y luego comience a escribir un nombre de símbolo que desee verificar. VS lo buscará dinámicamente y le dará una lista de elementos encontrados. Puede navegar fácilmente a una línea en particular en el código.

Más información sobre Navegar a:

  • Visual Studio 2013 Vaya a Mejoras

Yo uso ese tipo de navegación con frecuencia. A veces quiero encontrar algo, pero no sé el nombre de tipo adecuado. En ese caso, comienzo a escribir algunas palabras posibles que deberían coincidir y, por lo general, encuentro lo que estaba buscando.

En VisualAssist (descrito en la sección Complementos) hay una herramienta aún más poderosa:Buscar símbolo en solución. Esta ventana le permite encontrar rápidamente cualquier símbolo en la solución, puede usar prefijos, filtros negativos, cadenas múltiples, etc.

Ver todas las referencias

Esta característica es muy útil si sabe qué tipo/método está buscando y desea ver dónde se está utilizando. Puede explorar ejemplos y recrearlos en su solución.

En el trabajo, a menudo uso esto para rastrear todos los lugares que están relacionados con algún tipo/símbolo. Por ejemplo, cuando necesito agregar un tipo similar (algún tipo de atributo nuevo para un elemento gráfico) puedo buscar todas las apariciones de algún tipo existente y hacer lo mismo para mi nuevo tipo:como recrear la inicialización, agregar a las listas de tipos admitidos, registrarse en UI, etc.

Recientemente, noté que sería bueno obtener algo como “buscar algunas referencias” . Esto sería útil si sabe que una función/código se usa en cientos de lugares (por lo que los tiempos de búsqueda pueden ser enormes), pero en realidad está interesado en cualquier aspecto, solo unos pocos lo satisfarían. Esto funcionaría mucho más rápido. Por otro lado, el IDE no sabe qué elementos son más valiosos para usted... por lo que es más seguro devolver todas las ocurrencias.

También podría estar interesado en usar la función Ver jerarquía de llamadas, que muestra la jerarquía de llamadas mejor que solo encontrar todas las referencias.

Desafortunadamente, debo admitir que no tengo una memoria RAM grande en mi cabeza y olvido instantáneamente dónde estaba hace dos minutos en el proyecto :) Afortunadamente, puedo navegar hacia atrás y hacia adelante a lugares visitados previamente - Ctrl+ - y Ctrl + Shift + - !

Alternativamente, si está haciendo cambios en dos archivos, puede alternar entre ellos usando Ctrl+Tab . Esto mostrará la lista de archivos abiertos y usados ​​recientemente para que pueda abrirlos de inmediato.

También hay marcadores que se puede aprovechar. Puede marcar lugares importantes del código y cambiar entre esos lugares. Aún así, no los uso con mucha frecuencia. Ir y venir a lugares visitados recientemente parece crear una especie de natural favoritos y no tiene que recordar accesos directos adicionales. Por otro lado, usar marcadores podría ser un buen ejercicio.

Otras herramientas

  • Ver jerarquía de llamadas - Encontrar todas las referencias de una función puede estar bien, pero VS ofrece una función más avanzada:CallHierarchy. Esto muestra lo que otras funciones llamaron a su método original.
  • Jerarquía de clases -Útil cuando desea rastrear cuáles son las clases derivadas de su clase dada, o si desea rastrear la raíz común de los tipos. Esta función también está conectada al Explorador de objetos.
  • Alternar entre encabezado y archivo de implementación - otra herramienta básica -Ctrl+K, Ctrl+O . Especialmente útil cuando escribe la implementación de una clase y quiere ir a la declaración de clase.
  • // TODO - Lista de tareas ,marca lugares importantes en el código con // TODO: text y luego puede verlos en la ventana Lista de tareas.

Aprender atajos

Marca una de estas páginas:

  • Métodos abreviados de teclado predefinidos de MSDN VS2015
    • Métodos abreviados de teclado predefinidos de MSDN VS2013
    • Métodos abreviados de teclado predefinidos de MSDN VS2010
  • Métodos abreviados de teclado de Visual Studio 2015
    • Métodos abreviados de teclado de Visual Studio 2013

Imprímelo, mantenlo cerca de tu escritorio y aprende esos atajos todos los días.

Habilitar barra de desplazamiento mejorada

Cada vez que vuelvo a un IDE más simple que no ha mejorado la función de barra de desplazamiento, estoy un poco perdido. La barra de desplazamiento mejorada agrega un gran impulso a la forma en que puede moverse en un archivo. En casos simples, puede recordar dónde se encuentra su método:si está al principio, cerca de la mitad o al final de un archivo... eso podría funcionar por algún tiempo. Pero la barra de desplazamiento avanzada agrega un mapa donde puede encontrar su código mucho más rápido. Crea una imagen más grande y, por lo tanto, su cerebro puede memorizar dónde está el código “visualmente” ubicado en un archivo. ¡No más búsquedas aleatorias con la barra de desplazamiento! :)

Dado que la mayoría de las líneas tienen entre 80 y 120 caracteres y probablemente utilice un monitor con una relación de aspecto amplia, debería tener algo de espacio en el lado derecho/izquierdo del editor. Entonces, incluso si usa una barra de desplazamiento muy ancha, no debería disminuir el espacio para el código en sí.

Además, la barra de desplazamiento muestra información adicional como la última modificación, puntos de interrupción, errores del compilador y, por supuesto, dónde está la línea editada actualmente.

Obtenga más información sobre la barra de desplazamiento mejorada en MSDNblog

Tenga en cuenta que es genial tener archivos relativamente pequeños. De lo contrario, el mapa de la barra de desplazamiento se verá como una barra normal, casi de un color:


Todavía existe la posibilidad de obtener algún valor de dicho mapa, pero cuanto más corto sea el archivo, mejor en mi opinión.

En Herramientas de productividad para VS2013 hay una adición llamada "StructureVisualizer". Con la opción "Mostrar estructura de código en el margen", obtendrá una buena visualización de los bloques de código en un archivo.

La imagen de arriba proviene del sitio oficial del complemento:visualstudiogallery/Productivity Power Tools2013

Instalar complementos

Visual Studio es un entorno muy decente, pero ¿y si pudiéramos hacerlo mejor? Busque complementos que lo ayuden con sus tareas diarias y llene algunos de los vacíos que tiene VS.

Asistencia Visual

VisualAssist de Whole Tomato Software

Soy un gran fan de VisualAssist . Por ejemplo, puede leer algunos de mis consejos para esta herramienta en mi publicación de 2014:3 herramientas para comprender el código nuevo de VisualAssist. VA es un conjunto completo de herramientas para la refactorización, la navegación del código, la asistencia en la codificación... incluso la depuración. O para escribir esto brevemente:conjunto de herramientas de productividad.

Solo echa un vistazo aquí:

Es difícil saber cuándo no estoy usando las funciones de VA, porque está habilitado todo el tiempo. Pero cosas como cambiar el nombre de un símbolo, extraer un método, una clase, documentar un encabezado de función, encontrar símbolos, encontrar una declaración de método base, jerarquías de clases... todo eso es natural y muy útil con VA. También estoy realmente impresionado con el rendimiento, rara vez necesito esperar los resultados. Como mencioné antes, a menudo debe esperar Intellisense, pero con VA no ve tales situaciones.

No es gratis (279 $ por la licencia completa, 99 $ por la personal, 49 $ por la académica), pero recomiendo encarecidamente ahorrar algo de dinero y comprar la extensión.

Puede descargar la versión de prueba y echar un vistazo rápido:Descargar una versión de prueba gratuita.

ReSharper para C++

ReSharper para C++ de JetBrains

Nunca lo he usado, pero siempre quise :) Necesito dedicar algo de tiempo y experimentar con la versión de prueba.

Resharper es una extensión muy conocida para los desarrolladores de .NET, pero finalmente la empresa pudo producir una versión similar para C++. También es un gran conjunto de herramientas de productividad.

Por cierto:aquí está la comparación (hecha por JetBrains):VisualAssist vsReSharper forC++

En cuanto a precios puedes utilizar varios modelos, por ejemplo  199,00€ el primer año,  159,00€ el segundo,… o utilizar algunos descuentos.

Herramientas eléctricas de productividad para VS

Herramientas eléctricas de productividad2013
Herramientas eléctricas de productividad 2015

Esta vez es un conjunto de herramientas completamente gratuito que mejora enormemente el trabajo con VS. Incluso si tiene Visual Assist o ReSharper, el complemento aún puede aportar algo de valor.

Aquí está la lista completa de características:

  • Ayuda de vistazo
  • Errores del Explorador de soluciones
  • Visualizador de estructuras
  • Doble clic para maximizar las ventanas
  • Margen de marca de tiempo
  • Tareas rápidas:editar presente en
  • Ctrl + clic para ver la definición
  • Mejoras en la copia de HTML
  • Documentos cerrados recientemente
  • Margen de coincidencia
  • Limpieza del menú contextual de Power Commands
  • Compresión de línea sintáctica
  • Tareas rápidas
  • Comandos de poder
  • Impresión a color
  • Desplazamiento con clic central
  • Organizar importaciones para Visual Basic
  • Pozo de documento personalizado
  • Soporte de opciones de herramientas
  • Copia HTML
  • Corregir pestañas mixtas
  • Ctrl + clic Ir a definición
  • Alinear tareas
  • Guías de columna
  • Ayuda de parámetros coloreados

Me gustan especialmente:los marcadores de la barra de desplazamiento (que muestran una estructura de código adicional en la barra de desplazamiento), los documentos cerrados recientemente, las pestañas de documentos y algunos de los comandos de poder.

Otros complementos interesantes

  • AnkhSVN - SubversionSupport -proveedor Subversion SourceControl de código abierto (gratuito) de khSVN.
  • Correcciones rápidas de C++:solo en VS 2015, agregue algo de ayuda (en el menú contextual) para corregir algunos de los errores básicos de codificación (como la falta de inclusión, el punto y coma, el uso del espacio de nombres, etc.).
  • VS10xCodeMAP:muestra una representación gráfica anidada de la ventana del editor de código actual (C#, VB, C++).
  • ViasforaAgregue color a su editor de texto de Visual Studio!
  • ImageWatch:proporciona una ventana de visualización para visualizar imágenes en memoria (mapas de bits) al depurar código C++ nativo.
  • DoxygenComments:extensión que resalta las etiquetas de documentación de Doxygen dentro de los comentarios de C++, C# y JavaScript.
  • Refactorización de Visual C++:solo en VS 2013, en VS 2015 se agregaron más funciones de refactorización.
  • Depuración gráfica:solo en VS 2015, la extensión permite ver representaciones gráficas de variables, p. Modelos Boost.Geometry.
  • CodeMaid:una extensión de Visual Studio de código abierto para limpiar y simplificar nuestra codificación C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript y TypeScript .
  • IncrediBuild -IncrediBuild acelera las compilaciones mediante la distribución de compilaciones de C#, C/C++ y otras tareas entre las máquinas de la red local.

Algunas sugerencias más en esta antigua pregunta de StackOverflow:Complementos/complementos recomendados para Microsoft VisualStudio

Ejercicio

Como con cualquier otra herramienta, se necesita práctica. Por lo general, después de un tiempo, se acostumbrará a cualquier IDE y encontrará sus propias formas de ser relativamente productivo. Aún así, esto no significa que sea el final de la historia. ¿Por qué no probar otras herramientas integradas, otras técnicas, atajos de teclado, complementos, etc., etc.?

Estas son algunas sugerencias de ejercicios adicionales para VS IDE:

  • Trate de minimizar el uso del mouse, haga la mayoría de las cosas usando solo el teclado.
  • Aprende un atajo de teclado por día/semana
  • Menciono que no uso marcadores, pero como ejercicio podría usarlos durante uno o dos días y luego decidir si mejora mi flujo de trabajo o no.
  • Instale complementos "profundos/grandes" como VisualAssist o ReSharper para C++ (incluso versiones de prueba) y juegue con ellos. Aprenda qué herramientas y técnicas aportan dichos complementos al IDE.

  • ¡Use algún otro IDE! Haga su proyecto favorito en algún otro IDE como QTCreator, Eclipse, etc, etc... o incluso use una línea de comando + Vim. ¿Quizás aprenda algo que pueda usarse en Visual Studio más adelante?

Resumen

Visual Studio es un IDE muy poderoso y puede ser relativamente difícil aprovechar todas sus funciones. Espero que gracias a este artículo hayas aprendido algunas técnicas que te ayudarán cuando trabajes en el IDE. Dado que escribir y leer código es probablemente la actividad más frecuente, creo que es crucial conocer las características de "mover el código". Si puede saltar rápidamente entre archivos, ubicar clases, rastrear variables, ir a definiciones de métodos... (¡todo a través de atajos de teclado, por supuesto! :)) entonces puede concentrarse más en el trabajo real y no en los problemas con la herramienta.

No cubrí muchas cosas:como opciones de compilación, depuración, refactorización, diseño de ventanas, temas... tal vez esos sean buenos temas para otros artículos. Dime qué te gustaría leer más.

Tu turno

  • ¿Cuáles son sus consejos para Visual Studio?
  • ¿Utiliza algunas herramientas adicionales para trabajar con este IDE?
  • ¿Cuál es la característica más decepcionante de VS?