Você está na página 1de 7

Construção de software

Bancos de dados: estruturado e não estruturado

Estruturado: Não Estruturado:

• esquema rígido: definido por uma • esquema flexível: armazenamento de


estrutura de tabelas relacionais, possuindo dados sem uma estrutura rígida pré-
colunas com tipos de dados específicos, e definida; os dados podem ser armazenados
as relações entre as tabelas são definidas em formatos flexíveis.
por chaves primárias e chaves estrangeiras.
• linguagem de consulta específica: cada
• linguagem de consulta: linguagem SQL banco de dados NoSQL possui sua própria
padrão. linguagem de consulta e APIs específicas
para acessar e manipular dados.
• integridade de dados: garante a
consistência dos dados. • flexibilidade na escalabilidade: escaláveis
horizontalmente, permitindo adicionar
• transações ACID: atomicidade,
mais servidores para lidar com o aumento
consistência, isolamento e durabilidade;
de carga; pode aumentar a capacidade de
garante a consistência e a integridade dos
armazenamento e o desempenho.
dados em operações complexas e
concorrentes. • alta velocidade de leitura e gravação: em
grande escala, oferece alta velocidade e
• escalabilidade vertical: pode ser
desempenho para cargas de trabalho
alcançada por meio de um aumento nos
intensivas de dados.
recursos de hardware do servidor; é mais
adequado para um volume de dados menor • escalabilidade flexível: atende a
e requisitos de escalabilidade moderados. necessidades específicas de apps
Estratégias e exemplos

• divisão de responsabilidades em desenvolvedor backend e frontend, cada um desses papéis


terá responsabilidades distintas, porém complementares, tendo que sempre estar em
comunicação para manter o alinhamento de ambas as partes.
Desenvolvedor backend: Desenvolvedor frontend:

• lógica de negócios, processamento de • desenvolvimento da interface do usuário


dados e comunicação com o banco de e na interação com o mesmo;
dados;
• criar visualizações;
• lógica da aplicação;
• componentes de interface;
• APIs;
• lógica da interface do usuário;
• segurança, performance e escalabilidade
• se comunica com o backend por meio de
do sistema;
API.
•pode usar frameworks e bibliotecas.

• Em uma arquitetura MVC os desenvolvedores se dividem: backend- model e controller;


frontend- view e controller;

Model: View:

• definir as classes de modelo que • criar interfaces;


representam os objetos de negócio e as
• lógica de apresentação e formatação de
regras de negócio;
dados;
• lógica de acesso de dados;
• capturar a entrada de dados e eventos;
• validação dos dados;
• renderiza os dados;
• métodos e operações relacionados à
• pode utilizar tecnologias e frameworks.
manipulação dos modelos.
Clean code, revisão de código, revisão em pares, refatoração, programação em
pares e soft skills

Construção de software:

• criação detalhada de software funcional por meio de uma combinação de codificação,


verificação, teste de unidade, teste de integração e depuração;

• vinculada as disciplinas de requisitos, design, teste e gerenciamento de configuração;

• a construção inclui minimizar a complexidade, antecipar a mudança, construir para verificar,


reuso e padrões de construção

Práticas e técnicas:
• programação em pares: duas pessoas trabalhando no mesmo computador para resolver juntas
um problema; uma escreve o código e a outra analisa tudo e compartilha suas ideias; é uma
forma de revisão de código contínua.

• clean code: elegante, fácil de se compreender, agradável de se ler, simples e direto, segue
princípios de programação, sem duplicidade, bem testado, parâmetros, métodos, funções,
classes e variáveis possuem nomes significativos.

• revisão do código: para identificar, prevenir erros e feedback; incentiva o trabalho em equipe,
compartilha e dissemina o conhecimento, economia e qualidade, evita encontrar culpados e
aumenta a responsabilidade coletiva; deve-se entender o que foi feito, conhecer o objetivo do
código, assegurar qualidade e aprender com o processo, individual ou coletiva, simular
situações, revisar fazendo perguntar; pode-se registrar a revisão e feedback, comunicação
constante, identificar padrões, sem hierarquia, tempo e calma para revisar e entender o código.

• refatoração: alterar a estrutura do código sem alterar seu comportamento, permite a melhora
do design do código, previne que o código se deteriore e deve ser intimamente realizada junto
com teste; tem como objetivos atualizar a estrutura interna do código, deixar o código mais
limpo e organizado, tratar bugs e aumentar a qualidade do código; para melhorar o design e a
legibilidade do código; simplicidade, clareza, eficácia, sem repetição e utilidade
• soft skills: habilidades não técnicas que lidam com interações interpessoais e intrapessoais,
traços de personalidade e inteligência emocional; comunicação, empatia, adaptação, resiliência,
liderança, colaboração, autocontrole, proatividade...

Integração contínua
• é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu
trabalho com frequência, geralmente cada pessoa integra pelo menos diariamente - levando a várias
integrações por dia. Cada integração é verificada por uma compilação automatizada (incluindo teste)
para detectar erros de integração o mais rápido possível. Muitas equipes acham que essa abordagem
leva a problemas de integração significativamente reduzidos e permite que uma equipe desenvolva
software coeso mais rapidamente.

• ocorre várias vezes ao dia (cada vez que terminar a sessão de trabalho), o código deve ser
integrado, commitado, versionado, construído e verificado diversas vezes ao dia e deve ter um
build com testes automatizados.

• aumenta o feedback, a comunicação e a moral do time, todos veem o que está acontecendo,
previne e descobre os problemas, reduz riscos, evita baixa qualidade, todos tem acesso a versão
mais atualizada do código, auxilia na reutilização de código e evita problemas de merge.

• build: juntar o código-fonte e verificar se o software funciona.


• passo-a-passo: após terminar suas tarefas rode um build local executando os testes
automatizados para garantir que as mudanças funcionam isoladamente e podem ser integradas
com o resto do código → atualizar sua cópia local do projeto, então, executar os testes
novamente nas alterações recentes → compartilhar seu commit no repositório central

Você também pode gostar