› Foros › Off-Topic › Miscelánea
mortisdj escribió:Mi pregunta es, como mi empresa tiene todos los derechos sobre el videojuego, es posible que si nos dan el proyecto de Unity, que pueda seguir realizándolo otra empresa diferente. ¿Como de complejo sería?
Vamos, no se si Unity es como a la hora de programar por ejemplo en PHP, que se va indicando que hace cada código que escribes con "#Aquí va el login del usuario" con lo que facilitar la estructura o Unity es más estructurado en si.
jorcoval escribió:mortisdj escribió:Mi pregunta es, como mi empresa tiene todos los derechos sobre el videojuego, es posible que si nos dan el proyecto de Unity, que pueda seguir realizándolo otra empresa diferente. ¿Como de complejo sería?
Por lo que cuentas, el proyecto es tan mierdoso que ni la propia desarrolladora se aclara con él. Probablemente, cueste menos tiempo que lo haga una buena empresa desde 0, que una muy buena empresa lo arregle con la base que teneis.Vamos, no se si Unity es como a la hora de programar por ejemplo en PHP, que se va indicando que hace cada código que escribes con "#Aquí va el login del usuario" con lo que facilitar la estructura o Unity es más estructurado en si.
Pues según creo unity se basa en C++, así que puede haber comentarios... o puede haber un merdel enorme.
Por no haber, puede que ni haya clases. Es que a saber cómo han programado hasta el momento.
Para que te hagas una idea, yo programo software industrial. Y más de una (y más de 10 veces) me ha llegado software donde las "variables" son referencias directas a memoria... es decir, no tienen ni nombre.
Así que imagina qué infierno es arreglar algo cuya base es todo %m1000, %m1001, %mw3000... y así.
amchacon escribió:jorcoval escribió:mortisdj escribió:Mi pregunta es, como mi empresa tiene todos los derechos sobre el videojuego, es posible que si nos dan el proyecto de Unity, que pueda seguir realizándolo otra empresa diferente. ¿Como de complejo sería?
Por lo que cuentas, el proyecto es tan mierdoso que ni la propia desarrolladora se aclara con él. Probablemente, cueste menos tiempo que lo haga una buena empresa desde 0, que una muy buena empresa lo arregle con la base que teneis.Vamos, no se si Unity es como a la hora de programar por ejemplo en PHP, que se va indicando que hace cada código que escribes con "#Aquí va el login del usuario" con lo que facilitar la estructura o Unity es más estructurado en si.
Pues según creo unity se basa en C++, así que puede haber comentarios... o puede haber un merdel enorme.
Por no haber, puede que ni haya clases. Es que a saber cómo han programado hasta el momento.
Para que te hagas una idea, yo programo software industrial. Y más de una (y más de 10 veces) me ha llegado software donde las "variables" son referencias directas a memoria... es decir, no tienen ni nombre.
Así que imagina qué infierno es arreglar algo cuya base es todo %m1000, %m1001, %mw3000... y así.
Pues yo he oído que Unity va en C#
amchacon escribió:En cuanto a documentación ninguna.
De todas formas, un buen código no requiere comentarios. Es auto-explicativo.
amchacon escribió:En cuanto a documentación ninguna.
De todas formas, un buen código no requiere comentarios. Es auto-explicativo.
Ashdown escribió:amchacon escribió:En cuanto a documentación ninguna.
De todas formas, un buen código no requiere comentarios. Es auto-explicativo.
Mis códigos son de una calidad decente y segun qué cosas mejor que estén documentadas en lenguaje humano. Qué menos que poner 'se resuelve el sistema por el método de Gauss-Jordan y si no es determinado aplicamos aproximaciones numéricas desde los ejes x y y z'.
// Añade 1 al contador de pacientes
pacientes = pacientes + 1;
amchacon escribió:jorcoval escribió:mortisdj escribió:Mi pregunta es, como mi empresa tiene todos los derechos sobre el videojuego, es posible que si nos dan el proyecto de Unity, que pueda seguir realizándolo otra empresa diferente. ¿Como de complejo sería?
Por lo que cuentas, el proyecto es tan mierdoso que ni la propia desarrolladora se aclara con él. Probablemente, cueste menos tiempo que lo haga una buena empresa desde 0, que una muy buena empresa lo arregle con la base que teneis.Vamos, no se si Unity es como a la hora de programar por ejemplo en PHP, que se va indicando que hace cada código que escribes con "#Aquí va el login del usuario" con lo que facilitar la estructura o Unity es más estructurado en si.
Pues según creo unity se basa en C++, así que puede haber comentarios... o puede haber un merdel enorme.
Por no haber, puede que ni haya clases. Es que a saber cómo han programado hasta el momento.
Para que te hagas una idea, yo programo software industrial. Y más de una (y más de 10 veces) me ha llegado software donde las "variables" son referencias directas a memoria... es decir, no tienen ni nombre.
Así que imagina qué infierno es arreglar algo cuya base es todo %m1000, %m1001, %mw3000... y así.
Pues yo he oído que Unity va en C#
amchacon escribió:En cuanto a documentación ninguna.
De todas formas, un buen código no requiere comentarios. Es auto-explicativo.
redscare escribió:La teoría es buena pero eso no es así. Quien no haya cogido su propio código de 6 meses atrás y haya pensado "por qué cojones hice esto?" es que no ha programado lo suficiente
void App::start()
{
while (window.isOpen())
{
// Clear the screen
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// Draw
glBindVertexArray(vertex_array);
glDrawArrays(GL_TRIANGLES, 0, NUM_TRIANGLES);
glBindVertexArray(0); // Unbind the vertex_array
// Update the screen
window.display();
}
}
void App::start()
{
while (window.isOpen())
{
clearScreen();
drawScreen();
updateScreen();
}
}
void App::clearScreen()
{
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
}
void App::drawScreen()
{
vertex_array.bind();
glDrawArrays(GL_TRIANGLES, 0, NUM_TRIANGLES);
vertex_array.unbind();
}
void App::updateScreen()
{
window.display();
}
amchacon escribió:redscare escribió:La teoría es buena pero eso no es así. Quien no haya cogido su propio código de 6 meses atrás y haya pensado "por qué cojones hice esto?" es que no ha programado lo suficiente
Tienen sus usos. Pero creo que un buen programador debería intentar expresarse por código siempre que pueda.
Ejemplo:void App::start()
{
while (window.isOpen())
{
// Clear the screen
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// Draw
glBindVertexArray(vertex_array);
glDrawArrays(GL_TRIANGLES, 0, NUM_TRIANGLES);
glBindVertexArray(0); // Unbind the vertex_array
// Update the screen
window.display();
}
}
Así es como lo haría yo:void App::start()
{
while (window.isOpen())
{
clearScreen();
drawScreen();
updateScreen();
}
}
void App::clearScreen()
{
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
}
void App::drawScreen()
{
vertex_array.bind();
glDrawArrays(GL_TRIANGLES, 0, NUM_TRIANGLES);
vertex_array.unbind();
}
void App::updateScreen()
{
window.display();
}
A mí me parece bastante claro, no sé.
/**
* Deletes a contract previously created by the XXX application.
* Expects as input both the contractId and the assoiciated child records IDs in the
* XXX table and appropiate YYY table. It first deletes the child records
* and then tries to delete the contract. If the contract has more children, the service will fail
* and rollback any deleted records. This is done to avoid deleting an active contract with other children.
* @param request includes contractId and appropiate children IDs
* @return empty response if OK, soap fault otherwise.
* @throws FunctionalFault
*/
public DeleteContractResponseDto deleteContract(DeleteContractRequestDto request) throws FunctionalFault {
redscare escribió:@amchacon Estoy de acuerdo contigo que los comentarios moñas de "aqui sumo dos numeros" no aportan nada. Pero tu ejemplo es demasiado sencillo. Cuando tienes un metodo que hace cosas complicadas es mejor documentarlo.
Por ejemplo, este es mio en mi proyecto actual (con algunos cambios para no poner en internet detalles de la BD). No lo pongo como ejemplo de perfección ni mucho menos, que conste./**
* Deletes a contract previously created by the XXX application.
* Expects as input both the contractId and the assoiciated child records IDs in the
* XXX table and appropiate YYY table. It first deletes the child records
* and then tries to delete the contract. If the contract has more children, the service will fail
* and rollback any deleted records. This is done to avoid deleting an active contract with other children.
* @param request includes contractId and appropiate children IDs
* @return empty response if OK, soap fault otherwise.
* @throws FunctionalFault
*/
public DeleteContractResponseDto deleteContract(DeleteContractRequestDto request) throws FunctionalFault {
Como ves explica el método en general, no linea por linea. Así cuando dentro de 8 meses alguien lo abra porque ha intentado borrar un contrato y le ha dado error, vera que es intencional y no joderá el método cambiándolo. O si algún manco no entiende porque le devuelve una respuesta vacía. O si algun manco no entiende por qué para borrar un contrato el método pide la lista de elementos hijos, etc. Siempre hay que asumir que dentro de un año alguien sin pleno conocimiento funcional de la aplicación va a tener que abrirlo para alguna corrección o cambio.
It first deletes the child records
* and then tries to delete the contract.
/**
* Deletes a contract previously created by the XXX application.
* Expects as input both the contractId and the assoiciated child records IDs in the
* XXX table and appropiate YYY table. If the contract has more children, the service will fail.
* This is done to avoid deleting an active contract with other children.
* @param request includes contractId and appropiate children IDs
* @return empty response if OK, soap fault otherwise.
* @throws FunctionalFault
*/
public DeleteContractResponseDto deleteContract(DeleteContractRequestDto request) throws FunctionalFault {
Rokzo escribió:El código es vuestro