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
domingo, 5 de abril de 2020
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
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
jueves, 28 de noviembre de 2019
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/
source: https://blog.ploeh.dk/2019/10/07/devils-advocate/
jueves, 14 de noviembre de 2019
miércoles, 13 de noviembre de 2019
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.
- 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.
Suscribirse a:
Entradas (Atom)