Determinar una mejor práctica de codificación

8

Como nuevo programador, siempre ha sido difícil crear aplicaciones, porque todavía estoy en la etapa de aprendizaje.

Entiendo que para lograr un efecto o función particular en una aplicación, habrá numerosas formas de lograr el mismo resultado.

Sin embargo, si simplemente creo una función para su estado de funcionamiento, lo que significa que mientras funcione, tal como yo quiero, entonces debería estar bien.

¿Puede algún programador compañero de un nivel superior amablemente hacerme saber la forma correcta de hacer las cosas?

huella.
fuente
Sé que preguntaste sobre la codificación, pero eso es una parte muy pequeña de lo que hace un ingeniero de software. Aprenda sobre análisis de requisitos, casos de uso, arquitectura de software, patrones de diseño, documentación de diseño detallada, prueba de unidad automatizada , prueba de sistema, prueba de integración, depuración, seguimiento de errores, estimación de esfuerzo, planificación de proyectos, trabajo en equipo, jefes puntiagudos, horas extras sin pagar, Mountain Dew ...
Mawg dice que reinstale a Mónica

Respuestas:

4

Hay varios estándares de codificación "conocidos" que puede observar. Por ejemplo, para el desarrollo de C incrustado, MISRA C sería un buen comienzo. Este es un buen estándar de codificación C ++. Probablemente hay otros disponibles para otros idiomas.

Al final es mucho sentido común y prácticas comunes, lo ganas con experiencia. Por supuesto, los lugares de trabajo tienen sus propios estándares de codificación (o al menos deberían tener) a los que también debe adherirse.

littleadv
fuente
Ahora, ha pasado algún tiempo desde que lo leí, pero parece recordar que MISRA es una broma total. #
DeadMG
1
@DeadMG - ¿Broma? ¿No porque? Está dirigido a un determinado nicho, y para aquellos que no están en ese nicho puede parecer una exageración. Pero para un desarrollo crítico de seguridad, esa sería una muy buena guía. Trabajé con MISRA C cuando estaba desarrollando un estándar de codificación para mi equipo, y tomé algunas cosas desde allí (pero definitivamente no todo, no estábamos desarrollando un código crítico de seguridad que debería tener cero errores). Sin embargo, lo estoy mencionando aquí como un ejemplo de un estándar de codificación muy completo.
littleadv
Ha pasado algún tiempo desde que lo leí, así que no recuerdo ningún ejemplo específico. Sin embargo, recuerdo haberlo leído y mantener la firme creencia de que fue escrito por personas sin idea de lo que estaban haciendo o diciendo.
DeadMG
@DeadMG: entonces me parece que no tenías idea de para qué fue diseñado.
littleadv
4

El mantra que repito a mis desarrolladores junior es "Haz que funcione, luego hazlo bonito". Su código debe seguir un estándar para nombrar y lo que no. Utilizo las Directrices de diseño del marco cuando escribo C # con una excepción: siempre pongo un _ antes del nombre de un miembro privado. Hace que encontrarlos sea mucho más fácil.

De todos modos, hay una segunda pregunta aquí. Y así es como mejorar el código que has escrito. Señalaré Clean Code y Triple P como lecturas obligatorias para los desarrolladores que desean aprender a codificar mejor.

Michael Brown
fuente
4

Todos estamos todavía en la etapa de aprendizaje. Durará para siempre.

Creo que la mejor manera de mejorar su conocimiento es aprendiendo del código de otros o haciendo programación de pares con perfiles más altos que usted.

Por lo tanto, debe hacer lo siguiente:

  • Solicite revisión o programación de pares activamente. No esperes a que te lo propongan. Si es un desarrollador en solitario, considere las plataformas de revisión en línea .

  • Lea tanto código como pueda. Así es como aprendo muchas de las características del marco .NET. "¡Oh, no sabía que podía hacer eso en una sola línea de código!". Es como los escritores de novelas que obtienen sus ideas de otros autores. ¿No sabes dónde mirar? Elija un proyecto de código abierto aleatorio y navegue en él, al igual que Stanley Kubrick hizo para inspirarse : ir a la biblioteca y elegir CUALQUIER libro en CUALQUIER categoría.

En las biografías de Kubrick, se lo describe usando un método simple para expandir su base de conocimiento. Visitaría su biblioteca y seleccionaría libros al azar de categorías de información al azar, sin siquiera mirar los títulos. Luego se obligaría a leer esos libros. Al hacer esto, Stanley estaba obligando a su mente a expandirse en un nuevo territorio de forma regular.

Para aprender aún más rápidamente, ponga lo que ve en la práctica, en su propio código o en proyectos de muestra. Ayudará mucho a memorizar.

El aprendizaje es probablemente lo que nos impulsa a todos en la programación. Es una exploración perpetua.

Comunidad
fuente
2

Siendo realistas, no puedes apropiarte de los estándares de codificación de otras personas. Esto se debe a que tienen requisitos que probablemente no tenga. Por ejemplo, mira la guía de estilo C ++ de Google. Es así no porque produce un buen C ++, sino precisamente lo contrario, porque produce un terrible C ++ que es estilo C para que puedan interactuar con su código C heredado.

La única forma de desarrollar de manera realista buenos estándares de codificación es heredarlos de alguien que ya ha trabajado en la base de código durante mucho tiempo, o aprender de sus propias experiencias difíciles trabajando en ello.

Primero debe diseñar, luego codificar. Correr a la programación es un mal hábito. Pero no lo hagas bonito, eso es solo una pérdida de tiempo.

DeadMG
fuente
0

Algunas buenas formas de mejora son:

  • libros de lectura
  • trabajando en equipo, bajo la autoridad de desarrolladores experimentados

No nos proporciona mucha información para ayudarlo con mayor precisión ...

KLE
fuente
0

Enfocaría las mejoras desde varias direcciones:

Use algunas herramientas / complementos que le brinden comentarios instantáneos durante la programación, para que pueda hacer que su código sea mejor legible, utilizable, robusto, eficiente y correcto. Por ejemplo, en Java, puede usar checkstyle, PMD, Findbugs

Escribir pruebas: eso solo mejora su proceso de desarrollo y le brinda una red de seguridad cuando está experimentando e intentando mejorar su código, por ejemplo, refactorizando.

Use métricas para verificar su resultado y obtener más pistas. Por ejemplo, en Java, thee es jdepend, metrics, JavaNCSS, EclEmma.

Obtenga nuevas ideas e información al

  • libros de lectura
  • revisión de código
  • programación en pareja
  • hablando con otros desarrolladores, por ejemplo, en reuniones de bolsa marrón / almuerzos
  • escuchar podcasts
  • lee las publicaciones de stackexchange.
DaveFar
fuente
0

Personalmente soy fanático del estándar High Integrity C ++ .

Las reglas son extremadamente objetivas, no existe una convención de nomenclatura, por ejemplo.

3 clase

3.1 General

Alta Integridad Regla CPP 3.1.1 Organizar las definiciones de clase '' por nivel de acceso, en el siguiente orden: public, protected, private. (QACPP 2108, 2109, 2191, 2192, 2195)

Justificación Ordenar disminuyendo el alcance de la audiencia. Los diseñadores de programas de clientes necesitan conocer a los miembros públicos; los diseñadores de subclases potenciales necesitan saber sobre los miembros protegidos; y solo los implementadores de la clase necesitan saber sobre miembros privados y amigos.

class C // correct access order
{
public: // ...
protected: // ...
private: // ...
};

Fuerza industrial de referencia C ++ A.12, A.13;

Matthieu M.
fuente