An open API service indexing awesome lists of open source software.

https://github.com/jonathanprojetos/trybers-and-dragons

Este projeto trata-se de uma simulação de um jogo de RPG
https://github.com/jonathanprojetos/trybers-and-dragons

docker eslint poo solid typescript

Last synced: about 2 months ago
JSON representation

Este projeto trata-se de uma simulação de um jogo de RPG

Awesome Lists containing this project

README

          

# Trybers and Dragons

# Contexto
Este projeto trata-se de uma simulação de um jogo de RPG sigla em inglês para role-playing game, um gênero de jogo no qual os jogadores assumem o papel de personagens imaginários, em um mundo fictício. A aplicação conta com algumas classes bem comuns como Mage, Necromancer, Ranger e Warrior, todas elas batalham no modelo PVP(Player vs Player) e PVE(Player vs Environment).

## POO

A aplicação se apoia nos principios do POO tais como:
- Abstração: Desenvolver a aplicação pensando em quem for consumir, abstraindo de detalhes técnicos que não são relevantes para quem for utiliza-la.
- Encapsulamento: Expor o mínimo possível de atributos da classe ao meio exterior a ela. Atualizações e modificações devem ser feitas de forma nativa utilizando métodos internos da própria classe.
- Herança: Classes filhas ou sub classes devem ser capazes de herdar métodos e atributos da super classe.
- Polimorfismo: Capacidade de gerar resultados diferentes ao chamar objetos de classes filhas ou sub classes de uma mesma super classe.

## SOLID

A aplicação segue os conceitos de paradigma SOLiD, porem não ao pé da letra. O uso foi feito usando o conhecimento que tenho ate o momento =D "1 semana", é em um futuro não muito distante quero discutir o assunto com mais liberdade e bagagem. Gostaria de compartilha de forma breve os princípios do paradigma SOLID.

- "S" Single Responsibility Principle: Entidade de software deve ter uma unica responsabilidade.
- "O" Open/Closed Principle (OCP): Entidade de software deve está aberta para extenção e fechada para modificação.
- "L" Liskov Substitution Principle: Objetos em um programa devem ser substituíveis por instâncias de seus subtipos, sem alterar a funcionalidade do programa.
- "I" Interface Segregation Principle - ISP: Nenhum cliente deve ser forçado a depender de métodos que não utiliza.
- "D" Dependency Inversion Principle: Entidades de alto nível não devem depender de entidades de baixo nível. Ambos devem depender de abstrações.

## Ferramentas utilizadas

- TypeScript
- Docker
- Eslint