Difference between revisions of "Buenas prácticas"

From Asibot & HOAP3 & TEO Wiki
Jump to navigation Jump to search
Line 2: Line 2:
 
** Software y hardware: [https://github.com/roboticslab-uc3m GitHub (GIT, público)]. Consulta con tu tutor (que posiblemente te redirija a Juan, David o Raúl) si dudas en qué repositorio trabajar. Acomoda tu [https://git-scm.com/docs/gitignore .gitignore] al tipo de proyecto, para evitar subir ficheros que no se deberían (binarios, backups, y ficheros residuales varios).
 
** Software y hardware: [https://github.com/roboticslab-uc3m GitHub (GIT, público)]. Consulta con tu tutor (que posiblemente te redirija a Juan, David o Raúl) si dudas en qué repositorio trabajar. Acomoda tu [https://git-scm.com/docs/gitignore .gitignore] al tipo de proyecto, para evitar subir ficheros que no se deberían (binarios, backups, y ficheros residuales varios).
 
** Redacción de publicaciones: Consulta con tu tutor (que posiblemente te redirija a Juan) para la URL exacta, distribuidos a través de http://robots.uc3m.es/svn/* (SVN, privado)
 
** Redacción de publicaciones: Consulta con tu tutor (que posiblemente te redirija a Juan) para la URL exacta, distribuidos a través de http://robots.uc3m.es/svn/* (SVN, privado)
 +
 +
== Programación en General ==
 
* NO utilizar números en nombres de ficheros para indicar versiones/intentos/iteraciones... ¡Para eso ya existen los hash y tag de los sistemas de control de versiones!
 
* NO utilizar números en nombres de ficheros para indicar versiones/intentos/iteraciones... ¡Para eso ya existen los hash y tag de los sistemas de control de versiones!
 +
* [http://robots.uc3m.es/dox-asibot-main/post_install.html#post_install_changing_parameters Cabeceras, ficheros de configuración y parámetros de CLI].
 +
* Lee acerca de [https://www.google.es/search?q=cleancode Clean code].
 +
 
== Programación C/C++ ==
 
== Programación C/C++ ==
 
* Para crear un nuevo proyecto C/C++, utiliza [https://github.com/roboticslab-uc3m/project-generator project-generator].
 
* Para crear un nuevo proyecto C/C++, utiliza [https://github.com/roboticslab-uc3m/project-generator project-generator].
Line 13: Line 18:
 
* Si tienes un dispositivo, también impleméntalo como una clase, idealmente como un [http://asrob.uc3m.es/index.php/Tutorial_yarp_devices YARP device].
 
* Si tienes un dispositivo, también impleméntalo como una clase, idealmente como un [http://asrob.uc3m.es/index.php/Tutorial_yarp_devices YARP device].
 
* Crea un test para cada clase, desarrollándolo a la par de la clase. En la actualidad utilizamos gtest, como en [https://github.com/roboticslab-uc3m/teo-main/tree/develop/test] y [https://github.com/roboticslab-uc3m/teo-body/tree/develop/test].
 
* Crea un test para cada clase, desarrollándolo a la par de la clase. En la actualidad utilizamos gtest, como en [https://github.com/roboticslab-uc3m/teo-main/tree/develop/test] y [https://github.com/roboticslab-uc3m/teo-body/tree/develop/test].
* [http://robots.uc3m.es/dox-asibot-main/post_install.html#post_install_changing_parameters Cabeceras, ficheros de configuración y parámetros de CLI].
 
* Lee acerca de [https://www.google.es/search?q=cleancode Clean code].
 

Revision as of 16:23, 13 June 2016

  • Siempre, para cualquier archivo de trabajo, por muy insignificante o borrador que parezca, utiliza uno de los repositorios compartidos:
    • Software y hardware: GitHub (GIT, público). Consulta con tu tutor (que posiblemente te redirija a Juan, David o Raúl) si dudas en qué repositorio trabajar. Acomoda tu .gitignore al tipo de proyecto, para evitar subir ficheros que no se deberían (binarios, backups, y ficheros residuales varios).
    • Redacción de publicaciones: Consulta con tu tutor (que posiblemente te redirija a Juan) para la URL exacta, distribuidos a través de http://robots.uc3m.es/svn/* (SVN, privado)

Programación en General

Programación C/C++

  • Para crear un nuevo proyecto C/C++, utiliza project-generator.
  • Si hay problema con project-generator, coméntalo en su sección de issues. Si sigues con motivos en contra, por lo menos no dejes de utilizar CMake para cualquier proyecto C/C++.
  • Utiliza UpperCamelCase para nombres de librerías y de clases.
  • Utiliza lowerCamelCase para nombres de ejecutables.
  • En C++, evita el uso de variables globales.
  • Mantén un main() minimalista: implementa tu programa como una clase.
  • Si tienes un dispositivo, también impleméntalo como una clase, idealmente como un YARP device.
  • Crea un test para cada clase, desarrollándolo a la par de la clase. En la actualidad utilizamos gtest, como en [1] y [2].