2008-09-16 21 views
6

No estoy hablando de cómo aplicar sangría aquí. Estoy buscando sugerencias sobre la mejor manera de organizar los trozos de código en un archivo fuente.¿Cuál es la mejor forma de organizar el código?

¿Organiza los métodos alfabéticamente? En el orden en que los escribiste? Temáticamente? En algún tipo de orden 'didáctica'?

¿Qué principios de organización sigues? ¿Por qué?

Respuesta

5

i normalmente orden por los siguientes

  1. constructores
  2. destructores
  3. getters
  4. setters
  5. cualquier método 'Magic'
  6. métodos para cambiar el estado PERSISTED de receptor (guardar() etc)
  7. comportamientos
  8. métodos de ayuda pública
  9. métodos de ayuda privado/protegido
  10. cualquier otra cosa (aunque si hay algo más que lo que normalmente era una señal de que es necesario un poco de refactorización)
+0

Personalmente, hubiera pensado que ninguno de los buscadores y establecedores privados sería una señal de que algo estaba pasando. ¿Qué quiere decir con 'métodos de ayuda'? –

+0

Me refiero a cualquier cosa que ayude a otra parte de la API a hacer su trabajo, tal vez un método como getFullPath() que pegó las propiedades del objeto, pero que no es un captador de vainilla. –

+0

Entonces ... ¿dónde pones comportamientos?La lista de métodos que proporciona parece ser relevante para un objeto de valor, pero no para nada que no vaya a tratarse como una estructura de datos. –

0

grupo I ellas basadas en lo que allí haciendo , y luego en el orden que las escribí (alfabéticamente sería probs ser mejor aunque)

por ejemplo, en texture.cpp tengo:

//====(DE)CONSTRUCTOR==== 
... 
//====LOAD FUNCTIONS==== 
... 
//====SAVE FUNCTIONS==== 
... 
//====RESOURCE MANGEMENT FUNCTIONS==== 
//(preventing multiple copies being loaded etc) 
... 
//====UTILL FUNCTIONS==== 
//getting texture details, etc 
... 
//====OVERLOADED OPERTORS==== 
.... 
0

Casi el uso de este enfoque para nada estoy de codificación en. Buena estructura y el código bien comentado hace una buena lectura

  • variables globales
  • Funciones
  • Cuerpo principal/Método
0

pública, protegido y luego privado y dentro de cada sección alfabéticamente aunque a menudo lista primero el constructor y el deconstructor al final.

/Allan

0

que tienden a agrupar las cosas temáticamente por falta de una palabra mejor.

Por ejemplo, si tuviera un método público que utilizara dos métodos privados en el curso de su trabajo, los agruparía en el archivo de implementación, ya que las probabilidades son buenas si va a mirar uno de ellos, entonces necesitarás mirar a uno de los otros.

También siempre agrupo los métodos get/set para un miembro de la clase en particular.

Es una preferencia muy personal, especialmente con los IDE modernos, ya que hay muchas funciones que le permiten saltar automáticamente a ubicaciones en el código.

1

Tiendo a agrupar métodos que se relacionan entre sí. El uso de un IDE bueno elimina gran parte de esta preocupación.Los métodos de alfabetización me parecen una pérdida de esfuerzo.

0

Me gusta mantener las cosas simples, así que no me meto un montón de métodos en una clase. Dentro de una clase, generalmente tengo los métodos más comúnmente utilizados (o modificados por mí ;-)) listados primero. En cuanto a la organización de código específico, cada conjunto de métodos pertenece a una clase, por lo que se organiza por sí mismo.

Utilizo la función de búsqueda de mi editor y el plegado de código para navegar a través de archivos fuente de gran tamaño. Del mismo modo, hago uso de las características de búsqueda para encontrar cosas en otros contextos también. Un gran esquema de organización nunca me satisfizo, así que confío en el poder de la búsqueda en todas las cosas, no solo en el código.

0

Punto de interés. Realmente no había pensado en esto.

Tiendo a poner funciones de acceso frecuente en la parte superior (funciones de utilidad, etc.), ya que es muy probable que necesiten ajustes.

No creo que la organización sea particularmente importante, ya que puedo encontrar cualquier función rápidamente. No me desplazo por mi archivo para encontrar una función; Lo busco

En C++, espero que las funciones en el archivo .cpp estén en el mismo orden en que se declaran en el archivo .h. Que generalmente son constructores, seguidos de destructores, seguidos de funciones de funciones primarias/centrales, seguidas de funciones de utilidad.

3

que tienden a utilizar siguiente patrón:

  • las variables public static final
  • funciones estáticas, bloques estáticos
  • las variables
  • constructores
  • funciones que algo relacionado con la lógica
  • getters y setters (son poco interesantes sobre todo para que no haya necesidad de leerlos)

No tengo ningún patrón para incluir clases locales, y sobre todo las pongo sobre el primer método que las usa.

No me gusta separar los métodos según el nivel de acceso. Si algún método público usa algún método privado, estarán cerca el uno del otro.

0

Principalmente escribo el código C y tiendo a ordenar por dependencia. Si es posible, trato de hacer coincidir mi archivo de código fuente con los archivos de encabezado, pero generalmente es si void a() usa int b (char * foo), entonces int b (char * foo) es lo primero.

Me evita agregar entradas al archivo de encabezado para funciones locales.

Por lo demás, es principalmente alfabético en realidad, hace que la búsqueda sea más fácil.

0

Tengo todos los campos privados, luego el público, luego los constructores, luego el principal, luego los métodos que las llamadas principales, en el orden en que se llaman.

Cuestiones relacionadas