Codigo en general - SoftPowering/Wiki_Codigo GitHub Wiki

Recomendaciones para el código en general

###Información en la Wiki Cada proyecto debe tener la información de sus proyectos en la wiki. Se debe adjuntar un diagrama de clases y de base de datos (en caso que sea el caso) en la wiki. Crear un Proyecto de propiedad SoftPowering, en Github desde sus propios perfiles. (New Repository -> Owner -> SoftPowering -> Agregar nombre del proyecto).

Documentar funciones y variables globales que necesiten ser conocidas antes de utilizar el programa.

ESTO Se aplica sobre todo a desarrolladores de dispositivos móviles.

Los directorios

Cada directorio que se cree, antes de subirlo al repositorio (ver wiki mercurial para instrucciones), se debe agregar un archivo README que proveerá información a quien baje el proyecto de que es lo que hace en dicho directorio. El archivo debe ser escrito en inglés.

El directorio raíz del proyecto, debe contener un README que tenga una descripción general, paquetes, librerías y/o Frameworks necesarios y un detalle de los directorios.

El código fuente de un proyecto debe estar siempre en una carpeta llamada proyecto_X/src/.

README, puede ser omitido para desarrollo de proyectos en dispositivos móviles.

###README file El README file es para que un usuario cualquiera, en cualquier momento (presente o futuro) pueda ocupar el código y tener una documentación general de lo que hace el proyecto y como se ejecuta. Debe incluir una cabecera simple, y las descripciones del proyecto.

Es muy importante de incluir SIEMPRE el repositorio para poder bajarlo en caso necesario.

Un ejemplo de README file sería:

/**
 * README FILE
 * Author: Nombre Apellido <[email protected]>
 * Date: 23 September, 2014
 * This file is SoftPowering propperty.
 */

JS monitor
----------
	Project: ssh://[email protected]//home/usuario/hg/server/

Description:
------------
	This is a web system that improves the old python oxiview.
	This system uses HTML/javascript mixture to show in real-time data comming from the server.

Features:
---------
	- Data convertion from cacheton server.
	- Real-time monitor for sensors.
	- Real-time graphics for sensors.
	- Excel reports for sensors data.
	- Real-time changing icons and images for graphical information.

Requirements:
-------------
	To use this system you should have:
		- A web browser that provides support for HTML, javascript and css, like:
				Google Chrome
				Mozila Firefox
				etc

		- A connection to the Server.

Before to use:
--------------
	- Internet Connection is needed, for jquery headers.
	- Make sure that the Global vars used in devices_data.js are correct:
		var LOCATION = "location" as default value. It will be shown all data for that location.
		var URL_BASE = "/" as default value. It will search in localhost.

Using Js Oxiview:
-----------------
	- To use, just open a web-browser and use the index.html web page as start. 
	- Choose the oxiwise objective that you want to use and click in "ver".
	- You will be redirected to the data monitor for the selected LOCATION.

Example:
	If you have installed and running server in localhost machine in 8888 port, then:
		- Copy the project to "server/js/" folder.
		- Open a web-browser.
		- Execute this web url:
				http://localhost:8888/static/js/index.html

Estilo

Para cada lenguaje de programación se utilizará el estilo señalado en el Home. En GENERAL, el estilo básico a utilizar, será de 4 espacios. Para ello se puede configurar en editores de texto como, Kate, EditPlus, SublimeText para obtener cada vez un tabulador de cuatro espacios en las preferencias de cada programa en particular.

Cabeceras

En las cabeceras del código debe documentarse quién lo creó, cuándo se desarrolló, el archivo y una breve descripción de lo que hace. Un ejemplo sería:

/*
* Copyrights to SoftPowering Ingerniería
* Developed by: Nombre Apellido <[email protected]>
* Date: 1-11-2014
* File: rest_server.cc
* This file provides the main function for a rest_server.cc
* Compile using make
*/

Variables y código

El código, en todos los casos y lenguajes (C/C++, Java, Python, ObjetiveC, Android, etc) debe ser escrito en inglés. Utilizando la pauta de lenguaje en particular proporcionada en los otros apartados de esta wiki.

Utilizar nombres de variables y funciones deben ser representativas según situación en que se las ocupe. Por ejemplo:

varAux = foo();
if(varAux) {
    ...//código
}

//CORRECTO
function_executed = foo();
if(function_executed) {
    ...//código
}