Ver Mensaje Individual
  #11 (permalink)  
Antiguo 26/05/2015, 04:12
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cuánto debería unir estas funciones?

Cita:
Iniciado por agleiva Ver Mensaje
Una vez más te digo: "si te interesa programar de verdad...", te conviene aprender inglés. La mayoría de la literatura, documentación y ejemplos de código de calidad profesional, sin importar el lenguaje o la plataforma, están en inglés.
Supongo, pero bueno uno tiene sus límites. O sea, inglés era la materia con más nota que tenía. Y más de uno se sorprende porque miro cosas con subtítulos en inglés o juego juegos en ese idioma. Ya sé que eso no significa que "ya sé inglés", sólo digo que... si con eso no alcanza.... entonces es pedirme demasiado, no llego.

Cita:
1 - Todo tu código está desordenado, mal indentado, carece completamente de estructura, prolijidad, coherencia y cohesión.
Explica por qué dices esas cosas.

-----------------

Desordenado:
Las funciones que reagregan líneas están después del cuadro grande que dice "Readd líneas y sus botones", y son las únicas que están entre ese cuadro y otros. A su vez, las funciones allí están divididas en 2 grupos: Dependencia 0 y Dependencia 1.
Esa sección, esas funciones, que son las 1eras en aparecer e el código, son las 1eras que hice de las que mostré, y son las 1eras en usarse en el programa (salvo que presiones los botones + o -).
Te puedo hablar de las demás, pero has dicho"Todo tu código está desordenado", así que con esto debería alcanzar, ya que al menos eso que describí está ordenado, pero dudo que te alcance, ya deberías haber notado el orden pero si no lo notaste, será porque tienes un concepto diferente y habrá que verlo. Pero con todo el respeto del mundo ¿cómo sé que no me estás tomando el pelo o algo? Porque parece ser el caso. Si no hubiera puesto los cuadros o hubiera desparramado las funciones sin clasificación alguna, vale, habría desorden, te daría la razón. Pero si habiéndolas clasificado como he descrito dices que está todo desordenado...

-----------------

Indentación:
"Este término significa mover un bloque de texto hacia la derecha insertando espacios o tabuladores, para así separarlo del margen izquierdo y mejor distinguirlo del texto adyacente; en el ámbito de la imprenta, este concepto siempre se ha denominado sangrado o sangría."

No conocía el término, pero es claro y yo lo tengo así, pero en el post aparece mal ¿cómo hago para que aparezca bien?

Otra cosa que puede haber ocurrido es que el espacio aumentó, lo cual no es culpa mía tampoco, si sucede cuando lo pego en otro lado.

-----------------

Estructura:
Dices que carece completamente de ella. Wow, si un genio se propusiera lograr tal nivel de imperfección creo que no lograría mi hazaña. Para mí la estructura está relacionada con la organización, que ya describí, pero googlé por las dudas y encontré esto:
http://es.wikipedia.org/wiki/Estructura_de_datos
No entiendo bien lo que dice pero parece que es definir las variables dentro de "algo".

Código:
 Estruc Estructura,Miembro1:Entero,Miembro2:Cadena,Miembro3:Byte
 Var Variable:Estructura
 Variable.Miembro1 = 40000
 Variable.Miembro2 = "Hola Mundo"
 Variable.Miembro3 = 255
 Mensaje(Variable.Miembro2) ' Muestra "Hola Mundo"
Yo lo haría así:
Miembro1 = 40000
Miembro2 = "Hola Mundo"
Miembro3 = 255

Lo que dice mensaje no entiendo qué es. Si hay que mostrar un mensaje uso trace -en javascript creo que es alert- o creo un cuadro de texto que muestre una variable y modifico esa variable lo cual hace que el texto se modifique también.

¿Por qué es tan importante "la estructura"? ¿lo que dices está relacionado con el artículo que puse o no? ¿con esto
http://es.wikipedia.org/wiki/Dise%C3%B1o_estructurado
?
Ahí dice muchas cosas, yo no tengo idea y nunca tuve que usarlas. Aprendí con Basic y lo único que se hacía era asignar acciones en cierto orden. A veces repeticiones, a veces "ir a", lo cual se dice que no debe hacerse pero si me sirve lo hago y punto, no es un delito. Nunca necesité "definir variables sin apoyar los codos en la mesa", ni cursilerías como esas.

-----------------

Prolijidad:
Me suena a algo subjetivo. Pero está organizado. En el pseudocódigo definí las funciones usando _ cuando había palabras diferentes, es decir podría haberlas escrito todas seguidas pero no, intenté ser prolijo, no obstante se dice que mi código carece totalmente de prolijidad. En mi código no sé si se pueden usar _ pero cuando hay 2 palabras importantes les puse mayúscula. Etc.

¿Qué más se pretende?

-----------------

Coherencia:
Dices que no hay, bueno, tenés razón, el programa no funciona o funciona de forma totalmente inesperada, tenés razón.

-----------------

Cohesión:
http://es.wikipedia.org/wiki/Dise%C3...#Cohesi.C3.B3n
Parece ser independencia. Aunque en mi caso no sé si se trata de módulos. Mis funciones tienen independencia respecto a otras y si no la tienen es porque esa otra es una parte que se usa también en otras funciones.
Ej:
Función 1:
Oscurecer pantalla
Ocultar botones
Agregar ventana tipo Lista

