MCPcopy Index your code
hub / github.com/Gentleman-Programming/GentlemanClass_HexagonalArchitecture

github.com/Gentleman-Programming/GentlemanClass_HexagonalArchitecture @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
63 symbols 122 edges 41 files 0 documented · 0% updated 2y ago★ 90
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Repositorio de ejemplo de Arquitectura Hexagonal con TypeScript y Javascript - Gentleman Class

Este repositorio contiene un ejemplo de aplicación implementada utilizando la arquitectura hexagonal y programación orientada a objetos con TypeScript y Javascript. La arquitectura hexagonal es un patrón de diseño de software que se enfoca en separar la lógica de negocio de los detalles técnicos de la aplicación.

En este ejemplo, se utilizan los conceptos de puertos y adaptadores para separar la lógica de negocio de la infraestructura técnica. Los puertos representan interfaces que permiten la comunicación entre la aplicación y el mundo exterior, mientras que los adaptadores se encargan de implementar estos puertos.

La implementación se realiza utilizando TypeScript y Javascript, lo que permite tener un código fuente claro y legible, con las ventajas de la programación orientada a objetos. Además, se utilizan pruebas unitarias para garantizar el correcto funcionamiento de la aplicación.

¿Qué es la arquitectura hexagonal? La arquitectura hexagonal, también conocida como puertos y adaptadores, es un patrón de diseño de software que se enfoca en separar la lógica de negocio de los detalles técnicos de la aplicación. La idea es que la lógica de negocio se encuentra en el centro de la aplicación, rodeada por una serie de capas que representan las diferentes herramientas técnicas utilizadas en la aplicación.

El objetivo de la arquitectura hexagonal es hacer que el código de la aplicación sea más legible, mantenible y escalable. Al separar la lógica de negocio de los detalles técnicos, se reduce la complejidad del código y se facilita su mantenimiento. Además, al utilizar interfaces para comunicarse con el mundo exterior, se hace más fácil agregar nuevas herramientas técnicas a la aplicación sin tener que modificar el código existente.

Extension points exported contracts — how you extend this code

ForRepoQuerying (Interface)
(no doc) [6 implementers]
src/services/dashboard-api/ports/drivens/for-repo-querying.ts
Props (Interface)
(no doc)
src/trpc.tsx
ForManagingUser (Interface)
(no doc) [6 implementers]
src/services/repository/ports/drivers/for-managing-user.ts
ForAuthenticating (Interface)
(no doc) [4 implementers]
src/services/dashboard-api/ports/drivers/for-authenticating.ts
ForControlAuthenticating (Interface)
(no doc) [2 implementers]
src/services/dashboard-api/ports/drivens/for-control-authenticating.ts
ForMonitoring (Interface)
(no doc) [2 implementers]
src/services/repository/ports/drivens/for-monitoring.ts

Core symbols most depended-on inside this repo

log
called by 6
src/services/repository/ports/drivens/for-monitoring.ts
register
called by 3
src/services/dashboard-api/ports/drivers/for-authenticating.ts
getUser
called by 3
src/services/repository/ports/drivers/for-managing-user.ts
createUser
called by 3
src/services/repository/ports/drivers/for-managing-user.ts
getAuthDetails
called by 2
src/services/dashboard-api/ports/drivens/for-control-authenticating.ts
getPermissions
called by 2
src/services/dashboard-api/ports/drivens/for-control-authenticating.ts
getUser
called by 2
src/services/dashboard-api/ports/drivens/for-repo-querying.ts
createUser
called by 2
src/services/dashboard-api/ports/drivens/for-repo-querying.ts

Shape

Method 27
Class 16
Function 11
Interface 9

Languages

TypeScript100%

Modules by API surface

src/services/repository/app/repository.ts5 symbols
src/services/repository/adapters/drivers/user-manager-proxy.ts5 symbols
src/services/dashboard-api/app/dashboard-api.ts5 symbols
src/services/dashboard-api/adapters/drivers/authenticator-proxy-adapter.ts5 symbols
src/services/dashboard-api/adapters/drivens/repo-querier-stub-adapter.ts4 symbols
src/services/dashboard-api/adapters/drivens/repo-querier-local-adapter.ts4 symbols
src/services/dashboard-api/adapters/drivens/control-authenticator-stub-adapter.ts4 symbols
src/services/repository/ports/drivers/for-managing-user.ts3 symbols
src/services/repository/adapters/drivens/logger-stub-adapter.ts3 symbols
src/services/dashboard-api/ports/drivens/for-repo-querying.ts3 symbols
src/services/dashboard-api/ports/drivens/for-control-authenticating.ts3 symbols
src/trpc.tsx2 symbols

For agents

$ claude mcp add GentlemanClass_HexagonalArchitecture \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page