jueves, 17 de septiembre de 2020
miércoles, 12 de agosto de 2020
Mutate Testing en javascript
En la comunidad de aprendices de LeanMind se comentó la posibilidad de introducirse en el mutating testing en javascript.
Hace unos meses terminé de leerme el libro de Carlos Blé sobre TDD y me apunté para estudiar mutating testing.
Lo primero que vi fue este video de Carlos Buenosvinos porque no sabía absolutamente nada.
Encontré varias librerías para hacer mutate testing con javascriot, pero la que más me convenció fue Stryker, porque tiene un activa comunidad que sigue desarrollando. Tiene tests y el código que estuve mirando muy por encima, no me pareció malo.
Me encontré con un video de codemanship que me ayudó muchísimo a entender con más profundidad el mutate testing y la librería Stryker.
Yo creo que esta práctica te ayuda a encontrar casos no contemplados, para generar una red de pruebas en las que tengamos más confianza. Creo que se puede hacer uso de esta práctica una vez que tengamos ya terminada el funcionalidad. No creo que una buena idea lanzarlos cada vez que hagamos un cambio en el código. Creo que es algo a tener en cuenta para nuestros desarrollos, igual que tenemos un analizador de código estático u otros elementos que nos ayudan con nuestros código.
viernes, 17 de abril de 2020
create a super-user in postgres
=# SELECT usename FROM pg_user;
=# ALTER USER <user_name> WITH SUPERUSER; ALTER ROLE
=# \du
martes, 14 de abril de 2020
Técnica de las costuras y testear clases estáticas.
--> SUT
public class LoginManager
{
private IReadOnlyCollection<string> users;
public LoginManager()
{
users = new[] { "john", "clare", "Mary", "Tom" };
}
public bool IsLoginOk(string user, string password)
{
log(user);
return users.Contains(user);
}
protected virtual void log(string user)
{
Logger.Log(user);
}
}
public static class Logger
{
public static void Log(string message)
{
}
}
--> Test
public class LoginManagerShould
{
private LoginManagerTesteable loginManager;
[SetUp]
public void SetUp()
{
loginManager = new LoginManagerTesteable();
}
[Test]
public void return_false_when_user_is_empty()
{
var result = loginManager.IsLoginOk(String.Empty, "password");
Assert.IsFalse(result);
}
[Test]
public void return_false_when_user_is_null()
{
var result = loginManager.IsLoginOk(null, "password");
Assert.IsFalse(result);
}
[Test]
public void return_true_when_user_is_valid()
{
var result = loginManager.IsLoginOk("Tom", "password");
Assert.IsTrue(result);
}
}
class LoginManagerTesteable : LoginManager
{
protected override void log(string user)
{
}
}
install openjdk-13
add a repository -> sudo add-apt-repository ppa:openjdk-r/ppa
install openjdk-13 -> sudo apt install openjdk-13-jdk
domingo, 5 de abril de 2020
procedural polymorphism
And this post
The main idea behind this concept is replace the same kind of conditions by objects. Because with this conditions we are mixing two different concepts (breaking single responsibility principal).
I've applied this concept in this project
jueves, 19 de diciembre de 2019
learning resources
learncodeacademy videos
Patterns And Principles:
- http://principles-wiki.net/
- David Gómez - Midiendo la calidad de código
- No Tiene Nombre 31 - Algunas experiencias y opiniones sobre Domain Driven Design
- Alfredo Casado - OOP & Connascence
eXtreme Programming:
- https://github.com/xpeppers/starway-to-orione
- Eduardo Ferro - Agilidad Hacia la entrega continua ¿Qué te lo impide?
- Luis Rovirosa - Desarrollando a velocidad de crucero
Reactjs:
- https://developer.microsoft.com/en-us/fabric#/components
- https://www.edx.org/course/react-router-and-redux
Achitecture
- .NET Application Architecture - Reference Apps
- Serverless apps Architecture with Azure Functions
- Starting poing for Clean Architecture
- Robert C. Martin - Clean Architecture
Craftmanship:
- Eduardo Ferro - Simplicidad para desarrolladores
- Modesto San Juan - TDD mi cuaderno de recetas
- Be SOLID my Tests - Mavi Jiménez
- S.O.L.I.D Python - Eduardo Ferro
- Carlos Bastos - Empezando por el principio (de diseño)
- Xavi Gost - Refactoring a Patrones, kata Mars Rovers
- Xavi Gost - Refactoring a Patrones, kata Gilded Rose
- Xavi Gost - Refactoring a Patrones, Kata Bowling
- Xavi Gost - Kata Potter
- Xavi Gost - Test Doubles
- Xavi Gost - SOLID
Non Tech:
- Katia Aresti - Entrevistas al borde de un ataque de nervios
Health
- Ergonomics Expert Explains How to Set Up Your Desk
- Prácticas saludables en la vida del programador
- Máximo Rendimiento Personal para Ingenieros