Saltar a contenido

Última actualización:2026-10-12

Resumen del proyecto

1. Introducción al proyecto

C++ 那些事 es un proyecto de aprendizaje de código abierto dirigido tanto a principiantes como a desarrolladores de nivel intermedio en C++. Su objetivo es ayudar a los estudiantes a progresar desde los fundamentos de C++ hasta los temas avanzados, abarcando desde la sintaxis básica, la programación orientada a objetos, la programación con plantillas y el uso de la STL, hasta la concurrencia multihilo, la gestión de memoria y la optimización del rendimiento. Además, el proyecto analiza en profundidad el código fuente de varias bibliotecas y frameworks clásicos de código abierto, ayudando a los desarrolladores a comprender mejor cómo se aplica C++ en proyectos reales.

2. Objetivos del proyecto

  • De principiante a avanzado: ofrece a quienes empiezan una ruta de aprendizaje sistemática que los lleva paso a paso desde cero hasta dominar los conceptos centrales y las características avanzadas de C++.
  • Preparación para entrevistas: ofrece el análisis y la práctica de preguntas habituales en entrevistas de C++, ayudando a los candidatos a destacar en las mismas.
  • Análisis del código fuente: mediante el análisis del código fuente de proyectos clásicos de código abierto, ayuda a los desarrolladores a comprender en profundidad los patrones de diseño y los principios de implementación de C++.
  • Multihilo y concurrencia: explora en profundidad la programación multihilo y el control de la concurrencia en C++, ayudando a los desarrolladores a escribir programas concurrentes eficientes y seguros.
  • Optimización del rendimiento: presenta técnicas de optimización del rendimiento en C++, ayudando a los desarrolladores a escribir código eficiente.

3. Contenido del proyecto

El proyecto C++ 那些事 tiene un contenido muy amplio que cubre todos los aspectos de C++, organizado principalmente en los siguientes módulos:

  • Fundamentos y nivel avanzado

    • Palabras clave y características: explicaciones detalladas de palabras clave como const, static, this, inline, sizeof, virtual, volatile, explicit, friend, using, ::, enum y decltype.
    • Funciones y punteros: punteros a funciones, funciones virtuales puras y clases abstractas, vptr_vtable, etc.
    • Estructuras de datos: struct, union, campos de bits, la diferencia entre referencias y punteros, etc.
    • Polimorfismo de C++ implementado en C: implementación de las características de polimorfismo de C++ en el lenguaje C.
    • Macros y aserciones: definición y uso de macros, y casos de uso de assert.
  • Serie práctica

    • Práctica intensiva de 10 días: mejora rápidamente tus habilidades de programación en C++ con diez días de ejercicios intensivos.
    • Ejercicios prácticos clave: práctica dirigida a los puntos clave y difíciles de C++ para consolidar lo aprendido.
  • Análisis del código fuente de la STL

    • Contenedores: análisis del código fuente de contenedores como array, deque, queue, stack, list, vector, rb_tree, set, multiset, map, multimap, hashtable y unordered_map.
    • Iteradores y rasgos: iterator, traits, typename, etc.
    • Optimización EBO: la técnica de optimización de clase base vacía (EBO) utilizada en el diseño de la STL.
  • Nuevas características de C++2.0

  • Temas ampliados

    • Profundización en los mecanismos del lenguaje: mutable, toda la familia de const, ABI, recursión en cola, etc. (véase la navegación «Fundamentos y nivel avanzado → Profundización en los mecanismos del lenguaje»).
    • Memoria y depuración, evaluación de rendimiento, proyectos prácticos, lecturas y consejos: secciones independientes de la navegación, con artículos prácticos sobre AddressSanitizer, Benchmark, pybind11, gRPC, etc.
  • Patrones de diseño

    • Patrones de diseño comunes: cómo se aplican en C++ patrones clásicos como Singleton, Factory y Observer.
  • Programación concurrente

    • Multihilo y multiproceso: técnicas de programación multihilo como std::thread, std::async, std::mutex y std::condition_variable.
    • C++ Concurrency in Action: una exploración en profundidad de los modelos de programación concurrente y su práctica en C++.
  • Modismos de C++

    • Estilo de programación y modismos: explora los estilos y modismos comunes de programación en C++, ayudando a los desarrolladores a escribir código más elegante.
  • Cursos de aprendizaje

    • «C++ moderno en la práctica: 30 lecciones» de GeekTime: un recurso de aprendizaje recomendado para estudiar el C++ moderno de forma sistemática.
  • Herramientas

    • Herramientas de depuración e impresión: uso de herramientas de depuración como dbg-macro y rr.
    • Utilidades para imprimir contenedores: herramientas que simplifican la impresión de contenedores.
    • Observar el proceso de compilación: observar cómo cambia el código C++ durante el proceso de compilación con ayuda de herramientas.

