¿Cómo se organizan las bases de código en GitHub?

Como ya escribieron otros, solo buscó un marco específico y encontró la estructura de diseño de marcos. Entonces, esto no es nada genérico para Python, solo es genérico para Django.

De hecho, cada proyecto que encuentre tiende a tener su propia estructura. Seguramente, hay algunas similitudes entre la mayoría de las aplicaciones que existen. Por ejemplo, esas son cosas como las convenciones de nomenclatura para carpetas, como ya descubrió.

  • bin generalmente significa la carpeta bin ary. El lugar donde se escribirán los binarios compilados.
  • db es la carpeta d ata b ase que puede consistir en archivos de configuración de la base de datos, tal vez algunos scripts DB o marcos DB.
  • a menudo se hace referencia a conf como una colección de diferentes archivos de configuración, por ejemplo, para el marco con el que está trabajando, para diferentes herramientas que están involucradas, etc.
  • probablemente será el lugar donde residen algunos archivos de aplicaciones principales . Algo así como el código fuente base de su aplicación. Pero también he visto muchos proyectos, donde se usó esto en lugar de una carpeta lib ( lib raries) .
  • las aplicaciones pueden referirse a algún código generado o tal vez algún tipo de material frontend que no cabe en otra carpeta. Pero esto es muy vago, ya que no es utilizado por todos de la misma manera. Algunos marcos usan esto como la carpeta principal del código fuente.

También hay muchas otras carpetas muy utilizadas que formarán parte de un repositorio de aplicación / código:

  • lib / libs (como ya se describió)
  • src, que es la forma corta de s ou rc ecode
  • El proveedor a menudo está relacionado con cosas de terceros (otras librerías, etc.)
  • los activos contienen con mayor frecuencia imágenes y componentes estáticos
  • las pruebas a veces se usan para pruebas escritas o generadas

Y seguramente hay muchos más ( scripts, init, include, …)

Por lo tanto, esto depende completamente de la aplicación específica o el código fuente con el que está tratando y también su propósito. Una tienda web PHP definitivamente tendrá una estructura completamente diferente que un firmware para un componente de hardware. Y esto tiene mucho sentido, ya que hay conceptos absolutamente diferentes detrás de estas bases de código. Un controlador o firmware para, por ejemplo, una tarjeta gráfica probablemente no necesitará algunos activos de JavaScript, como necesitará una tienda web o cualquier otro sitio web. Por lo tanto, no hay necesidad de usar las mismas estructuras.

Lo bueno aquí es que muchos desarrolladores inteligentes y buenos han establecido algún tipo de patrones, que puedes adoptar y seguir. Pero esas son principalmente recomendaciones y no reglas. Mientras más desarrolladores estén de acuerdo con un patrón común, también conocido como mejores prácticas, más estándares se convertirán en una base sólida para algún tipo de estructura de diseño genérico (que no causará ningún dolor de cabeza para aquellos que no quieren lidiar con este tipo de problemas)

Para nombrar una referencia más grande aquí para un consentimiento sobre algún tipo de estructura de diseño, que es adoptada por una gran comunidad, existe el Estándar de Jerarquía del Sistema de Archivos ( Estándar de Jerarquía del Sistema de Archivos) para sistemas Linux. Esto no es igual a un repositorio de código fuente que encontrará en GitHub, pero la historia detrás de este estándar es bastante interesante y muestra cuán complicado es el proceso de encontrar un estándar común.

Diferentes proyectos siguen diferentes convenciones; Algunas plantillas de proyectos son generadas por generadores de plantillas, lo que parece abrumador para los principiantes.

En lugar de perseguir bases de código en GitHub, debe leer los manuales relacionados. Muchos proyectos publican manuales de usuario en sus sitios web oficiales. Intente hacer proyectos de juguetes, refiriéndose a los proyectos en GitHub más adelante.

Desde que buscó Django, Github muestra los proyectos de Django. Los proyectos de Django tienen una estructura de carpetas específica, ya que es algo similar a un marco MVC. Ver la documentación: Estructura del proyecto.

GitHub no sigue y estructuras de carpetas. Puede usar cualquier estructura de carpetas que desee. Si es un principiante de GitHub, consulte la documentación de Github para comenzar: Ayuda de GitHub

No existe una organización central para un repositorio de github, si observa los proyectos de Django, estos siguen una estructura muy específica.

More Interesting

Desarrollé un motor de base de datos en el trabajo y entiendo bien los conceptos básicos, como los árboles B y la integridad transaccional. ¿Cuál sería un buen libro sobre los temas avanzados, como los tipos de índice poco comunes y las técnicas para indexar el lenguaje natural?

¿Cuáles son los toques finales para proyectos de software de un solo hombre?

Cómo construir una comprensión de una base de código

¿Qué debo aprender primero cuando me uno a una compañía de software para acelerar mi crecimiento?

¿Cuáles son los buenos modelos mentales para la programación funcional?

¿Cuál es la diferencia entre los programas del sistema y las llamadas al sistema y la API?

¿Por qué y cómo usan los ingenieros eléctricos C ++?

¿Por qué no tuvo éxito Modula-2?

¿Cómo gestionan las empresas de desarrollo de software las empresas o la documentación de un gran proyecto editada por varias personas? ¿Es con Git?

¿Quién es tu genio favorito en estos campos, física, matemática, química e ingeniería? ¿Qué ha dicho él / ella sobre cómo aprenderlos?

¿Es el desarrollo ágil algo real, o incluso vale la pena aprenderlo? ¿Es una broma?

¿Cómo es para las niñas elegir la ingeniería de software como carrera en Pakistán?

¿Cuáles son las mejores grandes empresas de tecnología y nuevas empresas en etapa avanzada para ingenieros de software en Nueva York?

¿Existe una capacitación específica relacionada con las pruebas de software?

¿Cuál es la diferencia entre un modelo utilizado en ingeniería de software orientado a objetos y un diagrama UML? ¿Cómo se asocian?