{"id":36518,"date":"2019-10-31T22:12:07","date_gmt":"2019-10-31T19:12:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\/"},"modified":"2019-10-31T22:12:07","modified_gmt":"2019-10-31T19:12:07","slug":"programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Arquitectura de software y dise\u00f1o de sistemas: panorama general y gu\u00eda de recursos","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hola, colegas.<\/p>\n<p>Hoy se presenta para su consideraci\u00f3n la traducci\u00f3n del art\u00edculo de Tugberk Ugurlu, quien se ha atrevido a exponer de manera relativamente concisa los principios del dise\u00f1o de sistemas de software modernos. Esto es lo que el autor dice sobre s\u00ed mismo en un resumen.<\/p>\n<p><img decoding=\"async\" alt=\"Arquitectura de software y dise\u00f1o de sistemas: panorama general y gu\u00eda de recursos\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDado que es absolutamente imposible abordar en un art\u00edculo tan extenso un tema tan colosal como los patrones arquitect\u00f3nicos + los patrones de dise\u00f1o seg\u00fan el estado de 2019, recomendamos no solo el texto del se\u00f1or Ugurlu, sino tambi\u00e9n los numerosos enlaces que ha amablemente incluido. Si les gusta, publicaremos un texto m\u00e1s especializado sobre el dise\u00f1o de sistemas distribuidos.<\/p>\n<p><img decoding=\"async\" alt=\"Arquitectura de software y dise\u00f1o de sistemas: panorama general y gu\u00eda de recursos\" src=\"\/wp-content\/uploads\/2019\/07\/4ccec9506aedb91bb601ebc32b6762be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Fotograf\u00eda <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">de Isaac Smith<\/a><\/noindex> de Unsplash<\/i><\/p>\n<p>Si nunca se ha enfrentado a desaf\u00edos como el dise\u00f1o de un sistema de software desde cero, al comenzar un trabajo as\u00ed, a veces ni siquiera sabe por d\u00f3nde empezar. Creo que, en primer lugar, es necesario delinear los l\u00edmites para tener una idea m\u00e1s o menos clara de qu\u00e9 es lo que se desea dise\u00f1ar, y luego arremangarse y trabajar sin salirse de esos l\u00edmites. Como punto de partida, se puede tomar alg\u00fan producto o servicio (idealmente uno que le guste mucho) y analizar su implementaci\u00f3n. Puede que se sorprenda de lo simple que parece este producto y de la gran complejidad que en realidad est\u00e1 oculta en \u00e9l. No olvide: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">lo simple suele ser complejo<\/a><\/noindex>, y est\u00e1 bien.<\/p>\n<p>Creo que el mejor consejo que puedo dar a quienes comienzan a dise\u00f1ar un sistema es: \u00a1no hagan suposiciones! Desde el principio, es necesario concretar los hechos conocidos sobre este sistema y las expectativas relacionadas. Aqu\u00ed hay algunas buenas preguntas cuyas respuestas lo ayudar\u00e1n a comenzar el dise\u00f1o:<\/p>\n<ul>\n<li>\u00bfCu\u00e1l es el problema que estamos tratando de resolver? <\/li>\n<li>\u00bfCu\u00e1l es la cantidad m\u00e1xima de usuarios que interactuar\u00e1n con nuestro sistema?<\/li>\n<li>\u00bfQu\u00e9 patrones de escritura y lectura de datos utilizaremos? <\/li>\n<li>\u00bfCu\u00e1les son los casos de fallos esperados y c\u00f3mo planeamos manejarlos?<\/li>\n<li>\u00bfCu\u00e1les son las expectativas sobre la coherencia y disponibilidad del sistema? <\/li>\n<li>\u00bfEs necesario tener en cuenta alg\u00fan requisito relacionado con auditor\u00edas externas y regulaciones?<\/li>\n<li>\u00bfQu\u00e9 tipos de datos confidenciales estamos planeando almacenar?<\/li>\n<\/ul>\n<p>\nEstas son solo algunas preguntas que han sido \u00fatiles tanto para m\u00ed como para los equipos en los que he tenido la oportunidad de participar a lo largo de mi carrera profesional. Si conoces las respuestas a estas preguntas (y a cualquier otra que sea relevante en el contexto en el que trabajas), entonces puedes profundizar gradualmente en los detalles t\u00e9cnicos de la tarea.<\/p>\n<p><b>Establecemos el nivel base<\/b><\/p>\n<p>\u00bfQu\u00e9 entiendo aqu\u00ed por \u00abnivel base\u00bb? En nuestras \u00e9pocas, la mayor\u00eda de los problemas en la industria del software se pueden resolver con los m\u00e9todos y tecnolog\u00edas ya existentes. As\u00ed, al orientarte en este paisaje, obtienes una ventaja al afrontar tareas que otros ya han resuelto antes que t\u00fa. No olvidemos que los programas se escriben para resolver problemas de negocios y usuarios, por lo que nos esforzamos por abordar el problema de la manera m\u00e1s directa y simple (desde la perspectiva del usuario). \u00bfPor qu\u00e9 es importante recordar esto? Tal vez, en tu sistema de coordenadas, prefieras buscar soluciones \u00fanicas para cada problema, ya que piensas: \u00ab\u00bfQu\u00e9 clase de programador soy si siempre sigo patrones?\u00bb En realidad, <b>el arte aqu\u00ed radica en tomar decisiones sobre d\u00f3nde y qu\u00e9 hacer<\/b>. Por supuesto, todos nosotros, de vez en cuando, nos enfrentamos a problemas \u00fanicos, cada uno de los cuales representa un verdadero desaf\u00edo. Sin embargo, si nuestro nivel base est\u00e1 claramente delineado, sabemos en qu\u00e9 gastar nuestras energ\u00edas: en buscar soluciones listas para la tarea que se nos ha encomendado, o en su estudio m\u00e1s profundo y comprensi\u00f3n.<\/p>\n<p>Creo que he logrado convencerte de que, si un especialista comprende bien la arquitectura de ciertos sistemas de software notables, este conocimiento ser\u00e1 invaluable para dominar el arte del arquitecto y construir una s\u00f3lida base en este campo.<\/p>\n<p>Bien, \u00bfpor d\u00f3nde empezar? <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> tiene un repositorio en GitHub llamado <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, a partir del cual puedes aprender sobre el dise\u00f1o de sistemas a gran escala y tambi\u00e9n prepararte para entrevistas sobre este tema. En el repositorio hay una secci\u00f3n con ejemplos <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">de arquitecturas reales<\/a><\/noindex>, donde, en particular, se analiza c\u00f3mo abordan el dise\u00f1o de sus sistemas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">algunas empresas bien conocidas<\/a><\/noindex>, por ejemplo, Twitter, Uber, etc.<\/p>\n<p>Sin embargo, antes de abordar este material, profundicemos en los desaf\u00edos arquitect\u00f3nicos m\u00e1s importantes que enfrentan en la pr\u00e1ctica. Esto es crucial, ya que hay que especificar MUCHOS aspectos de un problema complejo y multifac\u00e9tico, y luego resolverlo dentro de la regulaci\u00f3n vigente en este sistema. <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">Jackson Gabbard<\/a><\/noindex>, ex empleado de Facebook, grab\u00f3 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">un video de 50 minutos sobre entrevistas dedicadas al dise\u00f1o de sistemas<\/a><\/noindex>, donde comparti\u00f3 su propia experiencia revisando cientos de solicitantes. Aunque el video se centra expl\u00edcitamente en el dise\u00f1o de grandes sistemas y en los criterios de \u00e9xito importantes al buscar un candidato para dicho puesto, seguir\u00e1 siendo un recurso exhaustivo sobre qu\u00e9 aspectos son m\u00e1s relevantes al dise\u00f1ar sistemas. Tambi\u00e9n sugiero <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">un resumen<\/a><\/noindex> de este video.<\/p>\n<p><b>Adquiere conocimientos sobre almacenamiento y recuperaci\u00f3n de datos<\/b> <\/p>\n<p>En general, tu decisi\u00f3n sobre c\u00f3mo almacenar y entregar tus datos a largo plazo afecta cr\u00edticamente el rendimiento del sistema. Por lo tanto, primero debes entender las caracter\u00edsticas esperadas de la escritura y lectura de datos en tu sistema. Luego, debes ser capaz de evaluar estos indicadores y tomar decisiones basadas en esas evaluaciones. Sin embargo, podr\u00e1s manejar esta tarea de manera efectiva solo si comprendes los patrones existentes de almacenamiento de datos. En general, esto implica un conocimiento s\u00f3lido relacionado con <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">la selecci\u00f3n de bases de datos<\/a><\/noindex>. <\/p>\n<p>Las bases de datos pueden considerarse estructuras de datos que poseen una escalabilidad y durabilidad excepcionales. Por lo tanto, el conocimiento de las estructuras de datos deber\u00eda ser muy \u00fatil tambi\u00e9n al elegir una base de datos espec\u00edfica. Por ejemplo, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">Redis<\/a><\/noindex> es un servidor de estructuras de datos que soporta varios tipos de valores. Permite trabajar con estructuras de datos como listas y conjuntos, y leer datos mediante algoritmos bien conocidos, por ejemplo, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, organizando este trabajo de manera duradera y altamente disponible. <\/p>\n<p><img decoding=\"async\" alt=\"Arquitectura de software y dise\u00f1o de sistemas: panorama general y gu\u00eda de recursos\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Fotograf\u00eda <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zeller<\/a><\/noindex> de Unsplash<\/i><\/p>\n<p>Una vez que entiendas lo suficiente sobre los distintos patrones de almacenamiento de datos, pasa a estudiar la consistencia y disponibilidad de los datos. Primero, necesitar\u00e1s asimilar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">el teorema CAP<\/a><\/noindex> al menos en t\u00e9rminos generales, y luego perfeccionar ese conocimiento examinando m\u00e1s de cerca los patrones establecidos de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">consistencia<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">disponibilidad<\/a><\/noindex>. As\u00ed, ampliar\u00e1s tu perspectiva en este campo y comprender\u00e1s que la lectura y la escritura de datos son en realidad dos problemas muy diferentes, cada uno con sus propios desaf\u00edos. Armado con varios patrones para garantizar la consistencia y la disponibilidad, podr\u00e1s aumentar significativamente el rendimiento del sistema, asegurando la entrega ininterrumpida de datos a tus aplicaciones.<\/p>\n<p>Finalmente, al concluir la discusi\u00f3n sobre el almacenamiento de datos, es importante mencionar el almacenamiento en cach\u00e9. \u00bfDeber\u00eda realizarse simult\u00e1neamente en el cliente y en el servidor? \u00bfQu\u00e9 datos tendr\u00e1s en tu cach\u00e9? \u00bfY por qu\u00e9? \u00bfC\u00f3mo organizar\u00e1s la invalidaci\u00f3n de la cach\u00e9? \u00bfSe realizar\u00e1 regularmente, en intervalos de tiempo espec\u00edficos? Si es as\u00ed, \u00bfcon qu\u00e9 frecuencia? Recomiendo comenzar a profundizar en estos temas con <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">la siguiente secci\u00f3n<\/a><\/noindex> del mencionado manual sobre dise\u00f1o de sistemas. <\/p>\n<p><b>Patrones de comunicaci\u00f3n<\/b><\/p>\n<p>Los sistemas est\u00e1n compuestos por diversos componentes; estos pueden ser diferentes procesos que operan dentro de un mismo nodo f\u00edsico o diferentes m\u00e1quinas que act\u00faan en distintas partes de tu red. Algunos de estos recursos dentro de tu red pueden ser privados, pero otros deben ser p\u00fablicos y accesibles para los consumidores que se conectan a ellos desde el exterior.<\/p>\n<p>Es necesario asegurar la comunicaci\u00f3n entre estos recursos, as\u00ed como el intercambio de informaci\u00f3n entre todo el sistema y el mundo exterior. En el contexto del dise\u00f1o de sistemas, aqu\u00ed de nuevo nos enfrentamos a un conjunto de nuevos desaf\u00edos \u00fanicos. Vamos a ver c\u00f3mo pueden ser \u00fatiles <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">los flujos de tareas as\u00edncronas<\/a><\/noindex>, y cu\u00e1les son los<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">diversos patrones de comunicaci\u00f3n disponibles.<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Arquitectura de software y dise\u00f1o de sistemas: panorama general y gu\u00eda de recursos\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Fotograf\u00eda <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/DgZxBnZeQo8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Tony Stoddard<\/a><\/noindex> de Unsplash<\/i><\/p>\n<p>Al organizar la comunicaci\u00f3n con el mundo exterior, siempre es muy importante <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">seguridad<\/a><\/noindex>, para lo cual tambi\u00e9n se debe abordar con seriedad y dedicarle atenci\u00f3n activa. <\/p>\n<p><b>Distribuci\u00f3n de conexiones<\/b><\/p>\n<p>No estoy seguro de que llevar este tema a una secci\u00f3n independiente sea justificado para todos. Sin embargo, aqu\u00ed expondr\u00e9 esta concepci\u00f3n de manera detallada, considerando que el material de esta secci\u00f3n se describe con mayor precisi\u00f3n con el t\u00e9rmino \u00abdistribuci\u00f3n de conexiones\u00bb (connection distribution).<\/p>\n<p>Los sistemas se forman mediante la correcta conexi\u00f3n de m\u00faltiples componentes, y su comunicaci\u00f3n entre s\u00ed a menudo se organiza sobre la base de protocolos establecidos, como TCP y UDP. Sin embargo, estos protocolos por s\u00ed solos a menudo no son suficientes para satisfacer todas las necesidades de los sistemas modernos, que a menudo operan bajo una alta carga, y dependen en gran medida de las necesidades de los usuarios. A menudo es necesario buscar formas de distribuir conexiones para manejar tales altas cargas en el sistema.<\/p>\n<p>En la base de tal distribuci\u00f3n se encuentra un bien conocido <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">sistema de nombres de dominio<\/a><\/noindex> (DNS). Este sistema permite transformar un nombre de dominio, por ejemplo, un algoritmo c\u00edclico ponderado (weighted round robin) y m\u00e9todos basados en latencias que ayudan a distribuir la carga. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8\">Balanceo de carga<\/a><\/noindex> es fundamental, y pr\u00e1cticamente cualquier sistema grande en Internet con el que tratemos hoy se encuentra detr\u00e1s de uno o varios balanceadores de carga. Los balanceadores de carga ayudan a distribuir las solicitudes de los clientes entre m\u00faltiples instancias disponibles. Existen balanceadores de carga tanto hardware como software, sin embargo, en la pr\u00e1ctica, a menudo se trata con software, como el <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/elasticloadbalancing\/\">ELB<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#reverse-proxy-web-server\">Los proxies inversos<\/a><\/noindex> conceptualmente tambi\u00e9n son muy similares a los balanceadores de carga, aunque entre los primeros y los segundos hay una serie de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">diferencias marcadas<\/a><\/noindex>. Estas diferencias deben tenerse en cuenta al dise\u00f1ar un sistema seg\u00fan sus necesidades.<\/p>\n<p>Tambi\u00e9n es importante conocer sobre las <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">redes de entrega de contenido<\/a><\/noindex> (CDN). Un CDN es una red global distribuida de servidores proxy que entrega informaci\u00f3n desde los nodos que est\u00e1n geogr\u00e1ficamente m\u00e1s cerca de un usuario en particular. Se prefiere utilizar redes CDN si se trabaja con archivos est\u00e1ticos escritos en JavaScript, CSS y HTML. Adem\u00e1s, hoy en d\u00eda son comunes los servicios en la nube que proporcionan gestores de tr\u00e1fico, como el <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/traffic-manager\/traffic-manager-overview?ranMID=24542&amp;ranEAID=je6NUbpObpQ&amp;ranSiteID=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;epi=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;irgwc=1&amp;OCID=AID2000142_aff_7593_1243925&amp;tduid=(ir__ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00)(7593)(1243925)(je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ)()&amp;irclickid=_ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00\">Azure Traffic Manager<\/a><\/noindex>, que le proporcionan distribuci\u00f3n global y menor latencia al trabajar con contenido din\u00e1mico. Sin embargo, estos servicios son generalmente \u00fatiles en situaciones donde se trabaja con servicios web sin estado. <\/p>\n<p><b>Hablemos de la l\u00f3gica empresarial. Estructuraci\u00f3n de la l\u00f3gica empresarial, flujos de tareas y componentes<\/b><\/p>\n<p>As\u00ed que hemos discutido varios aspectos infraestructurales del sistema. Es probable que el usuario ni siquiera piense en todos esos elementos de su sistema y, honestamente, no le importan en lo m\u00e1s m\u00ednimo. Al usuario le interesa saber c\u00f3mo es interactuar con su sistema, qu\u00e9 se puede lograr haci\u00e9ndolo de una manera espec\u00edfica, y c\u00f3mo el sistema ejecuta los comandos del usuario, qu\u00e9 hace y c\u00f3mo maneja los datos del usuario.<\/p>\n<p>Como se puede deducir por el t\u00edtulo de este art\u00edculo, ten\u00eda la intenci\u00f3n de hablar sobre la arquitectura del software y el dise\u00f1o de sistemas. Por lo tanto, no planeaba abordar los patrones de dise\u00f1o de software que describen c\u00f3mo se crean los componentes de software. Sin embargo, cuanto m\u00e1s reflexiono sobre ello, m\u00e1s me parece que la frontera entre los patrones de dise\u00f1o de software y los patrones arquitect\u00f3nicos es muy difusa, y ambas concepciones est\u00e1n estrechamente relacionadas. Tomemos, por ejemplo, <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">la registraci\u00f3n de eventos<\/a><\/noindex> (event sourcing). Una vez que adopte este patr\u00f3n arquitect\u00f3nico, afectar\u00e1 pr\u00e1cticamente todos los aspectos de su sistema: almacenamiento a largo plazo de datos, el nivel de consistencia adoptado en su sistema, la estructura de los componentes en \u00e9l, etc. Por lo tanto, decid\u00ed mencionar algunos patrones arquitect\u00f3nicos que se relacionan directamente con la l\u00f3gica empresarial. Aunque en este art\u00edculo tendr\u00e9 que limitarme a una simple lista, le recomiendo que se familiarice con ella y reflexione sobre las ideas relacionadas con estos patrones. Aqu\u00ed tienen:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">Principios SOLID<\/a><\/noindex> <\/li>\n<li>Conceptos <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">Dise\u00f1o orientado a objetos<\/a><\/noindex>, en particular, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">agregados<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">comandos y eventos<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Arquitectura hexagonal<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">Separaci\u00f3n de responsabilidades en comandos y consultas (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Registraci\u00f3n de eventos<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Modelo de actores<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">Patrones de dise\u00f1o MVC, MVVM y MVP<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Enfoques colaborativos<\/b><\/p>\n<p>Es muy improbable que seas el \u00fanico responsable del dise\u00f1o del sistema en el proyecto. Por el contrario, lo m\u00e1s probable es que tengas que interactuar con colegas que trabajan tanto dentro de tu tarea como fuera de ella. En este caso, puede ser necesario evaluar las soluciones tecnol\u00f3gicas elegidas junto con tus compa\u00f1eros, identificar las necesidades del negocio y comprender c\u00f3mo dividir mejor las tareas.<\/p>\n<p><img decoding=\"async\" alt=\"Arquitectura de software y dise\u00f1o de sistemas: panorama general y gu\u00eda de recursos\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Fotograf\u00eda <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> de Unsplash<\/i><\/p>\n<p>Primero se deber\u00e1 desarrollar una comprensi\u00f3n precisa y com\u00fan de cu\u00e1l es el objetivo empresarial que intentas alcanzar y con qu\u00e9 elementos variables tendr\u00e1s que lidiar. Las t\u00e9cnicas de modelado grupal, en particular, <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">tormenta de eventos<\/a><\/noindex> (event storming) ayudan a acelerar significativamente este proceso y aumentan tus posibilidades de \u00e9xito. Este trabajo se puede realizar antes o despu\u00e9s de delinear <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">los l\u00edmites de tus servicios<\/a><\/noindex>, y luego profundizar en ellos a medida que el producto madure. Bas\u00e1ndote en el nivel de consenso que se logre aqu\u00ed, tambi\u00e9n podr\u00e1s formular un <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">lenguaje com\u00fan<\/a><\/noindex> para el contexto limitado en el que trabajas. Cuando se necesite hablar sobre la arquitectura de tu sistema, puede ser \u00fatil contar con un <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">modelo C4<\/a><\/noindex>, propuesto por <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>, especialmente cuando se necesita entender hasta qu\u00e9 punto es necesario profundizar en los detalles del problema, visualizando las cosas que deseas comunicar.<\/p>\n<p>Probablemente haya otra tecnolog\u00eda madura en este tema, tan \u00fatil como el dise\u00f1o orientado a objetos. Sin embargo, volvemos a la comprensi\u00f3n del dominio, por lo que los conocimientos y la experiencia en <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">dise\u00f1o orientado a objetos<\/a><\/noindex> deben ser \u00fatiles.<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/461283\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412\u043e\u0442 \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0432 \u0441\u0443\u0445\u043e\u043c \u043e\u0441\u0442\u0430\u0442\u043a\u0435: \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432 \u0445\u0430\u0431\u0440\u043e\u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043e\u0441\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b + \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 2019 \u0433\u043e\u0434, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Arquitectura de software y dise\u00f1o de sistemas: una visi\u00f3n general y gu\u00eda de recursos | ProHoster","description":"Hola, colegas. Hoy les presentamos la traducci\u00f3n de un art\u00edculo de Tugberk Ugurlu, quien se ha propuesto resumir brevemente los principios del dise\u00f1o del software moderno.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster","og:description":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:12:07+00:00","article:modified_time":"2019-10-31T19:12:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36518","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 03:40:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:43:33","updated":"2026-01-22 03:40:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}