4. Características del proyecto

  • Ruta de aprendizaje sistemática: el contenido progresa gradualmente desde los fundamentos hasta los temas avanzados, adecuado para estudiantes de distintos niveles.
  • Teoría combinada con la práctica: además de explicaciones teóricas, incluye numerosos ejemplos de código y proyectos prácticos.
  • Análisis profundo del código fuente: mediante el análisis del código fuente de proyectos clásicos de código abierto, ayuda a los desarrolladores a comprender en profundidad el diseño y la implementación de C++.
  • Multihilo y concurrencia: un análisis en profundidad de la programación concurrente en C++, que ayuda a los desarrolladores a escribir programas concurrentes eficientes y seguros.
  • Orientado a las entrevistas: proporciona el análisis de preguntas habituales en entrevistas, ayudando a los candidatos a prepararse mejor.

5. Recursos del proyecto

  • Sitio web de aprendizaje en línea: C++那些事
  • Cuenta oficial de WeChat: 光城
  • Vídeos en Bilibili: 未来的光城; el contenido del proyecto también se publica en Bilibili en formato de vídeo, para que resulte cómodo de ver para los estudiantes.

6. Formas de participar

C++那些事 es un proyecto de código abierto al que los desarrolladores están invitados a contribuir. Puedes participar de las siguientes maneras:

  • Star y Fork: si el proyecto te resulta útil, te invitamos a darle Star y Fork en GitHub.
  • Enviar PR: si tienes buen contenido o sugerencias de mejora, no dudes en enviar un Pull Request.
  • Comentarios y sugerencias: si encuentras problemas durante el uso o tienes cualquier sugerencia, plantéalos en la sección de Issues del proyecto.

7. Plan de futuro del proyecto

  • Ampliar los temas avanzados: como las nuevas características de C++20, la metaprogramación o el cálculo en tiempo de compilación.
  • Añadir más proyectos prácticos: más proyectos prácticos para ayudar a los desarrolladores a aplicar lo aprendido en el desarrollo real.
  • Construcción de la comunidad: crear una comunidad más activa y fomentar el intercambio y el compartir entre desarrolladores.

8. Palabras finales

C++那些事 es un proyecto de código abierto dedicado a ayudar a los estudiantes de C++ a pasar de principiantes a avanzados. Tanto si eres un principiante como un desarrollador con cierta experiencia, aquí encontrarás recursos de aprendizaje adecuados para ti. Esperamos que, gracias a este proyecto, más personas lleguen a dominar C++ y lo utilicen con soltura en el desarrollo real.

¡Te invitamos a dar Star, Fork y enviar PR para impulsar juntos el desarrollo de la comunidad de C++!

9. Sobre el autor

  • WeChat: busca gcxzhang

  • Cuenta oficial de WeChat

Descripción del proyecto
Planeta del Conocimiento
wechat
Cuenta oficial de WeChat
  • Muestra tu apoyo
alipay
Alipay
wechat
WeChat

Comentarios