Golang principios SOLID

in #programacion6 years ago

                            


La información contenida en el siguiente post fue tomada de la pagina de SOLID principles Dave Cheney.

Por mi parte me encargare de realizar la traducción y dar mis comentarios al respecto, esto es un resumen de el mismo escritor original si quieren leer el documento completo los invito a visitar el link que les deje en el primer renglón.

El principio de responsabilidad única (SRP) incentiva a estructurar las funciones, tipos y métodos dentro de paquetes que exhiban una cohesión natural; lo tipos pertenecen juntos, las funciones sirven un único propósito.

El principio de Abierto/Cerrado incentiva a componer tipos simples dentro de otros mas complejos haciendo uso de "embedding".

El principio de sustitución de Liskov incentiva a expresar las dependencias entre los paquetes en términos de interfaces, tipos no concretos.Al definir interfaces pequeñas, podemos tener mas confianza en que al implementarlas cumplirán satisfactoriamente sus contratos.

El principio de sustitución de interfaces toma esta idea mas lejos e incentiva a definir funciones y métodos que solo dependan del comportamiento que necesitan. Si una función solo requiere un parámetro de un tipo interfaz con un método simple, entonces lo mas seguro que esta función solo tenga una sola responsabilidad.

El principio de inversión de dependencia incentiva a mover el conocimiento de las cosas que tu paquete dependa a partir de tiempo de compilación en Go, vemos esto con una reducción en el numero de sentencias "import" utilizadas en un paquete en tiempo de ejecución

Si quisiéramos realizar un resumen de esta platica probablemente seria; las interfaces te permiten aplicar los principios SOLID en los programas de Go

Esto es debido a que las interfaces permiten a los desarrolladores de Go describir que es lo que sus paquetes proveen, no como lo hacen. Esto es solo otra manera de hablar de "desacoplamiento", lo cual es de hecho la meta, por que el software que esta flojamente acoplado es un software fácil de cambiar.

Les dejo esto para que se vayan metiendo un poco mas a los "internals" ya que para trabajar con Golang es importante conocer todo esto, debido a su manera de trabajar la OOP hay que entenderlo como algo diferente pero enormemente funcional. 

Saludos.

 Now go and code around! 

Sort:  

Congratulations @arkangelb! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Gracias Alberto de trata de apoyar a los compañeros que tiene una dificultad para aprender en ingles ya que existe mucha documentacion pero casi nada en español!

continúen con el buen trabajo. Nosotros en BeyondBitcoin Castellano hacemos lo mismo aplicado al mundo de las criptomonedas.

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 60767.97
ETH 2352.24
USDT 1.00
SBD 2.51