Consejos prácticos | Utilice CLion para resolver los 7 principales puntos débiles de C++

En la Encuesta anual para desarrolladores de C++ de 2023 de la Fundación C++, la comunidad identificó algunos de los principales puntos débiles al usar C++ (consulte la página 11 del resumen de la encuesta ).

Puntos de dolor

Como se menciona en este artículo, CLion puede ayudar a los desarrolladores de C++ de muchas maneras. Veámoslas una por una :

  • Administrar bibliotecas de terceros

  • Reducir el tiempo de construcción

  • Construir canalización de CI

  • Administrar proyectos de CMake

  • Verifique su código para detectar problemas de seguridad de tipos, memoria y subprocesos en tiempo real

  • Cree un entorno de desarrollo desde cero

  • Moderniza tu código


Administrar bibliotecas de terceros

El mayor desafío al usar C++ es administrar las bibliotecas de terceros de las que dependen las aplicaciones C++ : el 47% de los usuarios citó esto como un problema importante. A diferencia de muchos otros lenguajes de programación, C++ no tiene un administrador de paquetes estándar y se utiliza una variedad de soluciones. CLion tiene soporte integrado para vcpkg , uno de los administradores de paquetes de C++ más populares. También puedes usar Conan, otro popular administrador de paquetes de C++, con CLion. Actualmente, el complemento Conan para CLion es incompatible con la última versión de CLion. Se está realizando una solución, pero mientras tanto aún puedes usar Conan con CLion porque Conan genera archivos CMake compatibles con CLion.

find_packageCLion ahora proporciona finalización de código para paquetes de terceros conocidos por CMake .

Mejorar la finalización en CMake

Reducir el tiempo de construcción

Según los comentarios de los usuarios, el segundo mayor desafío es el tiempo de construcción , y el 43% de los encuestados lo cita como un problema importante. Aunque CLion no contiene un compilador, solo llama al compilador configurado en la cadena de herramientas (como GCC o Clang) y no puede afectar directamente el tiempo de compilación, los pasos de ejecución de CMake también se pueden optimizar utilizando la función de análisis CMake de CLion. La creación de perfiles de CMake ayuda a reducir el tiempo general de compilación de su proyecto al identificar las operaciones que consumen más tiempo durante la configuración de CMake y optimizar los scripts de CMake cuando sea necesario.

Análisis CMake

Construir canalización de CI

Según la encuesta, el tercer problema importante es la creación de canales de integración continua (compilaciones automatizadas, pruebas, etc.) desde cero . CLion proporciona muchas herramientas para esto y tiene soporte integrado para todos los principales marcos de prueba de C++ (Google Test, Boost.Test, Catch2, Doctest, CTest). Incluye configuraciones de ejecución y depuración dedicadas para pruebas, íconos de área de grapado para ejecutar o depurar pruebas/conjuntos/rutinas fijas y verificar su estado, ejecutores de pruebas dedicados y finalización de código para clases de pruebas y rutinas fijas.

Además, existen complementos CLion para TeamCity , herramientas de CI y gestión de compilación automatizada propias de JetBrains, y complementos para otras soluciones de integración continua.

prueba de unidad

Administrar proyectos de CMake

El 31% de los usuarios afirmó que su principal problema es la gestión de proyectos de CMake . CMake es el sistema de compilación multiplataforma más popular para C y C++. CLion incluye CMake y tiene una amplia integración de CMake , lo que hace que la experiencia de gestión de proyectos de CMake sea más fluida. CLion está equipado con un potente editor que tiene resaltado de sintaxis completo, autocompletado y documentación rápida de scripts de CMake; un depurador de CMake integrado; para agregar configuraciones y tipos de compilación, crear objetivos de CMake y agregarlos a estos objetivos. GUI incorporada compatibilidad con la eliminación o eliminación de archivos y recarga de proyectos de CMake, compatibilidad con ajustes preestablecidos y perfiles de CMake y otras características.

CMake depurador

Pero CMake no es el único modelo de proyecto compatible con CLion. La gestión de Makefiles también es un problema que los usuarios informan con frecuencia. La buena noticia es que CLion también admite proyectos Makefile y el lenguaje Makefile, lo que simplifica enormemente el uso de Makefiles.


Verifique los hilos en el código en tiempo real,

Problemas de memoria y seguridad de tipos