Función 2:
Oscurecer pantalla
Ocultar botones
Agregar ventana tipo Operadores

Función 3:
Oscurecer pantalla
Ocultar botones
Agregar ventana tipo Comparadores

Llegado ese punto pienso que resulta conveniente crear una función para las partes que se repiten en cada función. Luego tendré 4 funciones de las cuales 3 dependerán de 1.

¿Cual es el problema?

Cita:
2 - Estás usando una cantidad absurda de identificadores y no explicas en ningún momento qué son. No tengo idea de qué representa "Lines.Line"+A o qué hace la instrucción set (B+".SitVal", eval(C+"Rep")); porque no explicas qué es B, ni SitVal, ni C, ni Rep.
Me parece que es irrelevante, lo importante es si se pueden unir las funciones o no... Cuando los identificadores de cada función son diferentes eso quiere decir que esa parte de las funciones no se puede unir o que si se puede sería con eval o algo por el estilo. Como tú mismo dices son bastantes y me tomaría bastante -no más que responderte, eso sí- decirlo. Además he puesto el pseudocódigo.

Mira cuando hay un . significa que hay algo contenido. Por ejemplo Lines.Line significa que Line está contenido en Lines. O sea una película está contenida en otra. Le digo objetos suponiendo que era más claro, pero a estas alturas no sé.

Las comillas significa que no cambia, el A es sustituído por el valor de dicha variable y al sumarse queda Lines.Line1 por ejemplo si A es 1.

Cada línea que se agrega tiene un nombre diferente.

Tú mismo dices que no entiendes, y yo entiendo, a mí por ahí me pasaría lo mismo, pero no creo que haya que entender tanto, detalladamente.

La instrucción que mencionas set (B+".SitVal", eval(C+"Rep")) no existe. Es esta:
set (B+".SitVal", eval(C));
o esta:
set (B+".SitRep", eval(C+"Rep"));

B está definida. Capáz que no leíste desde la Dependencia 0 como había comentado. Y por ahí debí decir que ese tipo de variables (A, B, C, etc) tienen un uso variable o sea son contadores o abreviadores o copias de un resultado para no calcular de nuevo. Pensé que se darían cuenta de eso, ahí sí por ahí reconozco mi error, pero también es que quería evitar extenderme.

B es "Lines.Line"+A o sea una referencia a la ubicación de las variables. Es como si eso fuese una dirección en la computadora C:\Windows\Carpeta1.

SitVal es el nombre de una de las variables. Como ves tiene un . adelante o sea está dentro de una película.

C también está definida:
C = eval("SitID"+A);

Te lo puedo explicar pero creo que es irrelevante en la cuestión. El resultado puede ser "H1", "V2", etc.

Rep está relacionado con representación y se usa en varios sitios esa palabra (Rep), no es tan sencillo explicarlo y tampoco creo que sea tan relevante.

Cita:
3 - Tus comentarios no tienen absolutamente nada que ver con nada. Por ejemplo esto:

// p es parte; también usada por Func ReaddCond1Line
// ReaddCond2Lines, ReaddCamLine
A = A+1;
B = "Lines.Line"+A;

Estás hablando de "p", pero no hay ningún identificador "p" en ningún lado en ese código. Tu comentario es completamente irrelevante e incomprensible.
Porque no leíste bien y/o a propósito no citaste lo que está antes del comentario:
Cita:
function ReaddSitLinep () {
// p es parte; también usada por Func ReaddCond1Line
// ReaddCond2Lines, ReaddCamLine
Cita:
4 - Usas nombres de variables totalmente indescriptivos como "A", "B", "C" que nadie jamás aparte de vos mismo puede tener idea de qué representan.
He dicho el motivo ahora, más arriba, pero en eso sí te doy bastante razón.

Cita:
5 - Todo tu código tiene muy poco sentido, en general. "no va a ningún lado". No "hace nada". Solo declaras variables sin ninguna estructura, declarás funciones que no está claro cual es el objetivo de cada una, y en general no se entiende qué es lo que estás tratando de hacer.
¿Has visto la muestra? Ok, dame un tiempo y te voy a dar diferentes muestras, cada una con una función faltante, diferente cada una, y si así no ves lo que hacen -y por qué son importantes en el programa- ya no es mi problema xP

Lo que hacen está escrito en el cuadro del código (Readd/Add/Remove líneas, y son 3 cuadros diferentes no es que estén escritos así todos juntos), en el nombre de la función (ejemplo: ReaddSitLines reagrega lineas tipo situación), en el pseudocódigo y en la respuesta que te di. Y lo puedes ver en la muestra.

Cita:
tus planteos y tu código son un sinfin de divagues sin relación
Suficiente, no volveré a leer lo que escribas.

Si alguien quiere hacer el favor de explicar las cosas que dijo el señor este, gracias, pero yo no pienso volver a leerlo porque estoy hasta la coronilla de leer expresiones ofensivas. Algunas tolero, pero tantas no. Esta no es la única, esta es la que derramó el vaso.

Última edición por Tachikomaia; 26/05/2015 a las 04:19