[CLMNET] Hands On Lab.- Desarrollo guiado por pruebas

El proximo dia 29 de Marzo contaremos con la presencia de Hadi Hariri con una estupenda sesion de TDD, ya oodeis apuntaros:

 
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373678&Culture=es-ES

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373678&Culture=es-ES

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373678&Culture=es-ES

 

No se puede mostrar la imagen “https://mseventsww.microsoft.com/BannerImages/418b5849-f9e8-4305-8e4f-fe2ce586b214.jpg” porque contiene errores.

CLMNET.- Hands On Lab.- Desarrollo guiado por pruebas (TDD)

 

Descripción:

 

Hadi
Hariri realizará un Hand On Lab (Taller práctico guiado) con una charla
extendida de desarrollo utilizando TDD (Test Driven Development o
desarrollo guiado por pruebas), con un enfoque práctico, con ejemplos,
de cómo resolver casos reales incluyendo aspectos de metodología y de
desarrollo en equipo como:


      Pruebas unitarias

      Mocks (prototipos)

      Arquitectura en capas incluyendo MVC

  

Ponente: Hadi Hariri

 

Fecha    Sábado 29 marzo del 2008

 

Horas:     9:00h  a 13:00

 

Lugar:     Laboratorio Software 5, Escuela Politécnica superior de Albacete (EPSA)

 

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373678&Culture=es-ES

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373678&Culture=es-ES
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373678&Culture=es-ES
 

 

Charles Simonyi o como escribir codigo

 Dado que llevo un tiempo sin escribir, la mejor forma que me ha
parecido de retomar la marcha es recordando (en mi opinion) al padre de
la notacion en la programacion. Este caballero de origen hungaro, ha
estado trabajando durante muchos años en proyectos de Microsoft de los
menos conocidos, Word, Excel, … no se si os sonaran 😉

Charles Simonyi

Y no vamos a hablar sobre su proximo viaje espacial, si no sobre la  “Notacion Hungara”, obviamente en la epoca que se planteo esta nomemclatura se basaba en usar unos prefijos antes de cada variable:

Prefijo Significado

a de ‘array’. Para vectores/matrices/listas de n dimensiones ordenados escalarmente.
b de ‘booleano’. Para variables que tomen sólo dos tipos de valores.
c de ‘char’. Para el tipo primitivo de carácter alfanumérico individual.
d de ‘double’. Para tipos numéricos de alta precisión, como double o float.
e de ‘event’. Para eventos.
f de ‘función’. Sólo la utilizaremos delante de funciones
cuando se traten de funciones que se añadan como observadores de un
evento (ya que usar esta notación para cualquier método o función sería
bastante engorroso).
g de ‘delegated’. Para tipos delegados.
h de ‘hashtable’. Colecciones ordenables mediante clave hash (hUsuarios[“juan23”]).
i de ‘int’. Para números enteros en general, tanto enteros normales como aquellos tipos enteros de más capacidad (como long).
l de ‘lock’. Para objetos de control que nos faciliten el uso de exclusiones mutuas, candados y semáforos.
n de ‘enum’. Para tipos enumerados.
o de ‘objeto’. Para objetos en general (no se debe usar la
notación húngara para distinguir entre tipos de objetos, salvo escasas
excepciones).
p de ‘puntero’. Para lenguajes con aritmética de punteros.
s de ‘string’. Para variables de tipo cadena de texto, ya
sean nativos o arrays de chars. Este tipo de datos es muy habitual en
lenguajes sin lógica de punteros. Si se usara el objeto de tipo
“String” en estos casos, acudiremos a este identificador en lugar de al
‘o’ de objeto.
t de ‘struct’. Similar al ‘o’ de objetos, éste se usaría
para variables de tipo struct en general (es decir, objetos de tipo
primitivo).
v de ‘variable’. Para variables que adquieran diferentes
tipos de valores. Normalmente sólo acudiremos a esta opción en
lenguajes no tipados (como JavaScript/EcmaScript).
La usaremos cuando no estemos seguros del tipo de valor que albergará
una variable. También puede valer para objetos que tengan un tipo
genérico T.
y de ‘byte’.

 

   
El detalle es que la programacion avanza, y al crearse nuevos objetos,
tipos, … nos encontramos con nuevas posibilidades, y lo peor, que la
tecnologia nos permite (en mi opinion) la aberracion de llamar a
proyectos que generan dll de la forma “La_Libreria v1.0.dll”
vale, muy bien, aplaudo la posibilidad de estas opciones, pero cuando
eres desarollador el echo de tenerque picar Shift +  guion , el punto,
los espacios, …. seamos realistas ES UN INCORDIO !! , y mas,
si queremos usar la gran capacidad de cambio de plataforma del .NET
hemos de recordar que no todos los sistemas operativos interpretan
igual los nombres, sin ir mas lejos la diferenciacion de Mayusculas y
Minisculas.

    La solucion de este tipo de inconvenientes es
obvio, evolucionar la notacion hungara y readaptarla a nuestras nuevas
clases. Si queremos simular un espacio se hace cambio de minusculas a
mayusculas ( asiDefinimosEspacios ), simpre empezar a escribir con
minusculas, cada objeto lo definiremos con dos o tres letras delante.
Por ejemplo:

  • txtCuadrado: para los TexBox.
  • cmbCombo: para los ComboBox.
  • rbOpcion:  para los RadioButton.
  • chkOpcion: para los CheckBox.
  • …..

 

    De esta forma el leer codigo de otras personas, junto con los
comentarios, nos sera muuucho mas sencillo, hasta el punto en el que
solo sepamos diferenciar quien lo has escrito por el nombre de autor
que ponga en el comentario y la complejidad de sus algoritmos.