domingo, 5 de abril de 2020

procedural polymorphism

New interesting concept, that I discovered when I read Understanding the Four Rules of Simple Design Corey Haines

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

freeCodeCamp videos
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

sábado, 23 de noviembre de 2019

Devil´s advocate technique

This is, in a nutshell, the Devil's Advocate technique. The intent isn't to break the software by sneaking in defects, but to explore how effectively the test suite detects bugs. In the current (simplified) example, the effectiveness of the test suite isn't impressive.
                                   source: https://blog.ploeh.dk/2019/10/07/devils-advocate/

viernes, 8 de noviembre de 2019

Some notes about Pluralsigth course: Encapsulation and SOLID by Mark Seemann

 - CQS for getting code simpler
 - More reading then writing code
 - Hide information (not public setters)
 - Not invalid states
 - Fail Fats
 - Never return null
 - SOLID, for making code more maintainable
rigidity: design difficult to change, easy to break
viscosity: no needed complexity, overkill design (simplicity)
 - Developers have  a tendency  to attempt  to solve specific problems with general solutions by Greg Young
 - Instead of being general code should be specific. by Greg Young
 - Following the SRP, each concrete class is very specific
 - Abstraction is the elimination of the irrelevant and the amplification of the essential by Robert C. Martin
 - Start with concrete behavior and discover abstractions as commonality emerges by rules of three
 - Favor composition over inheritance for example by strategy, decorator, ... patterns.
 - Don´t override inherited base class methods (Liskov Substitution Principle)
 - Implements all methods of inherited interface, don´t remove features from inherited class throwing NotSupportedException (Liskov Substitution Principle)
 - Prefer a tons of small, concrete, trial, simple and granular classes with a low level of abstraction, than a few classes with a lots of code.
 - Client should not depend on method that they do not use (Interface segregation principal)
 - Small interface with one operation.