Coder Social home page Coder Social logo

appevents's Introduction

Projeto AppEventos

Projeto com o objetivo de inicialmente construir um design de classes coeso e claro, para criar uma estrutura orientada a objetos consistente e de fácil manutenção.

Como o projeto está estruturado?

  • Abstrações : Contém as classes que servem de base para a existência de outras, uma estrutura padrão para classes derivadas implementarem determinado comportamento. Pode conter classes normais, e classes de comportamento ( interfaces ).

  • Documentação : Contém a modelagem das classes. Possui o arquivo de requisitos do projeto, e imagem + arquivo modelado( no software asta ) com o diagrama.

  • Fábricas : Aqui ficarão classes responsáveis pela construção de objetos, não expondo o construtor do mesmo, assim , encapsulando o processo de criação dos objetos.

  • Enums : Nessa pasta estão os Enums implementados em python, onde cada um deles definem constantes e alguns atributos essenciais para poder servir de suporte à algumas implementações.

  • Modelo : As classes responsáveis por implementar as entidades que interagem dentro do sistema, fazendo ele funcionar.

  • Services : Nessa pasta estarão localizados as classes que servirão de suporte para representar algum comportamento/abstração de alguma lib built-in do Python , criando uma abstração legível para se trabalhar no modelo.

Exemplo:

  • Abstração da lib date e tratamento de intervalos de tempo.
>>> horario = Horario()
>>> horario.mais("1 dia")
21/09/2016 07:50
>>> duracao = Duracao(horario,durando="20 minutos")
>>> duracao.inicio
21/09/2016 07:50
>>> duracao.final
21/09/2016 08:10
  • Testes : Pacote responsável pelos testes de integridade e comportamento dos objetos que serão criados ao longo da app. Cada requisito do pdf que está em documentação há um teste na medida do possível para ele.

E como está a modelagem ?

Modelagem Design de Classes

E como executar ele ?

O projeto inicialmente não possui dependência. Então é só dá um clone e começar a dá uma mexida. 😄 👍

git clone https://github.com/Marlysson/AppEvents.git
cd AppEvents
...coding...

Testando

Recomenda-se a versão 3.x do Python.

Basta entrar na pasta testes do projeto e rodar o comando:

python3 -m unittest discover

Assim rodará todos os testes que estão na pasta respectiva. 👍

E para contribuir ?

Assim como em qualquer outro projeto os passos são basicamente esses.

git clone https://github.com/Marlysson/AppEvents.git
git branch <funcionalidade> #Criar um branch para a sugestão
git push origin funcionalidade

E mandar um Pull Request do seu novo branch no repositório original.

appevents's People

Contributors

marlysson avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

appevents's Issues

Mover enumerações para suas respectivas classes

Remanejar "Enums" ( simulados ) para de arquivo para dentro das classes associadas.

Exemplo:

class TipoEvento(Enum):
    SIMPOSIO = "Simpósio"
    SEMANA_CIENTIFICA = "Semana científica"
...

Para:

class Evento(object):
    SIMPOSIO , SEMANA_CIENTIFICA = "Simpósio", "Semana Científica"

print(Evento.SIMPOSIO)

Separar responsabilidades da classe Horario()

  • Deixar ela somente representando um horário legível
  • Encapsular em uma classe o formato dela nativo
  • Criar classe DisplayHorario(horario) recebendo um horario e o formato.

Separar responsabilidades.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.