Ver por etiquetas
Todas las etiquetas »
Desarrollo (
RSS)
Los Supertesters son a los testers lo que Superman es a un hombre común y corriente. Básicamente la diferencia es que estos son “Super” mientras que el resto no lo son y, al igual que Superman, los Supertesters parecen venir de otro planeta y tenerlos entre nosotros es un gran privilegio. Veamos que es lo que hace a un tester ser “Super”: Poderes A diferencia del resto de los testers, un Supertester tiene poderes especiales que lo hacen distinguirse. Estos poderes los constituyen un gran conocimiento...
Es fácil entender por qué los hombres de negocio prefieren cantidad de desarrolladores sobre calidad de desarrolladores, es por lo que yo llamo el pensamiento lineal en la administración y que no voy a discutir nuevamente aquí pero solo diré que esa tendencia lleva implícita la idea de que programar no es tan complicado y por lo tanto cualquier programador podrá hacerlo bien. Lo que cuesta entender es el por qué Ivar Jacobson dice que el 80% del trabajo de programación es algo mecánico (“it is not...
Les dejo la tercera entrega de la serie sobre excepciones. Saludos
Luego de revisar los requerimientos de la aplicación en la que vengo trabajado estos últimos 6 meses, tuve que pensar cómo plantear la arquitectura de la misma teniendo en cuenta lo siguiente: La aplicación es muy muy muy grande, eso era lo primero que saltaba a la vista en los requerimientos. Al día de hoy, esta cuenta con 1.119 vistas, 797 controladores y un número similar de modelos, entre otras cosas. El equipo iba a ser grande y la idea era que trabajaran lo más focalizados posible en...
Les dejo el primero de una serie de videos sobre excepciones que estoy creando para el equipo de desarrollo al que pertenezco. Espero les guste. Saludos
Muchas veces uno cree que el código que .Net Reflector muestra es fiel reflejo de lo que el desarrollador escribió, pero obviamente eso no puede ser cierto ya que esta herramienta toma el IL de un ensamblado y trata de mostrar su equivalente en los lenguajes que se le pida (C#, VB.NET, F# entre otros). Claro que muchas veces hacen tan buen trabajo que uno se olvida de eso. Como a ILSpy le falta una vueltita de rosca en este aspecto, esto se hace más evidente ya que uno termina...
Quiero mostrar cómo es posible modificar nuestros assemblies ya compilador (no no no, antes que los procese el JIT) para agregarles o quitarles código IL. En este caso, voy a ilustrar esto mediante la creación de un sencillísimo Profiler. Trabajos previos Este está inspirado en un artículo muy interesante, aunque algo viejo, de Gabriel Schenker sobre como crear un profiler con Mono.Cecil para aplicaciones Silverlight ( parte 1 y parte 2 – nos debe la...
Algunos compañeros me pidieron que explicara las expresiones lambda en un video. Este es muy básico y usa un lenguaje inexacto para hacerlo lo más entendible posible para aquellos que no conocen con suficiente profundidad .Net.
Al menos en mi país, a los principiantes de esta industria se los llama juniors . Esa es la categorización con la que se ingresa a una empresa si no se cuenta con experiencia y conocimientos demostrables que justifiquen una categoría superior. La idea es que con el tiempo y luego de ir adquiriendo los conocimientos necesarios, un junior va a ir progresando paulatinamente transitando por las distintas categorías hasta convertirse en un senior o similar . La verdad es que en muchos casos se espera...
A mi anterior entrada la titulé “Las plantillas T4 son basura” cosa que respondió más a mi estado de bronca contra éstas que a su verdadero valor como herramienta. Muchos me preguntaron sobre el por qué de tal calificación y la verdad es que ese por qué es demasiado largo de explicar pero voy a mostrar la punta del ovillo para que a quien le interese pueda descubrirlo por sí solo. Veamos un par de ejemplo muy sencillos, el primero...
Actualmente tengo a cargo un proyecto en el que somos 13 desarrolladores en distintos lugares de Argentina y en Colombia. Por esta razón, lo primero que pensé es en armar un servidor de integración continua. Cuando lo planteé, la condición fue que no debía requerir licencias de software (salvo la de Windows). No tenía mucho tiempo para esta tarea así que fui a lo conocido: CruiseControl.Net, Subversion, MSBuild, NUnit, Wix, TortoiseSVN y un sin fin de scripts, xslts y herramientas propias. Hasta...
En mi proyecto, luego de concientizar al equipo sobre la importancia de mantener el build siempre saludable, hemos pasado de tener un 71% de commits correctos a un 95% en solo 17 días. Sé que el número es bueno, y probablemente se deba a que la base de código no es grande, no obstante me gustaría saber si alguien tiene sus números para compartir. Otros puntos que estarían bueno saber son si usan TFS o alguna otra herramienta que no esté integrada, el tamaño del equipo de desarrollo, promedio de commits...
KeyPadawan es una herramienta muy simple que permite visualizar lo que se escribe, en la pantalla. Tiene 3 modos de ejecución: Normal: Muestra tanto las teclas como los atajos que se utilizan. Shortcuts: Solo muestra los atajos. Raw: Muestra todas la teclas tal y cual las recibe desde el sistema operativo. El código está alojado en Github [ https://github.com/lontivero/KeyPadawan.git ]. Ya compilado pueden encontrarlo aquí . Cualquier sugerencia es bienvenida.
La dinámica de una empresa puede evaluarse quizás por el número y diversidad de los canales de comunicación que ofrece a su gente. Así, en empresas en las que la comunicación tiene canales formales bien definidos, la cooperación entre equipos y áreas siempre es más difícil que en aquellas con diversidad de canales horizontales. Uno de esos canales los constituyen las listas de correo (viejo pero actual, todavía). Y ayer he tenido una muestra de ello. Resulta que en la semana he tenido que realizar...
En mi anterior entrada mostraba distintas alternativas que podíamos utilizar para volver al siguiente fragmento de código fácilmente testeable. Obviamente existe una infinidad de alternativas que no he abordado como los frameworks de aislamiento, los servidores de smtp que no envían los mails y muchas más. La idea aquí es mostrar el por qué este código no es un duro de testear. Obviamente es porque tiene una dependencia con la clase SmtpClient la cual se comunica mediante un socket con el ambiente...
Veamos el siguiente código: Lo que buscamos crear al menos una prueba unitaria para este. ¿Cómo lo hacemos?. Bueno, antes quiero plantear algunos supuestos: Si bien parece un TransactionScript, hagamos de cuenta que no lo es. El hecho de tener solo un método y ningún campo, propiedad o evento es solo para hacer de este un ejemplo ultra sencillo. Por lo tanto pensemos que sí tiene campos, propiedades y varios métodos. Si bien usamos un System.Net.Mail.SmtpClient, la idea es no limitarse solo a esta...
La creación de pruebas unitarias requiere al menos lo siguiente: Un framework de pruebas unitarias que debemos dominar. Por lo general son muy simples. Código testeable. Típicamente esto implica código susceptible de ser “aislado”. Nada que decir con respecto al primer punto. Ahora, en cuanto al segundo punto, ¿qué significa que el código pueda ser “aislado”?. Bueno, esto significa que sus dependencias deben poder ser reemplazadas. Esto lo logramos bien por medio de inyectarle sus dependencias o...
Voy a tomar prestado las palabras señal y ruido del campo de las telecomunicaciones para explicar una situación que nos afecta de cerca. Entendamos la palabra señal , en el contexto de esta entrada, como el mensaje, lo importante, lo esencial y como ruido lo indeseable, lo molesto, lo que encarece y entorpece al mensaje. La señal, o el mensaje en este caso, que deseamos transmitir, por lo general todos los que hemos estado en esto durante algún tiempo (y que nos hemos equivocado terriblemente una...
Si el compilador de C# pudiera utilizarse como cualquier assembly, podríamos generar código y compilarlo en tiempo de ejecución. Con esto, muchas de las cosas que hoy hacemos mediante CodeDom o Expression trees, las podríamos hacer simplemente concatenando strings (hay maneras mejores). Por ejemplo, imaginemos un framework para crear clases Mock al que llamaremos RinhaMock. Aplicaremos este framework en el siguiente test unitario: 1: [TestClass] 2: public class Tests 3: { 4: public void It_should_send_messages_with_values...
Pensaba acerca de las cosas que podríamos hacer si el compilador de C# fuese un assembly reutilizable (Compilar as a service). Lo primero, y menos original, que se me ocurrió es que podríamos tener algo como JSON pero para C# en lugar de Java Script. 1: class Program 2: { 3: static void Main( string [] args) 4: { 5: const string data = @"results[" "professional" "] = 6: new 7: { 8: FirstName = " "Juan Pablo" ", 9: LastName = " "Ibañez" "...
Más artículos
< Página anterior -
Página siguiente >