Guia Trabajos Practicos - Departamento de Computación ...
Guia Trabajos Practicos - Departamento de Computación ...
Guia Trabajos Practicos - Departamento de Computación ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Programación Orientada a Objetos Facultad <strong>de</strong> Ciencias Exactas - UBA<br />
• Los métodos que <strong>de</strong>vuelven el estado <strong>de</strong> una variable (getters) <strong>de</strong>berían tener <strong>de</strong> nombre el <strong>de</strong> la variable.<br />
• Los métodos que establecen el valor <strong>de</strong> una variable (setters), <strong>de</strong>berían tener <strong>de</strong> nombre el <strong>de</strong> la variable, seguido <strong>de</strong> un<br />
: (dos puntos).<br />
• No utilice un mismo nombre <strong>de</strong> variable temporaria <strong>de</strong>ntro <strong>de</strong>l mismo scope para más <strong>de</strong> un propósito.<br />
• Utilice el siguiente esquema genérico para los métodos:<br />
Selector <strong>de</strong>l Mensaje y nombres <strong>de</strong> Argumentos<br />
“Comentario”<br />
| Variables temporarias |<br />
Sentencias<br />
• Utilice por lo menos un blanco antes y <strong>de</strong>spués <strong>de</strong> los siguientes operadores binarios: * + < = > | := == = y - (usado como operador binario). Omita espacios a ambos lados <strong>de</strong>l operador binario /. Preceda el signo -<br />
(usado como operador unario) con, por lo menos, un blanco.<br />
• Cuando los paréntesis () <strong>de</strong>limitan una expresión o una lista <strong>de</strong> argumentos, <strong>de</strong>je por lo menos un blanco antes <strong>de</strong>l<br />
paréntesis izquierdo y luego <strong>de</strong>l <strong>de</strong>recho, pero no <strong>de</strong>je espacios entre múltiples paréntesis izquierdos o <strong>de</strong>rechos. Esto<br />
aplica también a los <strong>de</strong>limitadores <strong>de</strong> bloque [].<br />
• Deje al menos un blanco luego, pero no antes, <strong>de</strong> una , (coma), un ; (punto y coma), y un : (dos puntos) cuando<br />
forma parte <strong>de</strong> un selector. No <strong>de</strong>je un blanco entre un : (dos puntos) y el argumento <strong>de</strong> un bloque.<br />
• In<strong>de</strong>nte para marcar el anidamiento lógico. Si hay casos alternativos encolúmnelos consistentemente.<br />
• Parta los mensajes <strong>de</strong> varios keywords en múltiples líneas para evitar los line wraps. In<strong>de</strong>nte cada línea.<br />
• Use mensajes en cascada en lugar <strong>de</strong> repetir el objeto receptor, aún el caso en el que el receptor es self.<br />
• En un mensaje en cascada, coloque cada mensaje en línea aparte e in<strong>de</strong>ntado, separados <strong>de</strong>l objeto receptor.<br />
• Los métodos, salvo contadas excepciones, <strong>de</strong>berían tener una longitud máxima <strong>de</strong> entre 6 y 8 líneas. 1<br />
• Limite la longitud <strong>de</strong> las líneas <strong>de</strong> código a 60 caracteres o al ancho <strong>de</strong> la ventana, lo que sea menor.<br />
• Utilice paréntesis extras para simplificar la lectura <strong>de</strong> una expresión complicada. Use paréntesis para hacer el or<strong>de</strong>n <strong>de</strong><br />
evaluación claro y explícito.<br />
“Specifying an object, sending it a message, and getting back another object as the result are the only things<br />
that ever happen in Smalltalk co<strong>de</strong>” – Ted Kaehler, Dave Patterson<br />
Errores comunes con Smalltalk<br />
“Ever tried. Ever failed. No matter. Try again. Fail again. Fail better” – Samuel Beckett<br />
“The only man who never makes mistakes is the man who never does anything” – Theodore Roosevelt<br />
Leer con atención este punto, le ahorrará algunos dolores <strong>de</strong> cabeza posteriormente.<br />
#add: retorna su argumento<br />
En toda collection que crece, #add: retorna su argumento y no el receptor, que es lo que la gente<br />
usualmente asume. Así, se suele escribir:<br />
(c<br />
add: x)<br />
add: y<br />
1 Un análisis <strong>de</strong> la imagen <strong>de</strong> Smalltalk mostró un promedio <strong>de</strong> 7.01 líneas <strong>de</strong> código y 2.25 <strong>de</strong> comentario por<br />
método.<br />
Regla <strong>de</strong>l Objeto en Smalltalk<br />
En Smalltalk cada objeto, incluso una clase, es una instancia <strong>de</strong> alguna clase.<br />
Material <strong>de</strong> lectura y trabajo guia 2011.doc Página 16