Tengo un sólido historial de Java / Groovy y me asignaron a un equipo que mantiene una base de código C bastante grande para un software administrativo.
Algunos puntos problemáticos, como tratar con blob en la base de datos o generar informes en PDF y Excel, se han externalizado al servicio web java.
Sin embargo, como desarrollador de Java, estoy un poco confundido por algunos aspectos del código:
- es detallado (especialmente cuando se trata de 'excepción')
- hay muchos métodos enormes (muchos más de 2000 líneas de método)
- no hay estructuras de datos avanzadas (echo mucho de menos la Lista, el Conjunto y el Mapa)
- ninguna separación de interés (SQL se mezcla alegremente en todo el código)
Como resultado, siento que el negocio está oculto en toneladas de código técnico y mi cerebro, en forma de Objeto Orientado y una pizca de Programación Funcional, no está a gusto.
El lado bueno del proyecto es que el código es sencillo: no hay marco, no hay manipulación de código de byte en tiempo de ejecución, no AOP. Y el servidor puede responder simultáneamente a más de 10000 usuarios con una sola máquina usando menos memoria de la que necesita Java para escupir "hola mundo".
Quiero aprender cómo escribir código C de acuerdo con los principios modernos comúnmente aceptados. ¿Hay algún principio comúnmente aceptado sobre cómo debería escribirse y estructurarse la C moderna?
Algo un poco como el equivalente al libro 'Eficaz Java', pero para C.
Edite a la luz de las respuestas y comentarios:
- Intentaré adaptar mi mentalidad al código C y no intentar reflejarlo en OOP.
- Empecé a escanear y leer las guías de estilo de codificación recomendadas del comentario (los Estándares de codificación de GNU y el Estilo de codificación de kernel de Linux).
- Intentaré proponer este estilo de código a mis compañeros de trabajo. La parte más difícil podría ser convencer a los compañeros de trabajo de que un método enorme podría dividirse en partes más pequeñas y que repetir el mismo código de manejo de errores de 4 líneas podría evitarse con la ayuda de un método.