Ir ao conteúdo
  • Cadastre-se

hermanosolano

Membros Juniores
  • Total de itens

    7
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Olá gente, meus cumprimentos. O código em questão está aqui: Ou você pode baixá-lo aqui embaixo. Pois bem, me dei conta de uma coisa simples. O que tá na classe Principal poderia estar em uma classe Menu. E na classe Principal estaria somente o chamamento da classe Menu para ser executada os comandos da classe Menu. --> Vejam só nas imagens Porém, não consigo consertar o erro do código. O erro diz algo referente ao uso do mas não posso tirar por ser fim de uma instrução, mas quando tiro ele dá erro no uso do colchetes. Os erros em programação é uma coisa maravilhosa, a gente não programa pra fazer o programa, mas pra solucionar os erros ahahah. Mas enfim, alguém pode me dar umas dicas de como posso fazer nesse caso? crudjavapoo.zip
  2. Olá gente, meus cumprimentos. Postei o código completo do código aqui: https://www.clubedohardware.com.br/forums/topic/1397647-crud-em-java-poo-apenas-sugest%C3%B5es-de-melhorias/ e queria explorar o item III: (II) conceitos de poo como herança, encapsulamento e polimorfismo se estão bem empregados; Irei fazer alguns comentários e me digam se eu estou errado ou não. 1 - O conceito de herança no meu código está relacionado a classe Pessoa, Aluno e Instrutor. A classe Pessoa é uma classe abstrata, isto é, é uma classe que serve de modelo (nesse caso para Aluno e Instrutor). Ela sempre será uma superclasse genérica, e suas subclasses serão mais específicas. E está representado por extends: public class Aluno extends Pessoa { //A CLASSE ALUNO HERDA OS ATRIBUTOS DA CLASSE PESSOA public class Instrutor extends Pessoa { //A CLASSE INSTRUTOR HERDA OS ATRIBUTOS DA CLASSE PESSOA 2 - Ao meu entender, o conceito de encapsulamento (e não inseri o conceito de interface ainda) está embutido no fato dos atributos serem privados, já que o encapsulamento serve para controlar o acesso aos atributos e métodos de uma classe. 3 - Em relação ao Polimorfismo (sobrescrita, sobrecarga e tipo) não sei ao certo explicar onde de fato empreguei. Eu fiz esse código com a ajuda de um amigo, ele me deu umas dicas comentando algumas coisas, mas ainda assim não entendi direito o assunto de polimorfismo empregado no código, se alguém puder me ajudar e explicar no código. O que acham?
  3. Olá gente, meus cumprimentos. Feito o código e estando executável, queria uma ajuda para a melhoria desse código em quesito de legebilidade e praticidade. Dicas/melhorias/sugestões/opiniões referente a: (I) nomes de classes, objetos, métodos que coloquei no código; (II) conceitos de poo como herança, encapsulamento e polimorfismo se estão bem empregados; (III) a classe principal e as outras classes se estão bem empregadas; (IV) se os comentários (obs:. alguns comentários no código foi feito por um amigo que estava me ajudando) estão bem empregados e onde poderia comentar mais pra deixar mais explicativo. Se você achar melhor mudar algo é só dizer, quero melhorar esse projeto para deixar com a cara de Java POO. Obrigado! --> CLASSE PRINCIPAL package execucao; import java.util.Scanner; import controle.ControladorAluno; import controle.ControladorInstrutor; import modelo.Aluno; import modelo.Endereco; import modelo.Instrutor; public class Principal { public static void main(String[] args) { Scanner ler = new Scanner(System.in); //ler objeto tipo scanner serve para ler dados do teclado int opcao; // VARIÁVEIS LOCAIS Aluno aluno; Endereco endereco; Instrutor instrutor; String antigoNome; String nome; String cpf; String data_nascimento; String bairro; String cep; String cargo; int escolha; //Pessoa p = new Instrutor("a", "a"); // polimofismo de tipo uma super classe pode instanciar uma sub class //Instrutor i = new Pessoa("a", "b"); // uma sub class não pode instanciar super class //objetos ControladorAluno controladorAluno = new ControladorAluno(); ControladorInstrutor controladorInstrutor = new ControladorInstrutor(); do { System.out.println("==================================================================="); System.out.println("\t\tSEJA BEM-VINDO(A) AO SISTEMA DE CADASTRO:\n\n\t\t1 - Aluno? Cadastre-se logo!\n\t\t2 - Instrutor? Cadastre-se de imediato!\n\t\t3 - Pesquisar cadastro por CPF.\n\t\t4 - Listar cadastro(s).\n\t\t5 - Atualizar cadastro(s).\n\t\t6 - Deletar cadastro(s). \n\t\t7 - Sair do sistema."); System.out.print("===================================================================\n"); opcao = ler.nextInt(); ler.nextLine(); switch (opcao) { case 1: System.out.print("==================================================================\n"); System.out.println("--> Informe o nome do aluno: "); nome = ler.nextLine(); System.out.println("\n--> Informe o cpf: "); cpf = ler.nextLine(); System.out.println("\n--> Informe a data de nascimento: "); data_nascimento = ler.nextLine(); System.out.println("\n--> Informe o bairro que reside: "); bairro = ler.nextLine(); System.out.println("\n--> Informe o CEP: "); cep = ler.nextLine(); System.out.print("==================================================================\n"); endereco = new Endereco(bairro,cep); aluno = new Aluno(nome, cpf); //excluido as outras variaveis controladorAluno.cadastrarAluno(aluno); System.out.println("\n"); break; case 2: System.out.print("==================================================================\n"); System.out.println("--> Informe o nome do instrutor: "); nome = ler.nextLine(); System.out.println("\n--> Informe o cpf: "); cpf = ler.nextLine(); System.out.println("\n--> Informe a data de nascimento: "); data_nascimento = ler.nextLine(); System.out.println("\n--> Informe o bairro que reside: "); bairro = ler.nextLine(); System.out.println("\n--> Informe o CEP: "); cep = ler.nextLine(); System.out.println("\n--> Informe o cargo:"); cargo = ler.nextLine(); System.out.print("==================================================================\n"); endereco = new Endereco(bairro,cep); instrutor = new Instrutor(nome, cpf, data_nascimento, cargo, endereco, cargo); controladorInstrutor.cadastrarInstrutor(instrutor); System.out.println("\n"); break; case 3: System.out.println("\n\tQual cadastro você deseja buscar? \n"); System.out.println("\t\t1.Buscar Cadastro do Aluno"); System.out.println("\t\t2.Buscar Cadastro do Instrutor"); escolha = ler.nextInt(); ler.nextLine(); if(escolha == 2) { System.out.println("--> Digite o CPF do Instrutor desejado! \n" ); cpf = ler.nextLine(); controladorInstrutor.pesquisarInstrutor(cpf); }if(escolha == 1) { System.out.println("--> Digite o CPF do Aluno desejado! \n" ); cpf = ler.nextLine(); controladorAluno.pesquisarAluno(cpf); } break; case 6: System.out.println("\n\tQual Cadastro você deseja deletar? \n"); System.out.println("\t\t1.Deletar Cadastro Aluno"); System.out.println("\t\t2.Deletar Cadastro Instrutor"); escolha = ler.nextInt(); ler.nextLine(); if(escolha == 1) { System.out.println("--> Digite o CPF do Aluno que você deseja deletar!" ); cpf = ler.nextLine(); controladorAluno.deletarAluno(cpf); }if(escolha == 2) { System.out.println("--> Digite o CPF do Instrutor que você deseja deletar!" ); cpf = ler.nextLine(); controladorInstrutor.deletarInstrutor(cpf); } break; case 5: System.out.println("\n\tQual Cadastro você deseja atualizar? \n"); System.out.println("\t\t1.Atualizar Cadastro Aluno"); System.out.println("\t\t2.Atualizar Cadastro Instrutor"); escolha = ler.nextInt(); if(escolha == 1) { System.out.println("--> Digite o nome do Aluno que você deseja atualizar!" ); antigoNome = ler.nextLine(); ler.nextLine(); System.out.println("--> Digite um novo novo Nome!"); nome = ler.nextLine(); System.out.println("--> Digite um novo nova Data de Nascimento!"); data_nascimento = ler.nextLine(); System.out.println("--> Digite um novo bairro:"); bairro = ler.nextLine(); System.out.println("--> Digite um novo cep:"); cep = ler.nextLine(); endereco = new Endereco(bairro,cep); controladorAluno.atualizarAluno(antigoNome, nome, data_nascimento, endereco); } if(escolha == 2) { System.out.println("--> Digite o nome do Instrutor que você deseja atualizar: " ); antigoNome = ler.nextLine(); ler.nextLine(); System.out.println("--> Digite um novo novo nome: "); nome = ler.nextLine(); System.out.println("--> Digite um novo novo email: "); data_nascimento = ler.nextLine(); System.out.println("--> Digite um novo bairro: "); bairro = ler.nextLine(); System.out.println("--> Digite um novo cep: "); cep = ler.nextLine(); System.out.println("--> Digite um novo novo cargo: "); cargo = ler.nextLine(); endereco = new Endereco(bairro,cep); controladorInstrutor.atualizarInstrutor(antigoNome, nome, data_nascimento, endereco, cargo); System.out.println("\n"); } break; case 4: System.out.println("\n\tQual Cadastro você deseja listar? \n"); System.out.println("\t\t1.Listar Cadastro Aluno"); System.out.println("\t\t2.Listar Cadastro Instrutor"); escolha = ler.nextInt(); if(escolha == 2) { controladorInstrutor.listarInstrutor(); }if(escolha == 1) { controladorAluno.listarAluno(); } break; } } while(opcao !=7); } } --> CLASSE PESSOA (serviu como classe abstrata e para que seja herdada para a classe Aluno e Instrutor package modelo; public abstract class Pessoa { //CLASSE ABSTRATA private String nome; private String cpf; private String data_nascimento; private String sexo; private Endereco endereco; public Pessoa(String nome,String cpf) { //CONSTRUTOR SERVIRÁ PARA O INSTRUTOR this.nome = nome; this.cpf = cpf; } public Pessoa(String nome,String cpf,String data_nascimento,String sexo,String celular,Endereco endereco) { this.nome = nome; this.cpf = cpf; this.data_nascimento = data_nascimento; this.sexo = sexo; this.endereco = endereco; // agregação } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getCpf() { return cpf; } public String getData_nascimento() { return data_nascimento; } public void setData_nascimento(String data_nascimento) { this.data_nascimento = data_nascimento; } public Endereco getEndereco() { return endereco; } public void setEndereco(Endereco endereco) { this.endereco = endereco; } public String getSexo() { return sexo; } } --> CLASSE ALUNO package modelo; import java.util.Random; import modelo.Aluno; import modelo.Endereco; public class Aluno extends Pessoa { //A CLASSE ALUNO HERDA OS ATRIBUTOS DA CLASSE PESSOA private int numMatricula; Random random = new Random(); //GERAR O NÚMERO DA MATRÍCULA DE FORMA ALEATÓRIA public Aluno(String nome,String cpf) { //CONSTRUTOR 1 super(nome,cpf); this.numMatricula = random.nextInt(1000000); } public Aluno(String nome,String cpf,String email,String sexo,String celular,Endereco endereco) { //CONSTRUTOR 2 super(nome,cpf,email,sexo,celular,endereco); this.numMatricula = random.nextInt(10000); } //MÉTODOS ACESSORES PARA TER ACESSO O ATRIBUTO MATRÍCULA public int getNumMatricula() { return numMatricula; } public String getNome() { return "Aluno: " + super.getNome(); } } --> CLASSE INSTRUTOR package modelo; public class Instrutor extends Pessoa { //A CLASSE INSTRUTOR HERDA OS ATRIBUTOS DA CLASSE PESSOA private String cargo; public Instrutor(String nome,String cpf) { //sobrecarga super(nome,cpf); } public Instrutor(String nome,String cpf,String email,String celular,Endereco endereco,String cargo) { super(nome,cpf,email,celular, cargo, endereco); // CHAMANDO O CONSTRUTOR DA CLASSE PAI this.cargo = cargo; } public String getCargo() { return cargo; } public void setCargo(String cargo) { this.cargo = cargo; } public String getNome() { return "Instrutor: " + super.getNome(); } } --> CLASSE ENDERECO package modelo; public class Endereco { private String bairro; private String cep; //MÉTODOS ESPECIAIS public Endereco(String bairro,String cep) { //CONSTRUTOR this.bairro = bairro; this.cep = cep; } //MÉTODOS ACESSORES public String getBairro() { return bairro; } public void setBairro(String bairro) { this.bairro = bairro; } public String getCep() { return cep; } public void setCep(String cep) { this.cep = cep; } } --> CLASSE CONTROLADORALUNO package controle; import java.util.ArrayList; import modelo.Aluno; import modelo.Endereco; public class ControladorAluno { //tipo de dados para listas private ArrayList<Aluno> alunos; public ControladorAluno() { alunos = new ArrayList<>(); } public void cadastrarAluno(Aluno aluno){ alunos.add(aluno); System.out.println("\n\t\t" + aluno.getNome() + "\n\t\tCadastrado(a) com sucesso!"); } public void pesquisarAluno(String cpf) { for(int i = 0; i < alunos.size(); i++ ) { if(alunos.get(i).getCpf().equals(cpf)) { System.out.println(alunos.get(i).getNome() + " numero da matrícula: " + alunos.get(i).getNumMatricula()); } } } public void listarAluno(){ System.out.println("\tLista de Alunos cadastrados: "); if(alunos.size() == 0) { System.out.println("\t<<<<Nenhum aluno foi cadastrado.>>>>"); }else { for (Aluno aluno : alunos) { System.out.println("\t" + aluno.getNome()); } } } public void atualizarAluno(String antigoNome,String novoNome, String data_nascimento,Endereco endereco) { for(int i = 0; i < alunos.size(); i++) { if(alunos.get(i).getNome().equals(antigoNome)) { alunos.get(i).setNome(novoNome); alunos.get(i).setData_nascimento(data_nascimento); alunos.get(i).setEndereco(endereco); } } } public void deletarAluno(String cpf) { for(int i = 0; i < alunos.size(); i++ ) { if(alunos.get(i).getCpf().equals(cpf)) { alunos.remove(i); System.out.println("\tO Aluno foi removido"); }else { System.out.println("\tAluno não encontrado"); } } } } --> CLASSE CONTROLADORINSTRUTOR package controle; import java.util.ArrayList; import modelo.Endereco; import modelo.Instrutor; public class ControladorInstrutor { private ArrayList<Instrutor> instrutores; public ControladorInstrutor() { //CONSTRUTOR instrutores = new ArrayList<>(); } //MÉTODOS public void cadastrarInstrutor(Instrutor instrutor){ instrutores.add(instrutor); System.out.println("\n\t\t" + instrutor.getNome() + "\n\t\tCadastrado(a) com sucesso!"); } public void pesquisarInstrutor(String cpf) { for(int i = 0; i < instrutores.size(); i++ ) { if(instrutores.get(i).getCpf().equals(cpf)) { System.out.println("\t" + instrutores.get(i).getNome()); } } } public void listarInstrutor(){ System.out.println("\tLista de Instrutores cadastrados: "); if(instrutores.size() == 0) { System.out.println("\t<<<<Nenhum instrutor foi cadastrado>>>>"); }else { for (Instrutor instrutor : instrutores) { System.out.println("\t" + instrutor.getNome()); } } } public void atualizarInstrutor(String antigoNome,String novoNome, String data_nascimento,Endereco endereco,String cargo) { for(int i = 0; i < instrutores.size(); i++) { if(instrutores.get(i).getNome().equals(antigoNome)) { instrutores.get(i).setNome(novoNome); instrutores.get(i).setData_nascimento(data_nascimento); instrutores.get(i).setEndereco(endereco); instrutores.get(i).setCargo(cargo); } } } public void deletarInstrutor(String cpf) { for(int i = 0; i < instrutores.size(); i++ ) { if(instrutores.get(i).getCpf().equals(cpf)) { instrutores.remove(i); System.out.println("\tO instrutor foi removido"); }else { System.out.println("\tInstrutor não encontrado"); } } } } crudjavapoo.zip
  4. Olá gente, o código funciona perfeitamente, mas eu quero deixá-lo mais legível em relação a organização. Então, eu estou tentando mover o método cadastrar() e listarCadastros() para a classe Aluno e assim chamar na função main somente. Nesse sentido, como poderia proceder? (já fiz algumas tentativas mas nada) package projeto; import java.util.List; import java.util.Scanner; import java.util.ArrayList; import javax.swing.JOptionPane; public class Principal { private Scanner l; private boolean execute; private List<Aluno> alunos; public static void main(String[] args) { new Principal(); } private Principal() { l = new Scanner(System.in); execute = true; alunos = new ArrayList<Aluno>(); System.out.println("=============================\\nBEM VINDO AO CADASTRO DE USUÁRIOS\\n============================="); while (execute) { String opcao = menu(); if (opcao.equalsIgnoreCase("n")) { cadastrar(); } else if (opcao.equalsIgnoreCase("l")) { listarCadastros(); } else if (opcao.equalsIgnoreCase("x")) { execute = false; } else { System.out.println("\\nOpção Inválida seu iniciante !!! \\n"); } } } private String menu() { System.out.println("Selecione a opção:\\n"); System.out.println("N - Novo cadastro"); System.out.println("L - Listar cadastros"); System.out.println("X - Sair\\n"); return l.nextLine(); } private void cadastrar() { boolean cadastrando = true; while (cadastrando) { System.out.println("=============================\\nCadastro de Usuários\\n"); Aluno aluno = new Aluno(); aluno.setNome(textInput(" --> Nome:")); aluno.setCpf(textInput(" --> CPF: ")); aluno.setNascimento(textInput(" --> Data de Nascimento: ")); System.out.println("=============================\\n"); String cadastrar = textInput("==================\\nCONFIRMAR CADASTRO (S/N)?\\n=================="); if (cadastrar.equalsIgnoreCase("s")) { System.out.println("==================\\n STATUS: Adicionado com sucesso \\n==================\\n"); alunos.add(aluno); } else if (cadastrar.equalsIgnoreCase("n")){ System.out.println("==================\\n STATUS: Cadastro Ignorado\\n==================\\n"); } else { System.out.println("\\nOpção inválida seu iniciante, vou ignorar o cadastro só pra você ter que digitar de novo !!! \\n"); } String continua = textInput("Continuar cadastrando (S/N) ?"); if (continua.equalsIgnoreCase("N")) { cadastrando = false; } else if (continua.equalsIgnoreCase("s")){ } else { System.out.println("\\nOpção inválida seu iniciante, eu vou sair só porque você não colabora !!! \\n"); cadastrando = false; } } } private void listarCadastros() { if (alunos.size() == 0) { System.out.println("\\nNão existem cadastros !!!\\n"); } else { System.out.println("==================================\\nLista de Cadastros\\n"); for (int i = 0; i < alunos.size(); i++) { Aluno d = alunos.get(i); System.out.println("Cadastro número: " + i); System.out.println("\\tNome: " + d.getNome()); System.out.println("\\tCPF: " + d.getCpf()); System.out.println("\\tData de Nascimento: " + d.getNascimento() + "\\n"); } System.out.println("\\nLista Finalizada\\n==================================\\n"); } } private String textInput(String label) { System.out.println(label); return l.nextLine(); } } _________________________ package projeto; public class Aluno { private String nome; private String cpf; private String nascimento; public Aluno(){ } public String getNome(){ return nome; } public void setNome(String name){ this.nome = name; } public String getCpf(){ return cpf; } public void setCpf(String cpf){ this.cpf = cpf; } public String getNascimento(){ return nascimento; } public void setNascimento(String nascimento){ this.nascimento = nascimento; } }
  5. @Luís Roberto C. da Silva Beleza, a convenção do nome em colocar Principal é só um vício mesmo, mas valeu ^^ Mas a ideia de criar uma classe Cadastro é pra que a classe Principal não fique com muita coisa, essa é a intenção. Na Main tem muito método como cadastrarAluno(), listarCadastro() que dá pra colocar em uma outra classe pra função Main não ficar poluída. adicionado 2 minutos depois o código completo é esse da Principal (Main): import java.util.List; import java.util.Scanner; import java.util.ArrayList; public class Principal { private Scanner l; private boolean execute; private List<Aluno> alunos; public static void main(String[] args) { new Principal(); } private Principal() { l = new Scanner(System.in); execute = true; alunos = new ArrayList<Aluno>(); System.out.println("=============================\nBEM VINDO AO CADASTRO DE USUÁRIOS\n============================="); while (execute) { String opcao = menu(); if (opcao.equalsIgnoreCase("n")) { cadastrar(); } else if (opcao.equalsIgnoreCase("l")) { listarCadastros(); } else if (opcao.equalsIgnoreCase("x")) { execute = false; } else { System.out.println("\nOpção Inválida seu iniciante !!! \n"); } } } private String menu() { System.out.println("Selecione a opção:\n"); System.out.println("N - Novo cadastro"); System.out.println("L - Listar cadastros"); System.out.println("X - Sair\n"); return l.nextLine(); } private void cadastrar() { boolean cadastrando = true; while (cadastrando) { System.out.println("=============================\nCadastro de Usuários\n"); Aluno aluno = new Aluno(); aluno.setNome(textInput(" --> Nome:")); aluno.setCpf(textInput(" --> CPF: ")); aluno.setNascimento(textInput(" --> Data de Nascimento: ")); System.out.println("=============================\n"); String cadastrar = textInput("==================\nCONFIRMAR CADASTRO (S/N)?\n=================="); if (cadastrar.equalsIgnoreCase("s")) { System.out.println("==================\n STATUS: Adicionado com sucesso \n==================\n"); alunos.add(aluno); } else if (cadastrar.equalsIgnoreCase("n")){ System.out.println("==================\n STATUS: Cadastro Ignorado\n==================\n"); } else { System.out.println("\nOpção inválida seu iniciante, vou ignorar o cadastro só pra você ter que digitar de novo !!! \n"); } String continua = textInput("Continuar cadastrando (S/N) ?"); if (continua.equalsIgnoreCase("N")) { cadastrando = false; } else if (continua.equalsIgnoreCase("s")){ // se for s sai do if e volta para o inicio do while } else { System.out.println("\nOpção inválida seu iniciante, eu vou sair só porque você não colabora !!! \n"); cadastrando = false; } } } private void listarCadastros() { if (alunos.size() == 0) { System.out.println("\nNão existem cadastros !!!\n"); } else { System.out.println("==================================\nLista de Cadastros\n"); for (int i = 0; i < alunos.size(); i++) { Aluno d = alunos.get(i); System.out.println("Cadastro número: " + i); System.out.println("\tNome: " + d.getNome()); System.out.println("\tCPF: " + d.getCpf()); System.out.println("\tData de Nascimento: " + d.getNascimento() + "\n"); } System.out.println("\nLista Finalizada\n==================================\n"); } } private String textInput(String label) { System.out.println(label); return l.nextLine(); } } adicionado 5 minutos depois @Luís Roberto C. da Silva Essa não seria uma prática ideal? Se não, como posso fazer com que a função Main não fique com muita coisa (poluída)?
  6. Olá gente, meus cumprimentos... estou fazendo um código e a minha lógica está assim: quero criar três classe, uma a principal, outra aluno e a outra cadastro. Na classe Aluno crio os atributos (nesse caso só o atributo nome), na classe Cadastro eu crio métodos que setem o atributo nome da classe Aluno, por fim pra na classe Principal eu chamar o método da classe Cadastro. public class Aluno { private String nome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } } public class Cadastro { void cadastrar() { boolean cadastrando = true; while (cadastrando) { System.out.println("=============================\nUsuário\n"); Aluno aluno = new Aluno(); aluno.setNome(textInput(" --> Nome:")); //aqui tá dando erro System.out.println("=============================\n"); } } private void listarCadastros() { System.out.println("==================================\nLista de Usuários\n"); //Aluno d = alunos.get(); //System.out.println("\tNome: " + d.getNome()); System.out.println("\nLista Finalizada\n==================================\n"); } } public class Principal { public static void main(String[] args) { Cadastro cadastro = new Cadastro(); cadastro.cadastrar(); cadastro.listarCadastro(); } } É algum conceito simples que eu estou em passando? Estou fazendo isso pra treinar!
  7. Olá galera, quem puder me ajudar fico agradecido em algumas dúvidas que não pude encontrar no Google diretamente. 1) É possível usar e abusar do Github sem a necessidade do git? 2) "Github é uma plataforma de hospedagem e gerenciamento de projetos/arquivos que permite a interação entre os usuários e colaboração com esses projetos. Essencialmente ela foi criada para ajudar desenvolvedores e programadores com a interação e colaboração de códigos permitindo também o crescimento da comunidade open source. Contudo, hoje o usuário pode hospedar qualquer tipo de arquivo". Eu fiz esse resuminho a partir de alguns links na internet mas me deixou com dúvidas. 2.1) Esse resumo genérico sobre o que é o github está bom pra vocês? 2.2) E quais seriam as palavras-chaves se referindo ao Github? Tentei dar uma definição sem citar o Git. 2.3) Posso afirmar com 100% de certeza que podemos hospedar qualquer tipo de arquivo mas que essencialmente é para códigos? Galera, não são dúvidas aleatórias, realmente li bastante coisas pra ter essas dúvidas, então se tiverem a paciência em ajudar eu agradeço.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!