Norma de programación en C++ de Frogman Engine

Este documento puede ser objeto de nuevas revisiones.

Prefacio

La necesidad de contar con normas de programación.

La base de código aumenta significativamente a medida que se desarrolla un proyecto, dependiendo del objetivo y el tipo de este. Una base de código inconsistente pone en peligro la legibilidad y la facilidad de mantenimiento, lo que afecta a la productividad personal o del equipo.

Puede que las normas de programación no sean necesarias para bases de código de uso único. Sin embargo, es imprescindible seguir una guía de estilo de programación para evitar inconsistencias en la base de código y no caer en el «infierno de la depuración».

El «código limpio» no existe, y es un mito, ya que la percepción de lo que es un código limpio es subjetiva para cada persona o equipo. El objetivo de este documento es evitar escribir código ilegible y no seguir a la letra el concepto de «código limpio ».

Un ejemplo simplificado de código ofuscado y profundamente anidado)

#include <iostream>
#include <cstdlib>

void mergeSort(int *arr, int l, int r) {
    if (l < r) {
        int m = l + (r - l) / 2;
        mergeSort(arr, l, m);
        mergeSort(arr, m + 1, r);
        int n1 = m - l + 1;
        int n2 = r - m;
        int *L = (int*) malloc(n1 * sizeof(int));
        int *R = (int*) malloc(n2 * sizeof(int));
        for (int i = 0; i < n1; i++) L[i] = arr[l + i];
        for (int j = 0; j < n2; j++) R[j] = arr[m + 1 + j];
        int i = 0, j = 0, k = l;
        while (i < n1) {
            if (j < n2) {
                if (L[i] <= R[j]) {
                    arr[k] = L[i];
                    i++;
                } else {
                    arr[k] = R[j];
                    j++;
                }
            } else {
                arr[k] = L[i];
                i++;
            }
            k++;
        }
        while (j < n2) {
            arr[k] = R[j];
            j++;
            k++;
        }
        free(L);
        free(R);
    }
}

Creación de la guía de estilo de programación

(en lugar de adoptar las de otros).

En Internet hay disponibles numerosas guías de estilo y convenciones de programación en C++ bien documentadas, como la guía de estilo de Google y el estándar de codificación de Unreal. A pesar de su disponibilidad, conocer los motivos que hay detrás de las reglas tiene un valor incalculable.

Referencia

C++ Coding Standards | Pope's Dev Docs

Reglas principales

1. No practiques a rajatabla el «código limpio». Intenta no escribir código redundante, excesivamente elaborado o complicado, para que tus compañeros de trabajo puedan leerlo y entenderlo fácilmente.