Article image
Martín Ardila
Martín Ardila26/03/2023 00:45
Compartilhe

Introdução ao Desenvolvimento Moderno de Software

  • #Soft Skill

Resumo do curso com o mesmo nome do artigo, curso ministrado pelo professor Denilson Bonatti, Tech Lead - DIO, para ingresso no curso acesse no link: https://web.dio.me/course/introducao-ao-desenvolvimento-moderno-de-software/learning/64118d38-e7a0-4e98-becd-c5e52c993e08

Para um melhor entendimento do contexto da programação e os possíveis roles do desenvolvedor dentro desse contexto, é apresentado este resumo:

Onde são criados os códigos?

Em um ambiente de desenvolvimento integrado (IDE), um programa que permite ao desenvolvedor criar aplicações que combina ferramentas comuns de desenvolvimento em uma única interface gráfica do usuário (GUI). Podem ser desenvolvidos aplicativos ou librarias para serem usadas por outros, também podem ser criados frameworks.

Framework: É um facilitador para os programadores, onde a partir de uma linguagem de programação base, são montadas soluções já predefinidas, possuindo uma estrutura a qual será a requerida de aprender. Alguns exemplos são Angular que foi criado com TypeScript(que é baseado em javascript), laravel que foi criado com php como base e Vue criada também com javascript.

Onde pode rodar o produto desenvolvido?

Desktop: Refere as aplicações autônomas que são feitas para serem instaladas em um computador, normalmente tendo um executável.

Web: Utilizam um programa local que é o navegador de internet instalado, para acessar no produto desenvolvido, não requerendo instalações.

Celular/tablet: É um software desenvolvido para ser baixado de internet por meio de uma loja como Google Play ou App Store e instalado no dispositivo móvel.

Cada um destes ambientes gerando um tipo de desenvolvedor.

Quem se ocupa da interface?

UX Design: É o desenvolvimento da melhor experiência possível para o usuário, em relação ao produto que está sendo utilizado, aprimorando usabilidade, acessibilidade e inclusive satisfação, se pondo no lugar do usuário e fazendo protótipos para teste. O comportamento do profissional desta área se foca na pesquisa das necessidades e desejos do usuário, nos protótipos que permitem os testes por parte do usuário, nas pessoas que utilizaram o produto e nos objetivos.

UI Designe: É o desenvolvimento da parte visual do produto, o que o usuário final terá como resultado, utilizando padrões visuais que podem ajudar ao usuário na experiência de uso. O foco do profissional é nos cores, tipografia, microinterações e estilos(layouts).

Algumas ferramentas utilizadas para estas duas áreas: Invision, Visio, Adobe XD, Figma

O que é o modelo Cliente-Servidor?

É uma estrutura de aplicação que distribui as tarefas entre os fornecedores do produto, o serviço designados como Servidores, e os requerentes daquele produto, o serviço designados de Clientes. Criando assim dos tipos de especializações no desenvolvimento:

Desenvolvedor Front End: Programa a parte visual do site ou do aplicativo que será utilizado pelo usuário, utilizando, por exemplo, para web: javascript, css, html, em dispositivos móveis: java ou Kotlin na IDE de Android Studio.

  • Desenvolvimento Hibrido:Refere ao desenvolvimento Web utilizando ferramentas que integram diferentes linguagens de programação para criação de aplicações. por exemplo ionic, Flutter, React Native.

Desenvolvedor Back End: Programa a parte logica que está do lado do servidor, criado o ponte que comunhica o Front com os servidores, cuidando desta manera do trafego de informação que é inserida e a que é exportada. Um protocolo de comunicação utilizado é o HTTP, o qual esta sendo utilizado pelo teu explorador nesta pagina para te apresentar este artigo armazenado no banco de dados da Dio.

Gerando assim:

Desenvolvedor Full Stack: Aquele que possue as habilidades suficientes para programar as duas partes do aplicativo, sendo requerido uma amplia variedade de linguagem de programação assim como de IDE´s.

Quem se ocupa de que o produto tenha qualidade?

Quem está encarregado do produto(empresas, dono, etc), define um conjunto de ações para entregar o produto ou serviço com o maior nível de qualidade possível, estas ações são conhecidas como:

Quality Assurance (QA): São os métodos que serão aplicados durante o desenvolvimento para garantir que o comportamento seja o desejado no momento da implantação. Quem aplica e mantêm o procedimento sobre o método é o profissional de Quality Assurance, quem deve ter conhecimento sobre o projeto, perfil analítico, verifica se os padrões de qualidade estão sendo atendidos e se todos os requisitos mínimos serão entregues.

Nuvem? Que nuvem? Está no ar ou no céu?

Nuvem refere ao serviço oferecido para manter um serviço em um servidor da empresa que oferece o serviço e sendo acessada pelo cliente por meio da internet. Ela está em uma máquina física no lugar onde a empresa tenha os servidores. Se o serviço é para um único cliente, se fala de nuvem privada, e se o serviço é utilizado por vários clientes se fala de nuvem publica, por exemplo, azure ou aws.

Alguns profissionais na área de nuvem privada:

Segurança da Tecnologia da Informação (logica e física)

Mão de Obra especializada(software e hardware)

Infraestrutura local

Algumas ventagens do serviço em nuvem publica:

Preço

Facilidade de Contratação, configuração e infraestrutura,

Escalabilidade

Desempenho

Profissional de Cloud Computing: Responsável pela infraestrutura da nuvem que será oferecida para o cliente, escolhendo as tecnologias que serão utilizadas e das partes que compõe o serviço.

( -- Contribuição Chat- GPT3 --)

Arquiteto de Soluções em Nuvem: O arquiteto de soluções em nuvem é responsável por projetar e implementar soluções em nuvem escaláveis, seguras e de alto desempenho. Ele deve ter conhecimento profundo em arquitetura de nuvem, incluindo serviços de nuvem, estratégias de migração para nuvem, gerenciamento de identidade e acesso, monitoramento e análise de dados em nuvem, entre outros. Além disso, ele deve ser capaz de entender as necessidades dos clientes e propor soluções que atendam às suas necessidades e requisitos.

Engenheiro de DevOps: O engenheiro de DevOps é responsável por criar e gerenciar pipelines de integração e entrega contínua (CI/CD) em ambientes de nuvem. Ele deve ter conhecimento em ferramentas de automação de infraestrutura e gerenciamento de configuração, como Terraform, Chef e Ansible. Além disso, ele deve ser capaz de escrever scripts em linguagens de programação como Python e Shell Script para automatizar tarefas e gerenciar a infraestrutura de nuvem.

Administrador de Sistemas em Nuvem: O administrador de sistemas em nuvem é responsável por configurar, gerenciar e monitorar ambientes de nuvem. Ele deve ter conhecimento em serviços de nuvem, como Amazon Web Services (AWS), Microsoft Azure ou Google Cloud Platform, e saber como configurar e gerenciar recursos como instâncias EC2, bancos de dados RDS e serviços de rede VPC. Além disso, ele deve ser capaz de monitorar a infraestrutura de nuvem em busca de problemas de desempenho e segurança e tomar medidas para corrigi-los.

(-- Fin da Contribuição --)

Um caminho ainda maior aguarda por ser descoberto.

Compartilhe
Comentários (0)