Varios otros puntos débiles importantes informados por los usuarios están relacionados con la seguridad , incluida la seguridad de los subprocesos (carreras, interbloqueos, etc.), la seguridad de la memoria (seguridad de límites, uso después de la liberación, pérdidas de memoria, etc.) y la seguridad de tipos . Para identificar y corregir estos problemas comunes, CLion ofrece a los desarrolladores una variedad de opciones de análisis de código estático y dinámico. Para el análisis estático, CLion ofrece muchas inspecciones de código útiles, integración Clang-Tidy y análisis de flujo de datos integrado .

El análisis de flujo de datos (DFA) de CLion puede identificar estáticamente muchas fuentes de comportamiento indefinido y vulnerabilidades potenciales, como bucles infinitos, recursividad infinita, declaraciones de retorno faltantes, punteros colgantes, iteradores potencialmente no válidos y accesos a memoria fuera de los límites. DFA puede operar localmente dentro de una única función o globalmente en toda una unidad de traducción. En el siguiente ejemplo, el DFA local identifica un iterador que puede quedar invalidado mediante una llamada a vector::push_back::

iterador colgante

En el siguiente ejemplo, un DFA global emite una advertencia de escritura después de la liberación mediante un puntero que se ha eliminado en otra función:

puntero colgando

Para el análisis dinámico, CLion está completamente integrado con Valgrind y numerosos Sanitizers , como AdressSanitizer, LeakSanitizer, ThreadSanitizer, UndefinedBehaviourSanitizer y MemorySanitizer. También agregamos recientemente un mejor soporte de depuración de subprocesos múltiples para rastrear problemas de concurrencia, como vistas de pilas paralelas y la capacidad de congelar y descongelar subprocesos individuales durante la depuración .


entorno de desarrollo

Otro punto débil reportado por los usuarios es la dificultad de configurar un entorno de desarrollo (compilador, sistema de compilación, etc.) desde cero . CLion también puede ayudar con esto: como se mencionó anteriormente, CLion ya incluye CMake, pero también viene con un depurador incluido, MinGW incluido en Windows, compatibilidad con Docker a través de un complemento Docker dedicado y una cadena de herramientas Docker, y otras características. Para el desarrollo remoto, CLion admite JetBrains Gateway , que permite ejecutar CLion en un host remoto y conectarse a través de un cliente ligero, así como otras formas de crear un entorno de desarrollo remoto .

Puerta

Moderniza tu código

Finalmente, migrar el código existente a los últimos estándares de lenguaje es un problema importante para el 8% de los usuarios y un problema menor para el 27%. Para migrar fácilmente el código existente a estándares C++ más modernos, CLion admite comprobaciones de modernización de Clang-Tidy directamente en el IDE .

Modernizar el código C++


Autora original en inglés de este blog: Anastasia Kazakova


Reserva en vivo | JetBrains GameDev Day 2023


El 13 de octubre de 2023 (viernes), JetBrains organizará el evento GameDev Day 2023, invitando a 11 expertos de diferentes campos a dar discursos, organizar debates y compartir consejos profesionales para crear los mejores juegos. El evento explorará aspectos de las pruebas de juegos, CI/CD, DOTS para Unity y el desarrollo de Apple Vision Pro.

Transmitiremos simultáneamente este evento en la cuenta de video y en la estación B, y brindaremos interpretación simultánea de subtítulos bilingües. ¡Bienvenido a verlo a tiempo!




Lectura relacionada con CLion

Acerca de CLion

CLion es un IDE inteligente para desarrollo en C o C++ en Windows, Linux y macOS. CLion comprende los estándares modernos de C++ y proporciona soporte para preprocesadores. También integra GDB/LDB y un marco de pruebas unitarias. 

Más información sobre CLion

⏬ Haga clic en "Leer el texto original" para obtener más información.

Este artículo se comparte desde la cuenta pública de WeChat: JetBrains (JetBrainsChina).
Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Este artículo participa en el " Plan de creación de fuentes OSC ". Los que están leyendo pueden unirse y compartir juntos.

Alibaba Cloud sufrió un grave fallo que afectó a todos los productos (ha sido restaurado). El sistema operativo ruso Aurora OS 5.0, una nueva interfaz de usuario, se presentó en Tumblr. Muchas empresas de Internet reclutaron urgentemente programadores de Hongmeng . .NET 8 es oficialmente GA, el último Versión LTS Tiempo UNIX A punto de ingresar a la era de los 1.7 mil millones (ya ingresó), Xiaomi anunció oficialmente que Xiaomi Vela es completamente de código abierto y el kernel subyacente es .NET 8 en NuttX Linux. El tamaño independiente se reduce en un 50%. FFmpeg 6.1 " Se lanza Heaviside". Microsoft lanza una nueva "aplicación para Windows"
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5494143/blog/10117381
Recomendado
Clasificación