{"id":816,"date":"2022-01-21T00:00:00","date_gmt":"2022-01-20T23:00:00","guid":{"rendered":"https:\/\/programaraciegas.net\/?p=816"},"modified":"2022-01-02T09:27:00","modified_gmt":"2022-01-02T08:27:00","slug":"principios-de-programacion-solid","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=816","title":{"rendered":"Principios de programaci\u00f3n SOLID"},"content":{"rendered":"<p>En el dise\u00f1o y desarrollo de software el paradigma de la programaci\u00f3n orientada a objetos (POO) es el paradigma m\u00e1s utilizado a la hora de desarrollar software.<\/p>\n<p>En la programaci\u00f3n orientada a objetos podemos dividir un programa en muchas entidades con propiedades y funciones que se relacionan entre ellas.<\/p>\n<p>La persona encargada de codificar cada una de estas clases y relaciones tiene total libertad a la hora de definir qui\u00e9n, c\u00f3mo y d\u00f3nde se resuelve cada mini problema.<\/p>\n<p>Esta libertad de codificaci\u00f3n facilita la resoluci\u00f3n de los problemas que debe resolver una aplicaci\u00f3n pero cuando el proyecto es grande la complejidad en el mantenimiento y ampliaci\u00f3n de una aplicaci\u00f3n crece notablemente haciendo muy dificultoso utilizar programaci\u00f3n orientada a objetos de forma libre en proyectos de gran envergadura.\u00a0<\/p>\n<p>Esto se debe a que las clases encargadas de un problema se vuelve demasiado grandes y las relaciones y dependencias entre clases cada vez son m\u00e1s complejas.<\/p>\n<h2>Principios para mantener el orden en nuestro c\u00f3digo<\/h2>\n<p>A principios de la d\u00e9cada de los 2000 <a href=\"https:\/\/es.wikipedia.org\/wiki\/Robert_C._Martin\">Robert C. Martin<\/a> propuso una metodolog\u00eda de codificaci\u00f3n basada en 5 principios.<\/p>\n<p>Tomando la primera letra de cada uno de esos principios sale el nombre de esta metodolog\u00eda que conocemos por <a href=\"https:\/\/es.wikipedia.org\/wiki\/SOLID\">principios SOLID<\/a>.<\/p>\n<p>Estos principios son:<\/p>\n<ul>\n<li>S: Single responsibility principle o Principio de responsabilidad \u00fanica<\/li>\n<li>O: Open\/closed principle o Principio de abierto\/cerrado<\/li>\n<li>L: Liskov substitution principle o Principio de sustituci\u00f3n de Liskov<\/li>\n<li>I: Interface segregation principle o Principio de segregaci\u00f3n de la interfaz<\/li>\n<li>D: Dependency inversion principle o Principio de inversi\u00f3n de dependencia<\/li>\n<\/ul>\n<h2>Razones para utilizar SOLID<\/h2>\n<p>Aplicando estos principios a la hora de codificar un proyecto software mejorar\u00e1 su legibilidad y su mantenimiento tanto por desarrolladores individuales como por equipos de desarrollo.<\/p>\n<p>En la industria actual del software el trabajo en equipo es algo imprescindible para un buen profesional y saber codificar un proyecto para que tenga un buen nivel de mantenimiento para incorporar nuevas caracter\u00edsticas o localizar y resolver problemas en el c\u00f3digo es una habilidad muy solicitada por los equipos de desarrollo de software.\u00a0<\/p>\n<p>Veremos cada uno de estos principios en futuros art\u00edculos publicados en este blog.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el dise\u00f1o y desarrollo de software el paradigma de la programaci\u00f3n orientada a objetos (POO) es el paradigma m\u00e1s utilizado a la hora de desarrollar software. En la programaci\u00f3n orientada a objetos podemos dividir un programa en muchas entidades con propiedades y funciones que se relacionan entre ellas. La persona encargada de codificar cada &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=816\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abPrincipios de programaci\u00f3n SOLID\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,6],"tags":[387,87,386,388],"class_list":["post-816","post","type-post","status-publish","format-standard","hentry","category-metodologiafilosofia","category-programacion","tag-poo","tag-programacion-2","tag-solid","tag-teoria"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=816"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/816\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}