Antecedentes / escenario
Comencé a escribir una aplicación CLI únicamente en C (mi primer programa C o C ++ correcto que no era "Hello World" o una variación del mismo). A mitad de camino, estaba trabajando con "cadenas" de entrada de usuario (matrices de caracteres) y descubrí el objeto de cadena de C ++. Vi que podía guardar código usando estos, así que los usé a través de la aplicación. Esto significa que he cambiado la extensión del archivo a .cpp y ahora compilo la aplicación en g++
lugar de gcc
. Basándome en esto, diría que la aplicación ahora es técnicamente una aplicación C ++ (aunque el 90% + del código está escrito en lo que yo llamaría C, ya que hay muchos cruces entre los dos idiomas dada mi experiencia limitada de los dos). Es un único archivo .cpp de alrededor de 900 líneas de largo.
Factores importantes
Quiero que el programa sea gratuito (como en dinero) y libremente distribuible y utilizable para que todos lo tengan. Mi preocupación es que alguien vea el código y piense algo en el sentido de:
Mira la codificación, es horrible, este programa no puede ayudarme
Cuando potencialmente podría! Otra cuestión es que el código sea eficiente (es un programa para probar la conectividad Ethernet). No debe haber partes del código que sean tan ineficientes que puedan dificultar severamente el rendimiento de la aplicación o su salida. Sin embargo, creo que esa es una pregunta para Stack Overflow cuando solicito ayuda con funciones específicas, métodos, llamadas a objetos, etc.
Mi pregunta
Tener (en mi opinión) mezclado C y C ++ donde tal vez no debería. Debo buscar reescribirlo todo en C ++ (con esto, quiero decir implementar más objetos y métodos de C ++ en los que quizás haya codificado algo en un estilo de C que pueda condensarse usando técnicas más nuevas de C ++), o elimine el uso de objetos streamer de cadena y traer todo "de vuelta" al código C? ¿Hay un enfoque correcto aquí? Estoy perdido y necesito alguna orientación sobre cómo mantener esta aplicación "Buena" a los ojos de las masas, para que la usen y se beneficien de ella.
El Código - Actualización
Aquí hay un enlace al código. Es alrededor del 40% de comentarios, comento casi todas las líneas hasta que me siento más fluido. Sin embargo, en la copia a la que me he vinculado, he eliminado casi todos los comentarios. Espero que esto no haga que sea demasiado difícil de leer. Sin embargo, espero que nadie deba entenderlo completamente. Sin embargo, si he cometido fallas de diseño fatales, espero que puedan identificarse fácilmente. También debo mencionar que estoy escribiendo un par de computadoras de escritorio y portátiles Ubuntu. No tengo la intención de portar el código a otros sistemas operativos.
LICENSE
archivo. Puede obtener comentarios interesantes.