62 pessoas já começaram a estudar hoje
6262pessoasjá começaram a estudar hoje
já começaram a estudar hoje

Enquanto você avalia,

6262pessoas já começaram a estudar hoje

Dê o próximo passo e inicie sua carreira

Dê o próximo passo e inicie sua carreira agora mesmo

Comece agora
  • Home

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    CURSOS

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    CURSOS

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    CURSOS

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    CURSOS

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    CURSOS

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    CURSOS

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    CURSOS

    Ver mais cursos de Inovação e Gestão
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    CURSOS

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    CARREIRAS

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    CURSOS

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    CURSOS

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    CURSOS

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA
  • Artigos
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Carreiras

    Ver todas
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA
    Entrar Ver Planos
  • Área de Interesse

    Entrar Ver Planos
  • Aulas ao Vivo - Skills & Go

    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA
    Entrar Ver Planos
  • Senioridade

    Entrar Ver Planos
  • Eventos Alura

    • IA Conference
    • Alura Signals
    Entrar Ver Planos
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Artigos
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • Plano Pro 24
    • Plano Plus 24
    • Plano Ultra Lab 24
    • LinkedIn
    • Instagram
    • YouTube

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersões
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersões
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura

    O que você quer aprender?

    FiltrosFiltrar por:

    Tipos de conteúdo
    Categorias
    • Front-end

      IA no Front End, Midjourney Web, Google Reimagine – Hipsters: Fora de Controle #71

      O Hipsters: Fora de Controle agora é IA Sob Controle! Assine o feed do podcast, e siga nos acompanhando, agora duas vezes por semana: entrevistas às quartas, e notícias às sextas. Neste episódio, conversamos com Vinny Neves, líder de front-end da Alura, sobre como a IA vem ajudando e modificando o dia a dia de quem trabalha com front end. Antes, repercutimos as principais notícias da semana, incluindo a polêmica do Google Reimagine, a disponibilidade de fine tuning para GPT-4o e 4o mini, e a chegada da versão web do Midjourney. Vem ver quem participou desse papo: Marcus Mendes, host fora de controle Fabrício Carraro, host fora de controle, Program Manager da Alura, autor de IA e host do podcast Dev Sem Fronteiras Vinny Neves, Líder de Front-End na Alura Links: IA Sob Controle – assine o novo feed do podcast! Midjourney ganha versão web Clipdrop.io Luma Labs chega à versão 1.5 Vídeo do Fabrício sobre O Problema Dos Três Corpos Krea agora se integra do FLUX.1 The Verge explorou riscos de IA de fotos do Google São Paulo recria voz de Telê Santana por IA Donald Trump usa IA para atacar Kamala Harris Imagens de IA tentam associar fãs de Taylor Swift a Donald Trump Donald Trump diz que público que recepcionou Kamala Harris foi feito por IA Softbank e Intel não farão chip para concorrer com a Nvidia Fine tuning fica disponível para o GPT-4o e GPT-4o mini OpenAI faz acordo de licenciamento com a Condé Nast Google AI Studio agora aceita PDFs de 1.000 páginas ou 2GB Artigo do Google detalhando o modelo Gemma Projeto do Fabrício com RAG no Gemma 2 2B Github lança playground de modelos ElevenLabs corta preço de output Claude da Anthropic ganha suporte a LaTeX Microsoft libera o phi 3.5 mini Microsoft libera o phi 3.5 MoE Microsoft libera o phi 3.5 vision Mistral libera o modelo NeMo-Minitron 8B Links da entrevista Luri, a Inteligência Artificial da Alura v0 da Vercel Figma AI Framer Curso IA generativa no Front-end: trabalhando com acessibilidade, semântica e HTML Curso IA no front-end: criando testes de unidade com a Luri Curso ChatGPT: aumente sua produtividade no front-end Inscreva-se na nova Imersão Dev com Gemini, aprenda HTML, CSS e JavaScript e desenvolva um projeto do zero com a ajuda do Gemini, a IA do Google. Serão cinco aulas gratuitas, com especialistas da área e certificado de participação, entre os dias 2 e 6 de setembro. Não perca! Inscreva-se na Newsletter Fora de Controle, e receba notícias semanais sobre Inteligência Artificial, assinada por Fabrício Carraro. Preencha o formulário com as suas sugestões para deixar o conteúdo do Hipsters: Fora de Controle ainda mais interessante. Escola de Inteligência Artificial da Alura: Mergulhe com profundidade no universo das IAs Generativas e comece a explorar todo o potencial para impulsionar a sua carreira. TechGuide.sh, um mapeamento das principais tecnologias demandadas pelo mercado para diferentes carreiras, com nossas sugestões e opiniões. Alura Cursos de Tecnologia –  Edição e sonorização: Rede Gigahertz de Podcasts

    Ainda não estuda com a gente?

    Invista na transformação da sua carreira!

    Comece agora
  • Gestão & Negócios

    Vantagens e diferenciais competitivos na utilização de programas de Compliance

    Você pode se perguntar: será que realmente vale a pena investir em compliance? Será que o benefício é maior que o custo operacional? Sérgio Carvalho apresenta a resposta neste Alura+ sobre quais as vantagens e desvantagens da implementação de um programa de compliance. Sergio demonstra as 4 principais vantagens de implementar um Programa de Compliance e como isso impacta na eficiência e operação das empresas. O desafio aqui é desmistificar a ideia de existem desvantagens que tornam inviável e improdutivo o compliance! Para que você possa se aprofundar no tema, seguem links de conteúdos complementares: **Formações:** - [Formação em Governança Corporativa]( traz conhecimentos sobre os principais aspectos para tomar decisões com responsabilidade, transparência, prestação de contas e tratamento equitativo para todas as pessoas envolvidas em um determinado contexto. - [Formação RH 4.0: Digital Agile & Transforming Business Partner]( compartilha conhecimentos sobre atuação do RH diante das novas tecnologias. - [Formação Certificação PMP e CAPM do PMI]( traz informações sobre gerenciamento de projetos desde a fase inicial. - [Formação Inovação para líderes]( compartilha aprendizados para aprimorar a gestão da equipe, tomada de decisões e desenvolvimento das pessoas. **Cursos:** - [Curso LGPD: conhecendo e entendendo seus impactos]( traz informações sobre os conceitos e princípios iniciais da Lei Geral de Proteção de Dados. - [Curso Compliance: Destaque sua empresa no mercado]( da Alura. **Artigos:** - [Artigo: Por que você precisa conhecer os principais tipos de Compliance]( traz conteúdos sobre como proteger a empresa, o que é compliance, porque é importante ter um programa de compliance e seus principais tipo. - [Artigo Ética profissional: como lidar com esse dilema?]( com informações sobre a conceituação de ética e como aplicá-la no dia-a-dia de trabalho, com enfoque na área de TI.

  • DevOps

    Terraform no Google Cloud

    Neste Alura+ vamos aprender como podemos criar uma máquina virtual no Google Cloud Platform usando o Terraform e ver as diferenças entre o Google Cloud Platform e a AWS. * [Site do Terraform]( * [Download do Terraform]( * [Console do Google Cloud]( * [Documentação do Google Cloud no Terraform]( # Transcrição Na formação de Infraestrutura como Código, utilizamos sempre a AWS como provedora. Mas como fazemos para usar o Terraform com outros provedores, como o Google Cloud, por exemplo? Para tirar essa dúvida, vamos subir uma máquina no Google Cloud e verificar o quanto esse processo difere de uma máquina na AWS. Vamos lá? De início, vamos entrar no site do Terraform e clicar em "Tutoriais", no painel superior, para carregar os tutoriais iniciais e podermos mexer com cada plataforma. No caso, sempre usamos AWS; desta vez, acessaremos os **tutoriais do Google Cloud**. Nessa nova página, veremos todos os tutoriais disponíveis, como "O que é Infraestrutura como Código com o Terraform?" e "Instalando Terrafom". Caso você ainda não conheça o conceito de infraestrutura como código ou ainda não tenha o Terraform instalado, recomendamos dar uma olhada nesses dois primeiros tutoriais e fazer a nossa formação de Infraestrutura com Código também. Nesse vídeo, vamos direto para o tutorial "*Build Infrastructure*" (em português, "**Montando a Infraestrutura**") para começarmos a construir nossa infraestrutura com o Google Cloud. Primeiramente, há uma breve explicação sobre o que é o Google Cloud e temos um aviso inicial de que usaremos o nível gratuito (*free tier*) do Google Cloud Platform (GCP) para o provisionamento dos componentes desse tutorial. Caso comecemos a provisionar outros recursos, podemos mudar para a versão paga. No nosso caso, a máquina virtual que pretendemos provisionar faz parte do *free tier*. A seguir, temos a seção de pré-requisitos. É preciso ter uma **conta no Google Cloud Platform**. Caso você ainda não tenha, é possível criá-la no site do GCP — é de graça. Para conhecer mais sobre os serviços inclusos no *free tier*, podemos acessar a página de informações do Programa Gratuito do Google Cloud. Outro pré-requisito é ter, **no mínimo, a versão 0.15.3 do Terraform** instalada no seu computador. Se você estiver com o Terraform atualizado, já tem uma versão compatível, provavelmente 1.0 ou posterior. Atendidos os pré-requisitos, vamos checar o que precisamos para realmente começar a criar, na seção "*Set up GCP*". O primeiro item é **criar um projeto no GCP**. Vamos clicar no link disponibilizado no tutorial, que nos direcionará ao console do GCP para criar um projeto. Daremos o nome "Alura" para nosso projeto. Logo abaixo do campo de nome, será gerado um ID. No meu caso, é "alura-348223". O seu será diferente, pois os identificadores são únicos, nunca se repetem. À direita desse ID, temos a opção de editá-lo, se for de nosso interesse. Eu vou manter "alura-348223". Não vamos modificar os campos "Billing account" nem "Location", relativos respectivamente à cobrança (caso sejam criados recursos fora do *free tier*) e à organização. Podemos clicar no botão "Create" e, após alguns segundos, veremos nosso projeto criado, com todas as partes prontas. Voltando ao tutorial do site do Terraform, o segundo item é **ligar o *compute engine* do nosso projeto**. Novamente, vamos clicar no link disponibilizado no tutorial, que nos direcionará para a tela do *Compute Engine API* no console do GCP. Outra forma de chegar nessa página é acessando o menu do GCP, no canto esquerdo superior, selecionando a opção "Compute Engine". Nessa tela, clicaremos no botão "Enable" para habilitar e conseguirmos criar elementos relacionados às máquinas virtuais. Esse processo pode demorar alguns minutos, dependerá da carga sobre o Google no momento. De volta ao tutorial, o terceiro item em "Set up GCP" é **criar uma chave de serviço para nossa conta**. Clicaremos no link disponibilizado no tutorial, que nos direcionará para a página *Service Accounts*, dentro da área "IAM & Admin" do console do GCP. Outra maneira de chegar a esta tela é pelo menu do GCP, acessando "IAM & Admin > Service Accounts". Em seguida, vamos selecionar o projeto "Alura". Nessa nova página, constataremos que já temos uma conta de serviços. Para manter a organização e não nos confundirmos com as chaves e credenciais (partes de segurança muito importantes), vamos **criar outra conta de serviços**. No painel superior da tela, pressionaremos "Create Service Account". O campo relativo ao nome é opcional. Já o ID é obrigatório, como indicado pela presença do asterisco. Nosso ID será "terraform". Logo abaixo desse campo, será automaticamente criado um e-mail para essa conta de serviços. No momento, não precisamos nos preocupar com ele. A seguir, clicaremos no botão "Create and Continue". Agora, precisamos **selecionar um cargo (*role*)**. No tutorial do Terraform, no item 4 referente à criação da chave de serviço, é especificado que nesse campo devemos escolher "Project > Editor" e clicar em "Continue". Dessa forma, essa conta terá permissão para editar qualquer parte do projeto. Pressionaremos o botão "Done" para concluir a criação da conta do Terraform. Na sequência, vamos **criar uma chave para essa conta**. Seguindo o tutorial, vamos selecionar a conta de serviços e acessar a aba "Keys" (chaves) no painel superior. Em seguida, clicando em "Add Key", vamos escolher a opção "Create new key", definir o "Key Type" como JSON e clicar em "Create". O *download* da chave será feito automaticamente em nosso computador e veremos uma mensagem contendo o nome dela. Voltando ao tutorial, antes da seção "Write configuration", temos outro aviso (*warning*). Ele nos informa que ***esse arquivo da chave dá acesso total ao nosso projeto no Google Cloud Platform, então é importante o tratarmos como qualquer outra credencial secreta***, como a senha que usamos para entrar no console do GCP. Ou seja, não é uma boa prática salvar essa chave de acesso em um repositório, por exemplo, pois qualquer pessoa terá acesso ao projeto, se essa chave "vazar". Porém, caso isso aconteça, podemos acessar o menu "IAM & Admin > Service Accounts", entrar na nossa conta e apagar a chave. Depois, criamos outra. Temos a opção de criar várias chaves, só é importante mantermos o controle e a organização delas. Podemos, então, **começar a escrever as configurações do nosso projeto**. Em nosso computador, vamos criar uma pasta chamada "GCP" (abreviação de Google Cloud Platform) e abri-la no Visual Studio Code. Dentro dela, criaremos um arquivo chamado main.tf — um arquivo Terraform. Tudo que formos escrever ficará dentro dele. No tutorial, o início da seção "Write Configuration" explica como criar essa pasta e o arquivo main.tf por comandos no terminal. No caso, optamos pela criação manual. Em seguida, temos um bloco de código de exemplo: terraform { required_providers { google = { source = "hashicorp/google" version = "3.5.0" } } } provider "google" { credentials = file(".json") project = "" region = "us-central1" zone = "us-central1-c" } resource "google_compute_network" "vpc_network" { name = "terraform-network" } Vamos analisar esse trecho, composto por três blocos. De início, temos um bloco terraform referente às configurações que usaremos no projeto do Terraform. Da linha 2 a 6, constam dados do provedor: trata-se do provedor do Google, já com informações da fonte (source) e da versão (version). Da linha 10 a 16, temos o segundo bloco, com configurações desse provedor. A linha 11 contém as credenciais que serão carregadas de um arquivo .json. Na linha 13, precisamos informar o ID do projeto. Nas linhas seguintes, teremos dados relativos à região e à zona — assim como a AWS, o Google trabalha com regiões. Nesse exemplo, temos region = "us-central1" e zone = "us-central1-c", ou seja, estaremos usando o provedor do Google na região central dos Estados Unidos, na zona de disponibilidade C. Das linhas 18 a 20, temos o último bloco, com a opção de criação de um recurso, uma VPC. No momento, não queremos uma VPC, apenas uma máquina virtual. Mais adiante, consultaremos a documentação com esse objetivo. Portanto, vamos copiar apenas os dois primeiros blocos (da linha 1 até a 16) e colá-lo no arquivo main.tf. Feito isso, ainda precisamos configurar dois itens nesse arquivo: **indicar a chave de acesso na linha 11 e definir o ID do projeto na linha 13**. Vamos incluir a chave de acesso no projeto, movendo o arquivo .json para a pasta GCP. Em seguida, daremos uma olhada na estrutura e no conteúdo dessa chave. Primeiramente, ela contém um tipo, que é uma conta de serviço. Depois, temos o ID do projeto e o ID de uma chave privada. Em seguida, consta a chave privada em si, que é bastante longa. Vemos, então, o e-mail do cliente (no caso, da conta de serviço), o ID desse cliente e um link de autorização seguido de um link do *token* para poder acessar as informações. Por fim, há dois certificados, um do provedor e outro do cliente. Voltando ao arquivo main.tf, é necessário alterar a origem das credenciais, na linha 11. Como o nome do arquivo .json é muito extenso, no painel à esquerda vamos clicar com o botão direito do *mouse* sobre ele e renoméa-lo para chave.json. Desse modo, podemos modificar a linha 11 para credentials = file("chave.json"), indicando que as credenciais vêm desse arquivo. Quanto ao ID do projeto (na linha 13), podemos obter essa informação no console do Google Cloud Platform ou no arquivo chave.json, em project_id. No meu caso, a linha 13 ficará project = "alura-348223", lembrando que cada usuário terá um ID diferente. Assim, temos nosso Google Cloud configurado para uso. O próximo passo será **criar a máquina virtual**. No navegador, vamos voltar à página inicial do site do Terraform. Desta vez, no painel superior, acessaremos "Registry" — o registro Terraform. Descendo um pouco a página, temos as opções de *providers*. Vamos clicar em Google Cloud Platform. A princípio, veremos o *overview* do que é o Google Cloud. No topo da página, à direita, acessaremos a **documentação**. Na lateral esquerda, há uma lista extensa de recursos à nossa disposição. Anteriormente no Google Cloud, acionamos o *Compute Engine API*, portanto vamos expandir o tópico "*Compute Engine*" dessa lista. Dentro dele, temos uma série de recursos — estamos buscando por máquinas virtuais, que geralmente têm o nome VM (*virtual machine*) ou *Instance* (instância). No caso, encontraremos o subtópico "google_compute_instance". Clicando em "**google_compute_instance**", descobriremos que se trata de um recurso que gerencia uma instância de uma máquina virtual utilizando o Google Cloud Engine (GCE). Para mais informações, podemos acessar a documentação oficial da API. Aparentemente, este recurso faz exatamente o que precisamos. Mais abaixo nessa página, temos um exemplo de uso. Vamos deixar de lado as primeiras cinco linhas referentes à *service account* e copiar o resto. Colaremos esse trecho ao final do nosso arquivo main.tf: # código anterior omitido resource "google_compute_instance" "default" { name = "test" machine_type = "e2-medium" zone = "us-central1-a" tags = ["foo", "bar"] boot_disk { initialize_params { image = "debian-cloud/debian-9" } } // Local SSD disk scratch_disk { interface = "SCSI" } network_interface { network = "default" access_config { // Ephemeral public IP } } metadata = { foo = "bar" } metadata_startup_script = "echo hi > /test.txt" service_account { # Google recommends custom service accounts that have cloud-platform scope and permissions granted via IAM Roles. email = google_service_account.default.email scopes = ["cloud-platform"] } } Em seguida, vamos remover as partes que não são necessárias para nós. Na linha 18, temos o recurso "google_compute_instance". Vamos substituir o nome lógico "default" por "PrimeiraVM". Na linha seguinte, podemos alterar o nome que aparecerá no console do Google: em vez de "test", usaremos "PrimeiraVM" também. Em machine_type (tipo de máquina), precisamos tomar um pouco de cuidado. A máquina atual, "e2-medium", não é suportada pelo *free tier*! Então, vamos mudar para "e2-micro", que se enquadra no nível gratuito. Quanto à zona, vamos usar a mesma que especificamos anteriormente: "us-central1-c": # código anterior omitido resource "google_compute_instance" "PrimeiraVM" { name = "PrimeiraVM" machine_type = "e2-micro" zone = "us-central1-c" # código posterior omitido As tags não são necessárias, podemos removê-las (linha 23). Por outro lado, precisaremos do disco de *boot* (boot_disk), porque é o disco principal do nosso sistema. Na linha 24, temos os parâmetros iniciais: segundo o exemplo, usaremos uma imagem do Debian, na versão 9. Vamos manter desta forma. Em seguida, é oferecido um SSD local: o scratch_disk, um disco para escrever e ler itens temporários. Não precisamos disso e ele não é suportado no *free tier*, então vamos removê-lo (linhas 29 a 32). Agora, na linha 29, temos a interface de rede, necessária para a comunicação. Vamos manter network = "default" e não modificaremos o access_config, para que ele gere um IP público para nossa máquina. Os metadados (linhas 36 a 38) são desnecessários, vamos removê-los. Em seguida, temos o metadata_startup_script. Se quisermos rodar algum comando no momento de criação da nossa máquina, podemos utilizar essa *tag*. Vamos mantê-la e mudar seu valor para "echo oi > /teste.txt". Dessa forma, será escrito "oi" no arquivo teste.txt, no *root*. Por fim, a partir da linha 38, temos um *service account*. Como já configuramos anteriormente o *provider*, essa parte também não é necessária, vamos apagar da linha 38 até a 42. Então, **a segunda parte do arquivo ficará assim**: # código anterior omitido resource "google_compute_instance" "PrimeiraVM" { name = "PrimeiraVM" machine_type = "e2-micro" zone = "us-central1-c" boot_disk { initialize_params { image = "debian-cloud/debian-9" } } network_interface { network = "default" access_config { // Ephemeral public IP } } metadata_startup_script = "echo oi > /teste.txt" } Pressionando "Ctrl + S", salvaremos o arquivo. Já podemos **executar essas configurações para verificar se funcionam**. Na barra superior do VS Code, vamos em "Terminal > Novo Terminal". No terminal, vamos checar se estamos na pasta GCP. Uma vez dentro da pasta, executaremos o comando ls para verificar se os arquivos estão conforme o esperado: temos chave.json e main.tf. Tudo em ordem, vamos rodar um clear para limpar o terminal. Então, vamos **executar o comando terraform init** para iniciar todas as configurações do Terrafom, fazer o *download* da infraestrutura do provedor e deixar tudo pronto para a execução. Terminado esse processo, vamos **rodar o terraform apply**. Assim, a ideia é pegar o nosso plano e criar uma *compute instance* chamada PrimeiraVM. No console, podemos verificar todas as configurações dessa instância e, ao final, temos o plano total "Plan: 1 to add, 0 to change, 0 to destroy" (1 para criar, 0 para mudar e 0 para destruir). Para confirmar, digitaremos "yes". Durante essa operação, teremos um erro alegando que o nome "PrimeiraVM" é inválido, pois não podemos usar letras maiúsculas, apenas caracteres no padrão [a-z0-9]. Logo, na linha 19 do arquivo main.tf, vamos alterar para name = "primeiravm" e salvar. Em seguida, executaremos o terraform apply novamente, digitaremos "yes" para confirmar e esperaremos enquanto esse processo é executado. No meu caso, a operação foi rápida, apenas 11 segundos. Mas esse tempo pode variar de acordo com a conexão da internet ou da carga sobre os servidores do Google e assim por diante. Para verificar se a máquina foi devidamente criada, vamos voltar ao console do Google Cloud Platform, no navegador. No menu, vamos em "Compute Engine". Nesta página, há uma tabela com as instâncias de máquina virtual e veremos a "primeiravm". O IP dela está na coluna "External IP". Para acessá-la via SSH, selecionaremos o *checkbox* à esquerda e clicaremos no botão "SSH". Dessa forma, a chave SSH será colocada dentro da nossa máquina virtual, pois não fizemos isso antes. Essa é uma das vantagem do Google sobre a AWS: não precisamos colocar as chaves logo que criamos a máquina, ele faz esse procedimento para nós depois. Após alguns segundos, estaremos na nossa máquina. Vamos executar o comando ls / para ver os arquivos que temos dentro da máquina virtual. Um deles é o teste.txt, vamos abri-lo com cat /teste.text. Veremos o texto "oi" que configuramos anteriormente, ou seja, a instância foi criada e o arquivo .txt foi inserido no *root* da máquina virtual. Pronto, criamos a configuramos uma máquina virtual com o Google Cloud! **E se não quisermos mais essa infraestrutura?** Podemos encerrá-la por meio do comando terraform destroy, que vai **destruir a infraestrutura**. Assim, o plano não terá nada para criar ou modificar e um recurso para destruir. Vamos digitar "yes" para confirmar a ação e a máquina será apagada. No meu caso, esse processo demorou 37 segundos, mas esse tempo pode variar. Dessa forma, a infraestrutura foi destruída. O projeto não foi apagado, apenas removemos a infraestrutura, que podia gerar custos. Agora que vimos tudo isso, vamos elencar as **diferenças entre a máquina virtual que criamos no Google Cloud e uma máquina virtual que geralmente criamos na AWS**. Primeiro, no arquivo main.tf, no bloco terrafom que vai da linha 1 a 8, temos que trocar o nome do provedor, bem como o source. Além disso, o método de utilizar credenciais e fazer *login* no Google e na AWS são diferentes. Na AWS, fazemos o *login* pela linha de comando com aws configure. No Google, usamos credenciais via arquivo. O recurso criado também muda de nome entre esses dois provedores. **Na AWS, temos o EC2 Instance e, no Google, o Google Compute Instance**. São nomes e recursos diferentes e também têm configurações distintas. Por exemplo, na AWS especificamos zonas por VPC, não por máquinas. Ambos, porém, precisam de um nome e de um tipo de maáquina (machine_type). Quanto ao boot_disk, no Google definimos pela imagem. No caso, escolhemos o Debian, versão 9. Na AWS, usamos as AMIs, que são parecidas, porém têm nome diferente. Precisamos saber a AMI correta para cada região. Em questão de rede, na AWS não precisamos configurar uma interface de rede. Ele já vem com uma interface e um IP público por padrão. No Google Cloud, temos que especificar esses elementos. Ademais, temos o metadata_startup_script que determina o que será feito inicialmente, em que inserimos o código entre aspas. Na AWS, esse processo é mais complicado, temos que colocar o end_of_file ou end_of_tape, algo nesse sentido para identificar onde começa e onde termina. De forma geral, **esses provedores são bem próximos em termos de criação**. O Google também fornece uma VPC padrão, que é um jeito que de acessarmos essas máquinas. Por fim, vamos revisar tudo que fizemos nesse vídeo. Criamos um projeto e uma chave de acesso para acessá-lo. Depois, configuramos uma máquina virtual do tipo e2-micro (suportada no *free tier*) e especificamos a zona onde ela ficaria — no *datacenter* central dos Estados Unidos, na zona de disponibilidade C. Determinamos o sistema utilizado na máquina, uma interface de rede e um *script* para rodar na criação da instância. Espero que você tenham gostado. Até o próximo Alura+!

  • Gestão & Negócios

    Compliance: guia prático de implementação

    Neste vídeo, Sérgio Carvalho apresenta um guia prático de implementação de um programa de compliance. E você deve estar se perguntando: será que esse guia serve para minha empresa, que não é considerada grande? Será que terei os recursos necessários para fazer a implementação? A resposta está neste Alura+! Sérgio explica como implementar um Programa de Compliance sólido e eficiente, com dicas práticas de como começar hoje mesmo, em 10 passos. O desafio aqui é desmistificar a ideia de que Compliance serve para apenas algumas empresas e que é muito complexo colocá-lo em prática. Para que você possa se aprofundar no tema, seguem links de conteúdos complementares: **Formações:** - [Formação em Governança Corporativa]( traz conhecimentos sobre os principais aspectos para tomar decisões com responsabilidade, transparência, prestação de contas e tratamento equitativo para todas as pessoas envolvidas em um determinado contexto. - [Formação RH 4.0: Digital Agile & Transforming Business Partner]( compartilha conhecimentos sobre atuação do RH diante das novas tecnologias. - [Formação Certificação PMP e CAPM do PMI]( traz informações sobre gerenciamento de projetos desde a fase inicial. - [Formação Inovação para líderes]( compartilha aprendizados para aprimorar a gestão da equipe, tomada de decisões e desenvolvimento das pessoas. **Cursos:** - [Curso LGPD: conhecendo e entendendo seus impactos]( traz informações sobre os conceitos e princípios iniciais da Lei Geral de Proteção de Dados. - [Curso Compliance: Destaque sua empresa no mercado]( da Alura. **Artigos:** - [Artigo: Por que você precisa conhecer os principais tipos de Compliance]( traz conteúdos sobre como proteger a empresa, o que é compliance, porque é importante ter um programa de compliance e seus principais tipo. - [Artigo Ética profissional: como lidar com esse dilema?]( com informações sobre a conceituação de ética e como aplicá-la no dia-a-dia de trabalho, com enfoque na área de TI.

  • Gestão & Negócios

    Compliance: adaptações e impactos no contexto brasileiro

    Neste vídeo, Sergio Carvalho apresenta as principais consequências da Operação Lava Jato sobre o estudo e desenvolvimento do compliance no Brasil. Você pode se perguntar se houve algum impacto importante para o compliance após a operação, ou se os resultados alcançados seriam os mesmos se não tivesse ocorrido a operação. A resposta para estas e outras questões está neste Alura+! Sergio demonstra de forma cronológica quais foram os desdobramentos empresariais e qual deles foi o mais importante para o momento atual. Através de uma análise técnica observamos os efeitos da Lava Jato e como isso pode ser utilizado no dia a dia. Para que você possa se aprofundar no tema, seguem links de conteúdos complementares: **Referências:** - [Lei Anticorrupção 12.864 de agosto de 2013]( - [Código Penal]( - [Lei 9.613, de 3 de março de de 1998 — Definição do crime de Lavagem de Dinheiro]( **Formações:** - [Formação em Governança Corporativa]( traz conhecimentos sobre os principais aspectos para tomar decisões com responsabilidade, transparência, prestação de contas e tratamento equitativo para todas as pessoas envolvidas em um determinado contexto. - [Formação RH 4.0: Digital Agile & Transforming Business Partner]( compartilha conhecimentos sobre atuação do RH diante das novas tecnologias. - [Formação Certificação PMP e CAPM do PMI]( traz informações sobre gerenciamento de projetos desde a fase inicial. - [Formação Inovação para líderes]( compartilha aprendizados para aprimorar a gestão da equipe, tomada de decisões e desenvolvimento das pessoas. **Cursos:** - [Curso LGPD: conhecendo e entendendo seus impactos]( traz informações sobre os conceitos e princípios iniciais da Lei Geral de Proteção de Dados. - [Curso Compliance: Destaque sua empresa no mercado]( da Alura. **Artigos:** - [Artigo: Por que você precisa conhecer os principais tipos de Compliance]( traz conteúdos sobre como proteger a empresa, o que é compliance, porque é importante ter um programa de compliance e seus principais tipo. - [Artigo Ética profissional: como lidar com esse dilema?]( com informações sobre a conceituação de ética e como aplicá-la no dia-a-dia de trabalho, com enfoque na área de TI.

  • Artigos

    Artigo Moonshot AI lança Kimi K3, o maior modelo aberto de IA do mundo

    Moonshot AI lança Kimi K3, modelo aberto de IA com 2,8 trilhões de parâmetros, visão nativa e contexto de 1 milhão de tokens.

  • Gestão & Negócios

    O que você precisa saber para ser um MEI

    Se você presta serviço ou pretende abrir um negócio, ter um MEI (Microempreendedor Individual) pode ser uma ótima opção! Meu nome é Bruna e neste *Alura Mais* vou te ensinar o passo a passo para abrir um MEI. Vamos começar?> **Audiodescrição:** Bruna se autodescreve como uma pessoa de pele parda, com cabelos cacheados e escuros. Veste uma blusa branca de gola e botões com uma jardineira jeans por cima. Ao fundo, uma parede sob iluminação laranja e roxa. À esquerda, um vaso de planta; à direita, uma estante com itens decorativos, como vasos de plantas e a logo da Alura.## O que é o MEI?O MEI é uma figura jurídica criada em 2008, no contexto em que muitas pessoas trabalhavam de maneira informal, como autônomas. Sendo assim, o objetivo do MEI foi trazer as pessoas para a formalidade. Ao criar um MEI, você abre um CNPJ e esse CNPJ dá direito a uma série de vantagens e benefícios. Talvez você tenha o seguinte pensamento: > Já estou trabalhando como pessoa física e conseguido clientes, por que deveria abrir o MEI? Quais são as vantagens?## VantagensA primeira dessas vantagens é a **formalização do seu negócio**. Para abrir um MEI, é necessário ter mais responsabilidade fiscal e transparência nos processos, o que gera credibilidade junto aos seus clientes e fornecedores, e até mesmo com potenciais investidores. Assim, você pode se aproveitar desse momento de profissionalização para fortalecer a autoridade da sua marca.Outra vantagem muito interessante é que, ao abrir um MEI, você garante seus **benefícios previdenciários**. Isso poque o pagamento do DAS (Documento de Arrecadação do Simples Nacional) já inclui a taxa do INSS, o que garante que você tenha acesso a todos os benefícios previdenciários previstos por lei. Há, também, vantagens referentes a **condições para crédito**. Existem bancos que oferecem condições especiais para pessoas que são MEI. Assim, você pode conseguir juros mais baixos ou financiamentos em valores mais interessantes para o seu negócio.Além disso, existem fornecedores que só trabalham com pessoas jurídicas. Sendo assim, caso abra um MEI, você aumenta o leque de possibilidades de encontrar o melhor custo-benefício para o seu negócio em relação aos fornecedores.Abrir o MEI também te dá a possibilidade de **emitir notas fiscais**. Até muito recentemente, o MEI não era obrigado a emitir nota fiscal, mas em 2023 essa regra mudou e, agora, existem duas modalidades. Para quem é MEI na área do comércio, a emissão de nota fiscal continua sendo optativa. Caso você queira emitir, é necessário procurar a Secretaria da Fazenda do seu estado e entender quais são os passos necessários para isso. No caso de MEI para prestação de serviços, é obrigatório emitir nota fiscal, mas você não precisa mais ir ao site da Secretaria da Fazenda do seu estado. Isso porque o governo unificou todo o processo, e agora basta que você acesse o site do governo federal e emita a nota fiscal.Se o seu negócio está em crescimento e você precisa de ajuda, ser MEI te possibilita contratar até uma pessoa. Isso é um grande auxílio para a evolução do seu projeto.> Mas quais são os critérios para se tornar um MEI?## CritériosO primeiro critério é ter um **faturamento mínimo de 81 mil reais anuais**, o que dá **R$ 6.750 mensais**. Ou seja, esse é o valor máximo que você pode faturar como MEI por mês. Além disso, como o MEI foi criado para que as pessoas saíssem da informalidade, você **não pode ser sócio, administrador ou titular de qualquer outra empresa**. Para ser MEI, você também deve **exercer uma das atividades permitidas para o MEI**, que podem ser encontradas no site do governo federal, referidas por [códigos de cada área de atuação chamados de CNAE]( Para ser MEI você **não pode ter mais de uma pessoa empregada** e deve **ser maior de 18 anos ou emancipado**.## Passo a passoAgora que você já sabe o que é o MEI, seus benefícios e critérios para se tornar um, vou te ensinar o passo a passo para se tornar um MEI. #### 1 - Criar uma contaO primeiro passo é criar uma conta no [site do governo federal]( caso você ainda não tenha. #### 2 - Quero ser MEIApós criar a sua conta, entre na seção de empresas e negócios e clique em ["Quero ser MEI"]( Ao selecionar "Quero ser MEI", várias opções serão exibidas. Você deverá clicar em "Formalize-se". Isso lhe dará acesso a várias informações que precisam ser preenchidas para validar o seu MEI, como CPF, data de nascimento, nome empresarial, números do seu CNPJ, entre outros dados.> Caso esteja criando o seu CNPJ, o nome empresarial aparecerá após concluir a inscrição como MEI, para exibir seu número de CNPJ. Em seguida, você digitará o seu nome completo, nacionalidade, gênero, nome da mãe e outras informações básicas. Nas informações de identificação, também fornecerá o número da sua identidade e o órgão emissor.Posteriormente, defina o nome fantasia, que é o nome comum pelo qual as pessoas conhecerão a sua empresa, diferente do nome formal que aparecerá juridicamente, conhecido como razão social. Depois, insira o capital social, que é o montante que investiu para iniciar o negócio. Por exemplo, se você é designer e precisou de um notebook, mesa e cadeira para iniciar o negócio, a soma desses valores será o capital social. Em seguida, defina as atividades da empresa. Precisamos estar atentos aqui ao CNAE, que define as atividades permitidas para serem exercidas como MEI. Procure atividades que estejam mais alinhadas com o que você faz, selecione uma delas e em seguida aparecerá o código CNAE com uma descrição da atividade selecionada.Defina a forma de atuação da empresa, como estabelecimento fixo, trabalho pela internet ou em local fixo fora de uma loja. Neste ponto, é possível selecionar mais de uma opção, caso se apliquem.Feito isso, insira o endereço comercial. Caso não tenha um endereço comercial, pode utilizar o endereço residencial e selecionar a opção "Endereço residencial igual ao endereço comercial".Depois, aceite as "Declarações de Desimpedimento" e leia o "Termo de Ciência e Responsabilidade". Concluída essa etapa, estará pronto para criar o seu MEI. Aparecerá uma tela para confirmar os seus dados. Ao confirmar, a formalização como Microempreendedor Individual será concluída e será gerado o CNPJ e o número de registro na Junta Comercial.## TaxasPor fim, vamos falar sobre as taxas necessárias para se tornar MEI, que é basicamente o pagamento do DAS (Documento de Arrecadação do Simples Nacional). Este documento inclui as seguintes taxas: * ICMS (Imposto sobre Circulação de Mercadorias e Serviços), referentes ao comércio. Se possuir um negócio de vendas, pagará, por essa taxa, um valor de R$ 1,00; * ISS (Imposto Sobre Serviços), referente à prestação de serviços, cujo valor é de R$ 5,00;* INSS (Instituto Nacional do Seguro Social), que é o valor da contribuição previdenciária.Caso o seu negócio seja de prestação de serviços e comércio, pagará a taxa combinada dos dois, que é de R$ 6,00. Em geral, o DAS varia entre R$ 50,00 e R$ 60,00.Agora que você está ciente dos benefícios e vantagens de ter o MEI, pode criar essencialmente o seu MEI gratuitamente no site do Governo Federal. Se desejar mais informações, pode encontrar muitos conteúdos sobre empreendedorismo e negócios no site do [SEBRAE]( tenha alguma dúvida ou comentário, fale conosco no [Discord]( ou no [fórum]( Estaremos disponíveis para auxiliar no que for necessário!

  • Back-end

    Classe Object C#

    # Transcrição Olá, tudo bom? Meu nome é **André Bessa**, faço parte do time de instrutores da Alura. Neste vídeo, vamos tratar da **classe Object**, muito importante na plataforma .NET. Para tratar desse assunto, vamos usar o projeto de um módulo de cliente do banco ByteBank, em que definiremos novos comportamentos para a classe Cliente. Por exemplo, podemos exibir todas as informações de um cliente de uma vez só, em vez de chamar vários métodos de ConsoleWriteLine(). Essa implementação é interessante, pois outros desenvolvedores do projeto também poderão utilizar essa classe de maneira mais fácil. Com o projeto aberto no Visual Studio Community 2022, no arquivo Program.cs, notaremos que atualmente a exibição dos dados do usuário é feita com Console.WriteLine(), um método padrão para projetos console. Já no arquivo Cliente.cs, veremos que a classe Cliente é bem simples, tem apenas suas propriedades autoimplementadas com get e set: CPF, nome, e-mail e idade. Voltando ao Program.cs, a partir da linha 3, definimos um novo objeto do tipo Cliente e passamos informações para suas quatro propriedades: Cliente cliente = new Cliente(); cliente.Nome = "André"; cliente.Cpf = "111.444.666-88"; cliente.Email = "[email protected]"; cliente.Idade 23; Na sequência, para exibir esses dados, usamos Console.WriteLine() chamando cliente.Nome, cliente.Cpf e cliente.Idade: Console.WriteLine(cliente.Nome); Console.WriteLine(cliente.Cpf); Console.WriteLine(cliente.Idade); Essa construção não está muito boa, pois estamos escrevendo três linhas de código para exibir informações do nosso objeto. Nossa meta é que o desenvolvedor consiga obter esse resultado simplesmente passando o objeto cliente como parâmetro ao Console.WriteLine(). Vamos adicionar essa opção na linha 13: using ModuloCliente; Cliente cliente = new Cliente(); cliente.Nome = "André"; cliente.Cpf = "111.444.666-88"; cliente.Email = "[email protected]"; cliente.Idade 23; Console.WriteLine(cliente.Nome); Console.WriteLine(cliente.Cpf); Console.WriteLine(cliente.Idade); Console.WriteLine(cliente); Ao posicionar o *mouse* sobre um parâmetro, é possível verificar mais informações sobre ele, como seu tipo. Nos três primeiros casos, o método Console.WriteLine() está recebendo Nome (*string*), Cpf (*string*) e Idade (inteiro). Já quando passamos cliente como parâmetro, trata-se de um **objeto** — é mais complexo, porém o código não alega nenhum erro. A classe Console tem algumas sobrecargas do método WriteLine() que recebem tipos diferentes, mas será que uma delas recebe o tipo Cliente? Para investigar esse tópico, vamos acessar os **metadados** da classe Console. Basta pressionar e segurar a tecla "Ctrl" e clicar sobre a palavra Console (por exemplo, no início da linha 13). Desse modo, abrimos os metadados da classe, onde conseguimos visualizar as propriedades e os métodos disponíveis nela. A partir da linha 1667, podemos verificar as sobrecargas do método WriteLine(): há uma que recebe bool, uma que recebe decimal, outra que recebe long e, na linha 1821, encontraremos uma sobrecarga que recebe um object. A seguir, vamos entender melhor o que é o tipo object. Voltando ao Program.cs, o Console.WriteLine() não resulta em erro quando passamos como parâmetro um objeto completo (como cliente), porque Cliente é um Object. Vamos dar uma olhada nos metadados de Object também. Na linha 15, escreveremos "Object" e clicaremos nele, segurando a tecla "Ctrl". Observando os metadados, notamos que a classe Object também tem alguns métodos disponíveis. Por exemplo, na linha 22, temos public virtual bool Equals(object? obj) — considerando nossos conhecimentos das regras de sobrecarga e sobrescrita, sabemos que esse método deve ser sobrescrito. Temos também GetHashCode(), GetType(), MemberwiseClone(), ReferenceEquals() e ToString(). Se nossa classe é um object, quer dizer que temos todos esses métodos disponíveis nela! Voltando ao Program.cs, na linha 13, vamos acrescentar um **ponto** após cliente para acessar suas propriedades e métodos. Veremos Nome, Cpf, Email e também ToString, GetType, GetHashCode, entre outros. Ou seja, a classe Cliente herda de Object! **Todas as classes do . NET herdam explícita ou implicitamente da classe Object.** Vamos remover a palavra Object da linha 13, pois não vamos usá-la mais. Em seguida, vamos ao arquivo Cliente.cs para fazer um teste. Na linha 9, para indicar que a classe Cliente herda de Object, utilizaremos o operador dois pontos (**:**) seguido da classe da qual estamos herdando: public class Cliente:Object Note que não ocorre nenhum erro, porém essa construção é redundante, pois o compilador do C# já entende que essa classe herda de Object. Tanto que já tínhamos aqueles métodos disponíveis (ToString e Equals, por exemplo). Portanto, vamos apagar :Object. Vamos relembrar qual era nosso objetivo inicial: usar um método para exibir todas as informações do objeto cliente. Para tanto, após as propriedades da classe Cliente, vamos sobrescrever o método ToString() que é virtualna classe Object. Na linha 16, basta digitarmos override e pressionar a barra de espaço para o Visual Studio mostrar algumas sugestões de métodos para sobrescrever. Ao selecionar ToString(), a IDE gerará automaticamente uma estrutura que chama ToString() da classe base, isto é, de Object: public override string ToString() { return base.ToString(); } Para testar, vamos ao Program.cs e passaremos cliente.ToString() como parâmetro do Console.WriteLine(), na linha 13: Console.WriteLine(cliente.ToString()); Em seguida, vamos rodar a aplicação, clicando no *play* no menu superior do Visual Studio. O projeto será compilado e renderizado. Como resultado, serão exibidas as propriedades que passamos aos três primeiros Console.WriteLine() seguido de "ModuloCliente.Cliente", como era mostrado anteriormente. Quando passamos um objeto para o WriteLine(), ele invoca o método ToString() do objeto. Como não há implementação, ele invoca da classe base (Object), que retorna o nome da classe. Então, na classe Cliente, em vez de retornar da classe base, vamos **redefinir o método ToString()**: public override string ToString() { return $"Nome: {this.Nome}, \n" + $"Email: {this.Email}, \n" + $"Idade: {this. Idade}, \n" + $"Cpf: {this.Cpf}"; } > A expressão \n serve para criar uma quebra de linha. Assim, definimos como as informações serão exibidas, quando invocarmos o método ToString() de Cliente. Vamos salvar e testar, pressionando o *play* na parte superior do Visual Studio. A partir da quarta linha, veremos o resultado do método ToString() de Cliente. Vale lembrar que, quando passamos o objeto completo para o Console.WriteLine(), ele também invoca o ToString(): Nome: André, Email: [email protected], Idade: 23, Cpf: 111.444.666-88 Então, aprendemos que existe uma superclasse do .NET chamada Object da qual todas as classes herdam. Não somente as classes, todos os tipos do .NET também herdam de Object, por meio da classe ValueType! Por exemplo, um inteiro, um float, um double. A Struct que representa os inteiros (o int), por exemplo, herda de ValueType. Dessa maneira, o inteiro também herda de Object pelo mecanismo da herança. Basicamente, no .NET, temos dois tipos de objetos: por referência (onde entram nossas classes) e os ValueType (os tipos de valor, como inteiro): ![Diagrama sobre a classe Object. Há três níveis. No nível inferior, à direita, há um quadrado representando Struct. No segundo nível, há dois quadrados: ValueType à direita e MinhaClasse à esquerda. No nível superior, há um grande quadrado representando Class Object, com três métodos de exemplo. Há uma seta que liga Struct a ValueType, uma seta que liga ValueType a Classe Object e uma seta que liga MinhaClasse a Class Object.]( Como tem sido sua experiência aprendendo C# e orientação a objetos na Alura? Tem gostado? Não deixe de praticar bastante. Nos vemos na próxima!

  • DevOps

    Shift Left em DevOps

    Geralmente em processos de desenvolvimento de software as atividades de **testes**, **segurança** e **deploy** são deixadas para o final, causando assim gargalos, bloqueios e dificuldades em se finalizar os ciclos de desenvolvimento e entrega de software. **Shift Left** é uma prática que consiste em **deslocar** para a **esquerda** tais atividades, que normalmente estão mais à direita no processo, para que assim desde o **ínicio** de cada ciclo elas possam ser discutidas e planejadas, evitando problemas e acelerando a entrega de software. --- # Transcrição Olá, tudo bem? Meu nome é **Rodrigo Ferreira**, sou um dos instrutores da Alura, da Escola de Programação e DevOps. > **Audiodescrição:** Rodrigo Ferreira é uma pessoa de pele clara, com olhos castanhos e cabelos também castanhos e lisos. Usa uma camiseta cinza lisa. No fiundo, uma luz LED verde ilumina uma parede com redes de gatos. Hoje, aprenderemos sobre ***Shift Left***. Vamos lá? > **Audiodescrição:** Abertura do Alura +. No fundo toca uma música animada. Sobre um fundo azul, as palavras "Mergulhe", "em", "tecnologia" piscam na tela. Depois aparece a logo do Alura+. Quando a abertura termina, a câmera do Rodrigo está no canto inferior esquerdo e, no centro da tela, temos "Shift Left" escrito em azul-claro sob o fundo azul-marinho. ## Metodologias ágeis e o trabalho como dev Talvez esse termo não seja familiar, mas é **muito utilizado** por pessoas que trabalham com **DevOps** e **metodologias ágeis**. Entenderemos melhor o que ele significa e como pode nos ajudar. Se trabalhamos em uma empresa de desenvolvimento de software, é comum fazermos **parte de um time**. Desenvolver software não é apenas escrever código, tornou-se uma tarefa complexa que envolve várias etapas e pessoas. Antigamente, o **modelo Cascata**, uma abordagem comum para organizar o desenvolvimento de software, como podemos observar na imagem a seguir: ![Diagrama de fluxo simples do processo de desenvolvimento de software com cinco etapas sequenciais conectadas por setas na direção da esquerda para a direita: PLANEJAMENTO (roxo claro), ANÁLISE (azul claro), CODIFICAÇÃO (verde claro), TESTES (amarelo claro), e DEPLOY (rosa claro).]( Era uma abordagem comum para organizar o desenvolvimento de software. Esse modelo incluía etapas como: * Planejamento, * Análise * Codificação * Testes * Deploy Com o deploy, a aplicação era liberada para o acesso das pessoas usuárias terem acesso. Entretanto, esse processo tinha **problemas**, percebidos ao longo dos anos. Por isso, com o tempo, surgiram **novas abordagens**, como o **manifesto ágil e as metodologias ágeis**, amplamente utilizadas hoje. No entanto, mesmo com metodologias ágeis, como o Scrum, **ainda precisamos realizar atividades do modelo cascata**, mas aconteciam durante as sprints (ciclos de desenvolvimento). Dependendo da empresa e do projeto, pode haver etapas adicionais, como **segurança**, onde são realizados testes para garantir a segurança da aplicação. Em outros casos, pode ser que uma das etapas sejam substituídas ou não realizadas. Mesmo com metodologias ágeis, **ainda precisamos dividir tarefas e perfis**. É comum trabalharmos em times com pessoas em diferentes papéis, como codificadoras e testadoras. ### Desafios da metodologia ágil Esse tipo de ambiente, com separação de atividades, pode levar a **problemas**, mesmo em ambientes ágeis. Um problema comum é a **criação de barreiras** entre responsabilidades e papéis, que ficam com pessoas ou times diferentes, resultando em silos e **isolamento**, ao invés de colaboração. ![Diagrama anterior, mas com linhas verticais grossas na cor preta separando e isolando cada processo.]( Isso pode causar **problemas**, especialmente nas **últimas etapas do processo**, como testes e *deploy*. Um dos problemas é a **espera**. As etapas finais, como *deploy*, só são executadas no final, deixando as pessoas responsáveis por essas etapas ociosas. Outro problema é o **travamento**, porque as atividades são realizadas em ciclos. As pessoas responsáveis pelas últimas tarefas vão receber o projeito no final do ciclo, resultando em **sobrecarga de trabalho e atrito entre as pessoas**. As pessoas do final do processo precisam fazer horas extras para conseguir cumprir sua etapa antes do final do ciclo para entregarem sua parte, ampliando as chances de tensão entre os times do final do processo com os times do começo. > **Problemas** > > * Espera > * Gargalo > * Sobrecarga de trabalho > * Atrito entre as pessoas/times Consequentemente, esses problemas podem gerar conflitos entre times, e eu trouxe uma imagem engraçada que representa essa situação, como um cachorro e um gato brigando: ![Fotografia colorida editada para fins de humor. Na fotografia, um cachorro está com uma postura tensa e raivosa, à esquerda, mostrando os dentes para um gato a sua frente, indicando que pudesse estar rosnando. O gato, também está com uma postura bastante raivosa e parece rosnar para o cachorro. Além disso, a imagem foi capturada quando o gato estava prestes a dar uma patada no cachorro. Para fins de humor, adicionarem uma garrafa na pata do gato que bateria no cachorro. Essa cena está acontecendo em uma praia rochosa. Na parte de baixo da foto, está escrito "Devs vs Ops", como se o cachorro representasse o time de Devs e o gato representasse o time de Operações.]( Isso costuma acontecer com os times de desenvolvimento e operações, mas pode acontecer com outros times também, como programação e testes. A considerada demora da entregam o que pode levar a discussões e brigas, **criando mais barreiras entre os times**. ### Solucionando atritos com Shift Left Se identificamos essa situação em nossa empresa, onde as pessoas do final do processo estão sobrecarregadas, podemos minimizar esses problemas com o conceito de **Shift Left**. O termo "Shift" pode lembrar a tecla de mesmo nome, mas não se trata disso, e sim de um **conceito**. A ideia é **deslocar as últimas etapas do processo**, como testes, segurança e *deploy*, **para a esquerda**, ou seja, para o **início do processo**. Por isso "**Shift Left**" (Deslocar para esquerda). Por exemplo, pode-se discutir desde o início quais serão os testes aplicados e, dependendo da implementação, como de testes automatizados, também pode ser iniciado. O Mesmo funciona para o *deploy*. Pode-se discutir se será necessária alguma estrutura, como firewall ou servidor, e antecipar alguns processos. Isso significa **planejar e discutir essas etapas desde o início**, evitando problemas e retrabalho. Ao aplicar o Shift Left, promovemos a **colaboração** entre os times, eliminando conflitos e melhorando o planejamento. Isso evita travamentos e sobrecarga nas etapas finais, agilizando a entrega do software e evitando retrabalho. **Vantagens do Shift Left:** * Colaboração entre pessoas/times * Planejamento prévio das etapas de teste, segurança e entrega * Evita travamentos no processo de desenvolvimento * Agiliza a entrega do software * Evita retrabalho Essas são as vantagens de utilizar a prática do Shift Left. Se ainda não a utilizam, esperamos que esse conhecimento seja útil no seu dia a dia. Podemos aplicar essa ideia em times e empresas que estejam sofrendo com esses problemas de gargalos, retrabalhos e travamentos, deslocando as últimas etapas para a esquerda, **promovendo planejamento e colaboração**. Nos vemos em outros cursos e conteúdos da Alura. Obrigado por assistir. Um abraço!

  • Mobile

    Kotlin e carreira dev na Idwall

    # TranscriçãoMeu nome é Augusto Goes, sou desenvolvedor Android e hoje falaremos um pouco sobre Kotlin e toda a potência que essa linguagem de programação tem.Kotlin é uma linguagem de programação de **código aberto**, ou seja, qualquer pessoa pode utilizar, modificar, distribuir e até visualizar o código-fonte. Ele foi criado em 2010 pela Jet Brains, uma empresa líder mundial na criação de ferramentas para o desenvolvimento e sua versão estável foi lançada apenas em 2016.Em 2017, o Google anunciou que Kotlin seria oficialmente suportado para desenvolvimento de aplicativos Android. Pouco depois, em 2019, o Google anunciou o Kotlin como a linguagem principal para desenvolvedores de aplicativos. Assim, tornou-se um projeto muito sólido.O Kotlin é **gerenciado pela Kotlin Foundation**, um grupo criado pela Jet Brains e pelo Google com a tarefa de promover e desenvolver continuamente essa linguagem de programação.O Kotlin é oficialmente **compatível com o desenvolvimento do Google para Android**, o que facilita quando precisamos buscar informações, pois sempre encontramos um campo que explique como determinado recurso funciona nessa linguagem.A seguir, vamos falar sobre os pontos positivos do Kotlin. O primeiro deles é a **interoperabilidade com o Java**, o que significa que conseguimos chamar o código Java do Kotlin e vice-versa. Dessa forma, é possível converter de forma gradual, não é necessário fazer de uma única vez. Assim podemos ter um projeto tanto em Java quanto em Kotlin.Outro ponto positivo do Kotlin é o **código mais seguro**. Com o non-null e o nullable inclusos no sistema de tipos, evitamos o problema do NullPointerException. As variáveis não são nulas por padrão, permitindo a verificação nula durante o tempo de compilação, o que reduz as ocorrências do já mencionado NullPointerException durante o tempo de execução.Segundo o Google, aplicativos que utilizam código Kotlin têm **20% menos chances de apresentar falhas**. Ainda de acordo com a empresa, essa linguagem de programação moderna e estaticamente tipada é **utilizada por mais de 60% dos desenvolvedores Android profissionais**. Ela ajuda a aumentar a produtividade, a satisfação do consumidor e a segurança do código.Um estudo realizado pela Jet Brains mostrou que o Kotlin é **utilizado em 96% dos novos projetos** e que ele está **entre as 5 linguagens de crescimento mais rápido**, ou seja, a comunidade tem aderido muito bem ao Kotlin. Alguns exemplos de aplicativos desenvolvidos com Kotlin são Netflix, Evernote, Duolingo, Amazon Kindle e meuID.Na sequência, comentarei sobre a minha trajetória. Por formação, sou engenheiro civil, contudo de coração sou desenvolvedor Android, amo essa área. Comecei estudando C++ e Java na faculdade, porém nada de modo profissional. Depois de algum tempo, não estava me adaptando bem à minha antiga função e já pensava em mudar de área, conversei com amigos desenvolvedores e eles recomendaram que eu estudasse Kotlin. Segui o conselho — não voltei a estudar C++ nem Java, fui direto para o Kotlin.Uma vantagem dessa linguagem é sua **sintaxe concisa**: comparando lado a lado um código em Kotlin com outro em Java, o primeiro é visualmente mais limpo. Ademais, por ser a linguagem oficial do Google, encontramos facilmente documentações, exemplos e bibliotecas, o que facilita bastante nosso dia a dia.Agora, vamos falar sobre a **idwall**, a empresa onde trabalho. Somos uma *regtech* criada por uma dupla de desenvolvedores. Estamos sempre buscando maneiras de solucionar vários problemas enfrentados no Brasil, como desconfiança, fraudes e burocracias.Para contextualizar: a quantia de dinheiro perdida por conta de fraudes gira em torno de 213 bilhões de reais por ano e o intervalo entre uma tentativa de fraude e outra é de 16 segundos!Nossos produtos são voltados para prevenção de fraudes e de golpes de identidade. Temos como solução o reconhecimento facial, a extração de dados de imagens de documentos e a validação de informações em fontes de dados.Sob este cenário desafiador, me juntei à idwall, mais especificamente ao time de Android do **meuID**, que é o primeiro aplicativo de identidade digital que reúne os principais documentos em um único lugar.Quando esse projeto foi iniciado em 2019, depois de muita discussão chegamos à conclusão que deveríamos usar Kotlin, porque o Google trouxe muita segurança ao estabelecer essa linguagem como a principal para desenvolvimento Android. Por isso, optamos por ela e todos seus benefícios. Até hoje, não nos arrependemos dessa decisão, tem sido ótimo trabalhar com Kotlin, desenvolvendo um aplicativo de qualidade para os usuários.Desde então, não utilizamos Kotlin apenas para desenvolvimento em Android. Fizemos diversos experimentos na idwall — alguns *scripts*, algumas POCs em *back-end*. Apesar de estarmos focados no desenvolvimento Android, essa linguagem apresenta um leque de opções.Como exemplo, recentemente criamos uma ferramenta com Kotlin para nos auxiliar em nossos *releases*. Apesar de ser um projeto de *back-end* e nossa equipe estar mais focada no dia a dia em Android, foi possível dar andamento nessa ideia e criar essa ferramenta com Kotlin. De uma maneira simples, compreendemos que não precisamos ficar presos ao desenvolvimento para Android, o Kotlin é útil para outros projetos também.Se você chegou até aqui, acredito que tenha interesse em aprender mais sobre Kotlin e você está no lugar certo. Não digo como ex-aluno, pois ainda tenho uma assinatura e, quando preciso, abro o navegador e acesso alura.com.br para tirar minhas dúvidas e fazer mais cursos. Quando decidi mudar de engenheiro civil para desenvolvedor, não pensei duas vezes e procurei pelo melhor lugar para estudar: a Alura!

  • 1Página 1…262Página 262…389Página 389
    1Página 1…260Página 260261Página 261262Página 262263Página 263
    264
    Página 264
    …
    389Página 389