¿Cuáles son las buenas pautas de construcción de software? ¿Algún libro sobre este tema?

No haré pautas específicas sobre C ya que no lo uso. Pero aquí hay algunas pautas / pasos generales.

  1. Descubra lo que quiere el cliente.
  2. Hacer un prototipo de interfaz / GUI. Revíselo con el cliente y pídales que lo firmen.
  3. Cuando codifique, haga que el código sea fácil de leer para el próximo programador. Sangra cuidadosamente, haz muchos comentarios útiles.
  4. Use nombres de variables que tengan sentido.
  5. KIS: Mantenlo simple. Use solo funciones / bibliotecas que la mayoría de las personas conozcan y que también conozcan C. Use bibliotecas que sean compatibles y tengan actualizaciones constantes.
  6. SIEMPRE tienen una función separada para escribir en la pantalla (mostrar un mensaje) y escribir en un archivo / registro de error. Estas funciones se usan MUCHO y TENDRÁS que ajustarlas a medida que avanza el proyecto. Es una buena idea tener una función de lectura de archivo donde pase el nombre del archivo y devuelva una estructura de datos, como una matriz u otra cosa. Es probable que eso también se use algunas veces.
  7. Tenga una versión alfa donde otra persona interna de su empresa pruebe el código, preferiblemente una persona que no sea de computadora. Le harán cosas a su programa que ni siquiera puede imaginar.
  8. Tenga una versión beta, para el cliente si es posible, haga que la usen e informe de errores Tenga un sistema de informe de errores para esto.
  9. Espero hasta el final para hacer la documentación, ya que el alcance o la GUI del proyecto pueden cambiar significativamente a medida que avanza el proyecto.

Estás haciendo una gran pregunta, y la respuesta sería tan larga como al menos un libro, así que me alegra que hayas pedido títulos de libros. Estos tres te llevarán la mayor parte del camino.

  1. Code Complete: A Practical Handbook of Software Construction, por Steve McConnell.
  2. El programador pragmático: de oficial a maestro, por Andrew Hunt y David Thomas.
  3. Head First Design Patterns, de Eric Freeman y Elisabeth Robson

Y una cosa más: C # no es la mejor opción para el desarrollo multiplataforma. De acuerdo, las cosas están mejorando en Microsoft Land y sus alrededores, y hay formas de hacer que su código nativo de Windows funcione en otras plataformas, pero si tuviera una opción, consideraría alternativas.

More Interesting

¿Cuándo vale la pena contratar programadores en el extranjero? ¿Cuáles son los recursos para encontrarlos? Solo estoy interesado en contratar a tiempo completo, no a tiempo parcial o trabajadores independientes.

¿Qué es lo mejor de la ingeniería de software y qué es lo que más te gusta de ella?

¿Por qué los Estados Unidos, el Reino Unido y otros países europeos nunca sirven como centros de desarrollo offshore?

¿Es posible ingresar a Google como ingeniero de software en 5 meses, si todo lo que sé es Java?

¿Las computadoras eventualmente reemplazarán a los ingenieros de software? ¿Por qué?

¿Cuáles son algunas respuestas extrañas dadas por los estudiantes de ingeniería en orales, aulas o durante las vivas?

Estoy trabajando como ingeniero de software y no estoy nada satisfecho. ¿Qué trabajo es seguro y bien pagado para vivir en India?

¿Cómo es trabajar en Tech Mahindra para estudiantes de primer año como ingeniero de software asociado?

Cómo usar las matemáticas como ingeniero de software

¿Hay demasiados desarrolladores / ingenieros de software en el campo?

¿Cuál es la diferencia entre los ingenieros de sistemas integrados de hardware y software?

Tengo una opción para elegir entre un SDE1 en Amazon y un ingeniero de software 2 en Cisco. ¿Cuál debería elegir? ¿Cuánto tendré en manos de estas dos compañías?

¿Qué piensan los estadounidenses de los ingenieros de software indios?

¿Puede cualquier ingeniero convertirse en ingeniero de software?

Singapur o Dubai, ¿cuál es mejor para los ingenieros de software en términos de perspectivas de trabajo?