Adaptadores en arquitectura de software hexagonal Un adaptador es un puente entre la aplicación y el servicio necesitado en una aplicación. Se adapta a un puerto específico. Los adaptadores actúan de capa que sirve para transformar la comunicación entre actores externos y la lógica de la aplicación de forma que ambas dos quedan independientes. -. Java Generic Repository y JPA. Este último nombre, Arquitectura limpia, es el que se usa para esta arquitectura en este libro electrónico. The idea behind it is to put inputs and outputs at the edges of your design.In doing so, you isolate the central logic (the core) of your application from outside concerns.Having inputs and outputs at the edge means you can swap out their handlers without changing the core code. Uso de ConfigurationProperties en Spring Boot, Ejemplo de Circuit Breaker con Resilience4j en Spring Boot, Introducción a Domain Drive Design - DDD - Refactorizando, Procesamiento de Streams con Spring Cloud Data Flow. Para ello, vamos a realizar un API en la que se obtendrán los datos de un usuario y se guardará un usuario. Vamos a dividir la aplicación en tres capas bien diferenciadas, la primera capa, será el dominio, en la que se encontrará el objeto de dominio de Usuario. A medida que la producción de Netflix Originals crece cada año, también lo hace nuestra necesidad de crear aplicaciones que permitan la eficiencia durante todo el proceso creativo. Buenas prácticas de desarrollo ⭐. Con el paso de los años las arquitectura recomendadas han cambiado. el número de lados representa un puerto, el cual nos permitirá ir hacia una capar interior o exterior de la aplicación, Sería muy complicado hablar en un solo post sobre está arquitectura, que de todas las existentes en un software es la que más nos apasiona. La arquitectura hexagonal, o Ports and Adapters, resuelve estos problemas teniendo en cuenta la simetría de la situación: hay una aplicación en la parte interior que se comunica a través de un cierto número de puertos con cosas del exterior. La arquitectura hexagonal es un La comunicación entre los puertos seguirán siempre un protocolo concreto que dependerá del objetivo o función que tenga. Browse The Most Popular 11 Reactjs Hexagonal Architecture Open Source Projects Una de las grandes ventajas de React es cómo te hace pensar acerca de la aplicación mientras la construyes. Aquí podemos encontrar elementos como los controladores y las implementaciones de los repositorios, todo aquello que representa un punto de contacto con nuestra infraestructura y que potencialmente podría estar sujeto a los famosos … Después de la introducción anterior y ver los motivos para crear este tipo de Arquitectura, podrÃamos definir la Arquitectura Hexagonal, o la Arquitectura de Puertos y Adaptadores, como un patrón de arquitectura de diseño de software, en el que se busca desacoplar la aplicación por componentes. Una de las grandes ventajas de React es cómo te hace pensar acerca de la aplicación mientras la construyes. En esta entrada vamos a ver y a definir qué es la Arquitectura o patrón de Puertos y Adaptadores y un ejemplo de Arquitectura Hexagonal en Spring Boot que estará basado en Spring Data. La arquitectura hexagonal aísla e independiza al modelo de dominio de los elementos externos con el objetivo de que aunque los elementos externos cambien estos no afecten al modelo y de que se puedan hacer cambios en el dominio los elementos externos requieran los menores cambios necesarios. El enfoque mostrado en esta serie de artículos se inspiró principalmente en un artículo sobre Speakerdeck de Marko Milos. Tu dirección de correo electrónico no será publicada. First of all, this is an opinion article due to the nature of the content within. Y esto son sólo Arquitecturas Android en 2020, ¿te imaginas lo que nos deparará 2021? Revisión del nuevo libro de Uncle Bob: Clean Architecture. El número de puertos asà como su granularidad o tamaño es algo que puede variar, en algunos casos un único puerto puede ser suficiente, por ejemplo un único consumidor de un evento; y en otras ocasiones podremos tener múltiples puertos por ejemplo por cada caso de uso. La arquitectura hexagonal nos ayuda a alcanzar ese objetivo. Somos un Estudio de Producto Digital que diseña y desarrolla los productos digitales Entonces, ¿por qué diablos debería preocuparse por utilizar un patrón de arquitectura aplicaciones web?¯\_( ͡❛ ͜ʖ ͡❛)_/¯ Primero explicare de que se tratan todos los rumores sobre arquitectura limpia (Clean Code). Cuando tenemos varios módulos que necesitan de la misma pieza de código esta la podemos escribir dentro de una carpeta compartida e importarla a los diferentes módulos. Arquitectura Hexagonal. La idea principal detrás de este tipo de arquitectura, es crear un componente central o núcleo rodeados de interfaces a través del cual se pueda acceder. Netflix y su arquitectura Hexagonal | Juanjo's Blog. La arquitectura hexagonal junto con arquitectura de puertos y adaptadores es muy utilizada hoy en día, sin embargo la gente aun se confunde con el nombre y no conoce muy bien la diferencia entre ellos, cual es su valor añadido. Aprende de qué se trata. Espero que este artÃculo de Ejemplo de Arquitectura Hexagonal en Spring Boot, haya sido de utilidad si tienes alguna duda o sugerencia no dudes en comentarlo o contactar a través de Facebook o Twitter. This project constitutes the backend for the 'Quiz 4 Devs' application, built in NodeJS + Typescript and following the principles of DDD, Hexagonal Architecture and CQRS for its design. Sería muy complicado hablar en un solo post sobre está arquitectura, que de todas las existentes en un software es la que más nos apasiona. De hecho, una organización muy compleja en proyectos simples lo único que nos aportará la mayoría de las veces son dolores de cabeza. El Adapatador, que aparte define un patrón de software, podrÃamos definirlo como el pegamento, entre los componentes de nuestra aplicación y el mundo exterior. en el portal de empleo donde nacen las oportunidades laborales. arquitectura basada en la Arquitectura Hexagonal y los principios de diseño de software SOLID. Esto hace que los componentes sean intercambiables en cualquier nivel … Guarda mi nombre, correo electrónico y web en este navegador para la próxima vez que comente. Hasta ahora todo va bien, ahora sabemos cómo se puede estructurar nuestro proyecto. not too trivial but complex enough, based on a very straightforward domain.The Product Maker & Reboot Co-founder. Esta Arquitectura fue introducida por Alistair Cockburn, y según algunos investigadores y autores, podrÃa decirse que ha sido el precursor de la arquitectura orientada a microservicios. Estas son la estructura basada en tipo de fichero y la estructura basada en funcionalidades. Jornada completa. Recuerda, solo las capas superiores pueden acceder a las capas inferiores, no al revés. Arquitectura y Arquitectos, Patrimonio e Identidad, Urbanismo y Territorio, Normas y Novedades, Tecnología Ambiental y Naturaleza, ... Vivienda exagonal hexagonal con tres lados largos y tres lados cortos: Techo con alero trama triangular y hexagonal. La arquitectura hexagonal es una arquitectura del software en la que se busca es separar el core lógico de la aplicación, dejarlo en el centro totalmente aislado del exterior, del cliente y de otras interacciones. La arquitectura de Esta es la organización más compleja de entender de todas las que hemos visto y basa sus ideas en la arquitectura desarrollada por Alistair Cockburn. Esta arquitectura, también llamada arquitectura de puertos y adapt… 24.000€ - 30.000€ b/a. Definición y desarrollo. El equipo de desarrollo tendrá que tener muy claro los principios básicos y como implementarlos, ya que sino podrá incurrir en errores y hacer una aplicación menos mantenible y difÃcil de seguir. Arquitectura hexagonal en proyectos con Spring Boot. Por eso la versión que más me gusta para este tipo de organización es la que diferencia entre componentes y páginas. En un proximo articulo veremos un pequeño proyecto con esta implementación (tal vez sea un video), My job is to make your experience the best. Esto fue mejorando cada vez más a medida que avanzaban las versiones. JavaScript Pro con Arquitectura Hexagonal desde cero Próximamente . En Arquitectura se suele hablar de capas para referirse a grandes agrupaciones de componentes relacionados entre sí por algún criterio general. Por. Una forma de organización simple no tiene porqué ser peor que una compleja, todo dependerá del tamaño de nuestra base de código y del tamaño del equipo que la gestione. Modelos 1.ORM (modelo de programación BBDD relacional por ejemplo ORACLE) 2.Arquitectura hexagonal (diferentes capas) 3.Testing Herramientas 1.Github, Gitlab (control de versiones) 2.React Framework Symfony Codeigniter Angular BBDD SQL Server Oracle MySQL MongoDB … Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo. 04/11/2021. The Hexagonal Architecture is based in layers like an onion, and propose three base layers, Domain , Application and Infrastructure. Uno de los máximos cuando desarrollamos software, es intentar que nuestro código asà como las diferentes partes que lo integran se encuentre lo más desacoplado posible. El gran inconveniente de esta estructura es que puede ser complejo definir qué es un modulo ya que, en función de cómo se haga, radicará el mayor o menor éxito de nuestra organización. El concepto de Java Generic Repository es muy habitual cuanto trabajamos con tecnologías de persistencia. El problema principal es que una vez empieza a crecer nuestro proyecto puede convertirse en un auténtico caos, sobre todo a nivel de componentes, ya que en la variante más sencilla los tendríamos todos dentro de una carpeta llamada componentes. Crear código limpio con arquitectura hexagonal | Vista desde la cara del código Respuesta 3 : N tier creo que es un modelo de dominio, más N adaptadores para cualquier cosa externa: base de datos SQL, base de datos NoSQL, servicios web, UI web, API json para un cliente React, etc. Tras revisar algunos proyectos construidos con orientación DDD (Domain Driven Design) he encontrado una serie de desastres … Inquietudes por código de calidad donde la arquitectura es importante aplicar conceptos SOLID y Arquitectura hexagonal DDD. La Arquitectura Hexagonal propone que nuestro dominio sea el núcleo de las capas y que este no se acople a nada externo. Pueden existir uno o varios adaptadores, y serán los encargados de intercambiar la información del interior con el exterior y viceversa. Planeo escribir este artículo para compartir claramente cómo comprender e implementar el patrón de Puertos y Adaptadores (Arquitectura Hexagonal) en JavaScript. 13 Ofertas de Empleo de arquitectura hexagonal. La arquitectura hexagonal junto con arquitectura de puertos y adaptadores es muy utilizada hoy en día, sin embargo la gente aun se confunde con el nombre y no conoce muy bien la diferencia entre ellos, cual es su valor añadido. Los campos obligatorios están marcados con *. Espero que hayas disfrutado de mi pequeña introducción al mundo de la Arquitectura Limpia y que te ayude al menos con el último punto en contra: ¡Minimiza la curva de aprendizaje! Arquitectura Hexagonal. Por lo que entorno a esta idea surge la Arquitectura Hexagonal. Por lo tanto, en este post vamos a recopilar toda la experiencia que hemos ganado trabajando con NodeJS para definir una buena arquitectura, que sabemos que funciona y basada sobre todo en conceptos como ‘Clean Architecture‘ y ‘Arquitectura Hexagonal‘ para que podáis seguirla y diseñar vuestro backend de manera que se pueda adaptar a la mayoría de proyectos y … Por qué piensas que deberÃa ir en la capa de Dominio? Si nos basamos en la documentación oficial, React no define una forma correcta de organizar nuestros ficheros y lo deja a criterio del desarrollador. El puerto se puede entender como una interfaz a nivel de implementación y el canal se entiende como cada uno de los lados del hexágono, que es como se representa normalmente esta arquitectura (aunque como veremos no está limitada a seis, es … -- This is one of the best link out of there to start with Atom Design. Elegí crear esta publicación en un formato diferente. Each big part is composed by the smaller parts in a hierarchical manner. Crea una app básica similar a React sin usar React. React Clean Architecture. Este tipo de desarrollo de software busca crear capas a través de dominios y desarrollar y envolver el negocio de la aplicación. “Hexagonal architecture” was actually the working name for the HEX-SYS / OPEN Architecture. Técnicas, estrategias y arquitecturas de desarrollo que nos pueden ayudar a producir un código más limpio, eficiente y escalable. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. La mejor manera de mapear el principio de capa en un proyecto y estructura de código es mediante el uso de algún tipo de paquetes y agrupar todas las clases e interfaces relacionadas con la capa. Esta organización nos permite tener estructuras muy sencillas para proyectos que estén empezando o queramos realizar sin demasiados quebraderos de cabeza, y es la que recomendaría para todos aquellos que se inicien con React. 2d. Esta es una metodología para crear sistemas de diseño desarrollada por Brad Frost y Dave Olsen y no es exclusiva de React, pero encaja muy bien con la librería debido a la forma de crear interfaces en base a componentes. -- ¿Es una moda el DDD, los microservicios y la Arquitectura Hexagonal? La arquitectura en una aplicación de software son los aspectos comunes a las diferentes implementaciones concretas. Ejemplo de Arquitectura Hexagonal con Spring Data. Altos conocimientos y experiencia en React Typescript React Redux... Experiencia en algún framework UI MaterialUI (preferiblemente) Bootstrap 4 o superior. Más que una forma completa de estructurar nuestro proyecto, se trata de una forma de organizar los componentes. Uno de los principios que podrÃan cuadrar y funcionar muy bien con la Arquitectura Hexagona es el DDD o Domain-driven design. React es, en nuestra opinión, la mejor forma de construir aplicaciones Web grandes y rápidas usando JavaScript. Por lo tanto sería más bien un patrón que podemos aplicar dentro de nuestra organización ya existente. Para garantizar la interoperabilidad entre las capas, también es una buena idea especificar interfaces (por ejemplo, repositorios) en una capa muy baja. Para mi el inconveniente principal es que tienes que aprender a categorizar cada tipo de elemento y esto está bien si todo el equipo conoce la metodología pero si no puede llegar a crear más problemas de los que soluciona. Por lo tanto, en este post vamos a recopilar toda la experiencia que hemos ganado trabajando con NodeJS para definir una buena arquitectura, que sabemos que funciona y basada sobre todo en conceptos como ‘Clean Architecture‘ y ‘Arquitectura Hexagonal‘ para que podáis seguirla y diseñar vuestro backend de manera que se pueda adaptar a la mayoría de proyectos y … TypeScript. 7931. La Arquitectura Hexagonal, dada a conocer por Alistair Cockburn — y también conocida como arquitectura de puertos y adaptadores — , tiene como principal motivación separar nuestra aplicación en distintas capas o regiones con su propia responsabilidad. La idea principal es dividir nuestros componentes en cinco tipos de elementos: Si aplicamos esto en las dos estructuras que hemos visto quedarían de la siguiente manera: La verdad es que las veces que he utilizado Atomic Design en algún proyecto de React no me ha terminado de convencer. Estos datos estarán en una base de datos en memoria como H2 a través de Spring Data. Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. Uno de los primeros nombres fue Arquitectura hexagonal, seguido por Puertos y adaptadores. La ingeniería detrás de Netflix. Tu dirección de correo electrónico no será publicada. Aplicación: Capa intermedia de arquitectura hexagonal que contiene los casos de uso. The hexagonal architecture, or ports and adapters architecture, is an architectural pattern used in software design.It aims at creating loosely coupled application components that can be easily connected to their software environment by means of ports and adapters.This makes components exchangeable at any level and facilitates test automation. Si estamos empezando a utilizar React lo más probable es que empecemos con una organización basada en tipo de fichero donde la mayoría de los ficheros se sitúan dentro de carpetas con el nombre de cada tipo y que están en el nivel principal de nuestra aplicación. Al tener que crear interfaces para comunicar entre las diferentes capas, la complejidad de la aplicación suele aumentar con frecuencia. Una vez cubiertas la estructura basada en módulos y en tipo de ficheros, otro de los conceptos que suelen aparecer a menudo es el de Atomic Design. La arquitectura hexagonal o de puertos y adaptadores es un patrón de diseño que define una serie de capas en nuestra aplicación. Mostrando 1-13 de 13 Ofertas. Solo para resumir los conceptos básicos, el espíritu de la arquitectura limpia se basa en la construcción de capas de aplicación que dan forma, como ya se mencionó, una separación de preocupaciones. Unfortunately in my previous experiences in different companies, remain very common that applications are built on … CodelyTV. Si quieren ver el post original pueden consultarlo aquí: Clean Architecture. Arquitecturas en Android – Opciones Onion Architecture Arquitectura Hexagonal Clean Architecture Clean Architecture – Divisón de capas Clean Architecture – Inversión de Dependencias. Si te preguntan en el 2020 que arquitectura front react defenderías para una proyecto mediano/grande que librerías / patrones usarías? Revisaremos todas las capas y veremos qué se implementa allí. Hexagonal Architecture, Clean Architecture, Onion Architecture… seguramente alguna vez has visto estos términos y puede que, como yo al principio, no acabes de entender bien a que se refieren o que diferencias existen entre ellos.La buena noticia es que en el fondo todos ellos tratan sobre lo mismo: organizar el código de la aplicación de forma que se separa bien la lógica … Arquitectura Spa React. Pensando en React. Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies. Una última cosa a mencionar es la importancia de los objetos de datos en toda la arquitectura: dado que nuestro paquete principal abstrae la lógica empresarial a través de casos de uso y entidades, cada capa de aplicación tiene que manejarlos. Pensando en React. Conclusiones. Kotlin nos permite hacer estas operaciones de forma bastante natural . Su arquitectura Hexagonal (Parte II) Diciembre 5, 2020 / Juanjo /. Fuera del hexágono, encontramos varios adaptadores que interactúan con la aplicación. Para hacer frente a esto, se recomienda encarecidamente hacer uso de objetos de datos específicos de la capa y mapearlos desde y hacia las entidades centrales al transferir datos de casos de uso a repositorios o capas de presentación. Arquitectura de software: definición e importancia . Cuando empezamos a desarrollar un proyecto con un nuevo lenguaje o framework una de las primeras dudas que nos surgen es cómo organizo mi proyecto y, en el caso de React, esto no es una excepción. Sample code used during GeeksHubs online meetup talk 23/04/2020. The Onion Architecture : part 4. Su objetivo es crear componentes de aplicación débilmente acoplados que se puedan conectar fácilmente a su entorno de software por medio de puertos y adaptadores . La arquitectura hexagonal, también llamada de puertos y adaptadores, añade estos dos interesantes conceptos. Aprende JavaScript aplicando Arquitectura Hexagonal, división en capas, clases, herencias, inyección de dependencias e inversión de dependencias. Report this post. La aplicación recibirá una petición de acceso a través de un Script, Http, etc… Y está se irá comunicando entre las diferentes capas a través de sus puertos y adaptadores. ¿Es algo que llevamos años haciéndolo y no lo sabíamos? Estas capas son, desde la más exterior a la más interna: infraestructura → aplicación → dominio y modelo. Y finalmente la capa de aplicación que será la encargada de tener la lógica de negocio. Let’s take a deep dive and see if we can make it better. La mayoría de las aplicaciones web son algún tipo de aplicaciones CRUD, por lo que nos centraremos en los repositorios / API CRUD en esta serie. Para nosotros la base es una buena experiencia en C# (a partir de 2 años más o menos) con algo de experiencia en React (a partir de 6 meses) el resto puedes aprenderlo con nosotros. A programar con calidad de código. El éxito del proyecto se supedita a dos factores principales: Que la nueva arquitectura propuesta sea viable de llevar a cabo en el contexto de la empresa, y que nadie del equipo técnico se quede atrás en el proceso de transformación. Hexagonal Architecture. A medida que la producción de Netflix Originals crece cada año, también lo hace nuestra necesidad de crear aplicaciones que permitan la eficiencia durante todo el proceso creativo. Experiencia en testing. La Arquitectura Hexagonal, dada a conocer por Alistair Cockburn — y también conocida como arquitectura de puertos y adaptadores — , tiene como principal motivación separar nuestra aplicación en distintas capas o regiones con su propia responsabilidad. El concepto de destructuring es uno de los conceptos mas comunes en los nuevos lenguajes de programación. En este artículo vamos a ver 4 formas de organizar y estructurar proyectos que utilicen tanto React como React Native y daremos nuestra opinión acerca de estas. Como hemos podido ver en el ejemplo que hemos creado haciendo uso de Spring boot y Spring Data, la comunicación entre las diferentes capas ha sido creando interfaces y haciendo uso de mappers para convertir estos objetos. Simple ticketing system using concepts of Hexagonal Architecture and leveraging separation of concerns. Eso significa que no existe la mejor manera de implementarlo. Esto provocará un mayor coste en su mantenimiento, debido al aumento por ejemplo de clases si estas en Java. Si desactivas esta cookie no podremos guardar tus preferencias. Funcionalidades que hacen por detrás frameworks como Angular y Vue o librerías como React. Los elementos externos de la aplicación pueden ser tratados con simetría. 6 min read, 23 Feb 2021 – Arquitectura Hexagonal Domain-Driven Design se apoya en la Arquitectura Hexagonal como uno de sus pilares a nivel técnico. Al principio, me gusta aclarar que la Arquitectura Limpia es un patrón general que se supone que funciona en diferentes plataformas y va desde el backend al móvil hasta las aplicaciones web. Indefinido. La arquitectura hexagonal, o puertos y adaptadores, dada a conocer por Alistair Cockburn, resuelve estos problemas al observar la simetría del caso: hay una aplicación interna que se comunica con cosas externas a través de un número de puertos. Esta guía permite definir la estructura básica de la arquitectura hexagonal, así como las reglas comunes que se deben utilizar en los desarrollos 3. Pero gracias a este sobre esfuerzo tendremos un gran nivel de aislamiento entre las diferentes capas. In fact, the terms process and design sound almost antagonistic. Más recientemente, se ha citado como arquitectura cebolla o arquitectura limpia. Cuando desde un componente necesito unos datos que están en otro, primero tendré que identificar en cuál están y luego acceder a ellos, ya sea por props o lifting. Gracias al uso de esta arquitectura, el negocio o lógica de nuestra aplicación se encontrará aislado de la infraestructura siendo totalmente independientes uno del otro . ¿Que ganamos entonces inponiendonos este tipo de reglas? It's more of a pattern rather than a formal framework, and you can start using Flux immediately without a lot of new code. En muchas ocasiones se podrá querer cambiar de framework por ejemplo de uno no reactivo a uno que permita la programación reactiva. Así que supongamos que tenemos las siguientes capas de paquetes: Distribución de clases y entidades en tres capas. Arquitectura hexagonal. El resultado es que nuestro código no sea capaz de adaptarse a las nuevas decisiones, cambios de … La arquitectura hexagonal, Es un estilo de arquitectura que mueve el foco de un programador desde un plano más conceptual hacia la distinción entre el interior y el exterior del software.La parte interior son los casos prácticos y el modelo domain está construido sobre ello. Las ideas principales de esta forma de organización parten de los conceptos explicados en Domain Driven Design aplicados desde hace tiempo en el backend. La retroalimentación fue genial, pero me pareció haber dejado a la gente buscando algunas explicaciones extra y por supuesto ejemplos. La segunda capa será la capa de infraestructura, que será la responsable del funcionamiento del framework. Más en detalle, las capas están organizadas de la siguiente manera: Infraestructura. Esta separación nos va a permitir y a facilitar el hacer test de las diferentes partes de manera aislada. En el año 2005 Alistair Cockburn publicó un artículodonde describía que la intención de la Arquitectura Hexagonal era la de permitir que una aplicación sea usada de la misma forma por usuarios, programas, pruebas automatizadas y scripts, y que pudiera ser tanto desarrollada como probada de forma aislada de sus eventuales dispositivos y bases de datos en tiempo de ejecución. Nos apoyaremos en el concepto de The feedback of the Clean Architecture for .NET Applications made me feel like I needed to take a step back and introduce some concepts first, so I will present my implementation of Hexagonal Architecture to make easier to understand them completely. En este artículo solo vamos a mostrar un ejemplo de cómo sería su aplicación a React, pero si os interesa y queréis empezar a profundizar hay un artículo al respecto en Software Crafters que lo explica muy bien. Proceso de mapeo al guardar y leer una entidad de la capa de presentación en una base de datos o API. export function createContext
Beneficios De La Arcilla En La Cara, Tesis Sobre El Ministerio Público, Ejercicios Resueltos De Circunferencia-geometría Pdf, Metodología Cuantitativa, Tabla De Composición De Alimentos De Brasil, Activa Comercio Xunta, Tabla De Medidas Para Niños, Densidades Arcoíris De Azúcar, Moquillo En Perros Síntomas, Hormonas Orexigénicas Ejemplos, Importancia De La Psicología En La Sociedad,
Recent Comments