11.05.2013 Views

Guia Trabajos Practicos - Departamento de Computación ...

Guia Trabajos Practicos - Departamento de Computación ...

Guia Trabajos Practicos - Departamento de Computación ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!