Arquiteturas
Para o desenvolvimento de um software com vários desenvolvedores, temos de seguir um padrão, chamado de arquitetura.
Geralmente falamos Qualiex MVC para o legado, que são todos os sistemas v1 = versão 1.
- MVC = acrônimo de Model-View-Controller (em português: Arquitetura Modelo-Visão-Controle – MVC) é um padrão de projeto de software, ou padrão de arquitetura de software formulado na década de 1970, focado no reuso de código e a separação de conceitos em três camadas interconectadas, onde a apresentação dos dados e interação dos usuários (front-end) são separados dos métodos que interagem com o banco de dados (back-end).
- Fonte: https://pt.wikipedia.org/wiki/MVC
O v3, v4 utilizam da arquitetura API Rest.
- API = conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web. A sigla API refere-se ao termo em inglês “Application Programming Interface” que significa em tradução para o português “Interface de Programação de Aplicativos”.
- A API é uma aplicação desenhada de forma genérica, para conseguir ser acessada/consumida por aplicações futuras. Um exemplo disso é a API dos novos módulos serem consumidas pelo time mobile, ou seja: eles não precisam desenvolver uma API para eles, a API existente é desenhada para caber nas necessidades dos desenvolvedores.
Glossário
Abaixo estarão os termos técnicos mais utilizados juntamente com uma explicação.Domínio
- Termo Técnico: Domínio é o nome do endereço da WEB que possuímos.
- Exemplo: https://apps1.qualiex.com/ , https://apps3.qualiex.com/
- Fonte: https://pt.wikipedia.org/wiki/Nome_de_domínio
- Explicação: O domínio é como se fosse nosso endereço, porém, na Internet. Precisamos dele para ser encontrado.
O sufixo apps1 ou apps3 não determina se a aplicação é v1 ou v3. O que aconteceu foi que alguém da ForLogic decidiu colocar este sufixo para ajudar entender em qual ambiente estamos, mas isso não é regra. O endereço poderia ser https://apxxxxx.qualiex.com/ e direcionar para o MVC, por exemplo.
Host (ou Hospedagem)
- Termo Técnico: Local onde fica armazenado nossos programas (no nosso caso, na Microsoft). É lá que fica uma máquina virtual, pronta para enviar os arquivos nos navegadores dos clientes, para assim, eles usarem o Qualiex. Para acessar o sistema, é necessário prover os arquivos (hospedagem) e possuir um domínio para conseguir ser acessado (domínio).
- Explicação: A hospedagem nada mais é que a estrutura do nosso endereço: metaforicamente falando, o nosso ‘prédio’ na Internet. De nada adianta possuir um prédio e não ter endereço, e vice-versa.
Database (ou Banco de dados)
- Termo Técnico: Banco de dados é local onde se é armazenado todos as informações das aplicações. Apenas o banco de dados solto não significa muita coisa, sendo necessário uma aplicação para interpretar esses dados.
- Fonte: https://pt.wikipedia.org/wiki/Banco_de_dados
- Explicação: Nosso banco de dados é um emaranhado de informações: literalmente um monte de letras e números. Para fazer sentido, precisamos interpretar estes dados: que é o papel da nossa aplicação. Uma forma de exemplificar isso é citando o uso do módulo Action. Ao reportar um progresso de uma ação para 50%, o banco de dados simplesmente recebe um texto numérico (50, por exemplo). Se pegarmos apenas o banco de dados, esse 50 não significa muita coisa, mas em conjunto com a aplicação do Qualiex, ele interpretará esse 50 de forma correta, e mostrará que esse valor (50) é a porcentagem da ação.
Active Directory (ou AD)
- Termo Técnico: Active Directory é o famoso “AD” no qual fazemos autenticação (verificar se o usuário é valido). O Active Directory é uma implementação de serviço de diretório no protocolo LDAP que armazena informações sobre objetos em rede de computadores e disponibiliza essas informações a usuários e administradores desta rede. É um software da Microsoft utilizado em ambientes Windows, presentes no active directory.
- Fonte: https://pt.wikipedia.org/wiki/Active_Directory
- Explicação: O AD é uma outra forma de realizar a autenticação de usuários, realizando através deste serviço provido pela Microsoft. Por motivos de confiança na Microsoft e também pela norma 27001, algumas empresas necessitam realizar o login desta forma.
GITHUB
- Termo Técnico: Git é um sistema de controle de versão de arquivos. Através deles podemos desenvolver projetos na qual diversas pessoas podem contribuir simultaneamente no mesmo, editando e criando novos arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas.
- Fonte: https://tableless.com.br/tudo-que-voce-queria-saber-sobre-git-e-github-mas-tinha-vergonha-de-perguntar
- Explicação: O github é nosso versionador. É através dele que realizamos alterações no código e conseguimos realizar restaurações e comparações com versões antigas. Os termos master, branch, commit são derivados deste.
MASTER
- Termo Técnico: No Git, “master” é uma convenção de nomenclatura para uma ramificação. Após a clonagem (download) de um projeto de um servidor remoto, o repositório local resultante possui uma única ramificação local: a chamada ramificação “principal”. Isso significa que “master” pode ser visto como um ramo “padrão” do repositório.
- Fonte: https://www.git-tower.com/learn/git/glossary/master
- Explicação: A master é a versão mais atual de nossa aplicação. Quando recebemos uma demanda para ajustar algum bug, clonamos a master do Qualiex em nosso computador, e a partir dela, realizamos as alterações.
BRANCH
- Termo Técnico: Um branch é uma versão paralela de um repositório. Está dentro do repositório, mas não afeta o branch primário ou master e permite que você trabalhe à vontade, sem prejudicar a versão “real”. Após fazer as mudanças, é possível fazer merge de seu branch de volta ao branch master para publicar suas alterações.
- Fonte: https://help.github.com/pt/github/getting-started-with-github/github-glossary
- Explicação: A tradução literal de branch é galho. Uma branch nada mais que é uma ramificação da master. Quando recebemos uma demanda de bug, por exemplo, não necessitamos alterar todos os códigos do Qualiex: o ajuste é específico em alguma parte do código. Após realizarmos esse ajuste (que é algum pequeno ajuste no código), clonamos a master e criamos nosso pequeno galho, pois, para inserir essa solução no Qualiex, não é necessário incluir todo o código que não precisou ser tocado, e apenas o código alterado, sendo então, adicionado apenas esse “galho de ajuste”.
COMMIT
- Termo Técnico: Commit, ou “revisão”, é uma alteração individual em um arquivo (ou conjunto de arquivos). É semelhante a save (salvar) um arquivo. Entretanto, cada vez que você salva um arquivo no Git, ele cria um ID único (também conhecido como “SHA” ou “hash”) que permite a manutenção de um registro de quais alterações foram feitas, quando e por quem. Os commits normalmente contêm uma mensagem do commit, que é uma breve descrição de quais alterações foram feitas.
- Fonte: https://help.github.com/pt/github/getting-started-with-github/github-glossary
- Explicação: Quando terminamos a solução de um bug, precisamos realizar esse salvamento. O fluxo normal é: pegamos a master (aplicação na versão final) e criamos nossa branch (nosso galho). No galho, resolvemos o que é necessário e realizamos o “commit”. Após o commit, nossa solução está salva no nosso galho. Agora só falta enviar para a master, e a solução estará em produção.
Vale lembrar que para inserir uma alteração no Qualiex Produção, passamos por algumas etapas, como por exemplo a etapa de Testes, Homologação e Deploy.
DEPLOY
- Termo Técnico: A implantação de software é todas as atividades que disponibilizam um sistema de software para uso. O processo geral de implantação consiste em várias atividades inter-relacionadas com possíveis transições entre elas. Essas atividades podem ocorrer no lado do produtor ou no lado do consumidor ou em ambos. Como todo sistema de software é único, os processos ou procedimentos precisos em cada atividade dificilmente podem ser definidos. Portanto, “implantação” deve ser interpretada como um processo geral que deve ser customizado de acordo com requisitos ou características específicas.
- Fonte: https://en.wikipedia.org/wiki/Software_deployment
- Explicação: O deploy é etapa final para colocar alterações de uma aplicação na produção. Tudo que é realizado, precisa passar pela etapa de deploy, que é o ato de subir essas alterações para a Master.
MVP
- Termo Técnico: Em empreendedorismo, principalmente no contexto de startups, um produto viável mínimo (MVP, de Minimum Viable Product) é a versão mais simples de um produto que pode ser lançada com uma quantidade mínima de esforço e desenvolvimento. Um MVP ajuda os empreendedores a iniciarem o processo de aprender da forma mais rápida possível, pois poupa tempo e esforços. Porém, ele não é necessariamente o menor produto imaginável.
- Fonte: https://pt.wikipedia.org/wiki/Produto_viável_mínimo
- Explicação: MVP nada mais é que um produto designado para ter o menor preço possível para a produção.