Golang: Como organizar pastas e arquivos em projetos Go

Поділитися
Вставка
  • Опубліковано 24 гру 2024

КОМЕНТАРІ • 24

  • @leandrocosta3902
    @leandrocosta3902 9 місяців тому +1

    Anos como programador PHP e agora estou começando a estudar GO.

  • @christianpossidonio
    @christianpossidonio 10 місяців тому +1

    Anos com meu NodeJs mas aprender nunca é demais cá está eu aprendendo Golang com o Wesley, parabéns pelo conteúdo.

  • @dorianneto2859
    @dorianneto2859 Рік тому +4

    Adoro esse tipo de vídeo!

  • @lgerardlucas
    @lgerardlucas 2 місяці тому

    Padrão MVC senti falta de um comentário sobre ele. Eu mesmo, sigo em outras linguagem meio que o padrão do django, pois me acostumei, agora, estou criando uma plataforma: api em go e front em react, onde sigo a comunidade, ou seja: MVC, tá tudo bem, mas eu acho melhor o padrão Django.

  • @paulo.sistema
    @paulo.sistema Рік тому +2

    Mega top: principalmente p/ mim que estou iniciando na GoLang
    👍

  • @wagjr90
    @wagjr90 Рік тому +4

    Vídeo simples e muito útil, me deparei com essas 'controvérsias' também um tempo atrás.
    Qual sua opinião quanto ao local de um package 'i18n' no projeto?

  • @danieldias2693
    @danieldias2693 2 місяці тому

    para esse caso não seria ideal usar o Workspace por conta de der o api-client e api-server?

  • @arozendojr
    @arozendojr Рік тому +1

    Ficou muito bom

  • @jogatinandodevs
    @jogatinandodevs Рік тому +5

    cmd eu uso src. não consigo me acostumar com cmd

    • @christianpossidonio
      @christianpossidonio 10 місяців тому +1

      No node eu tbm uso src e aqui o cmd achei bem estranho

    • @niltonmorais_dev
      @niltonmorais_dev 9 місяців тому +1

      eu tbm achava estranho, por vim do node eu preferia utilizar src.. mas depois que comecei a trabalhar no mercado livre me acostumei com o cmd e internal, pq lá o scaffolding de aplicações go são gerados exatamente assim com essa estrutura

  • @guilhermemuradpim7317
    @guilhermemuradpim7317 8 місяців тому

    opa, muito obrigado 😁🙏! vc tem dicas de padroes ainda mais elaborados? (por exemplo pra dentros da pasta internal, coisas do dominio, migrations, etc)

  • @EdivaldoMerloStens
    @EdivaldoMerloStens 9 місяців тому +3

    Quanto mais vejo essa bagunça, mais gosto do Java. Pq o Node e outras linguagens não copiam o método Maven para organizar dependências?

  • @vinisfe
    @vinisfe 8 місяців тому

    Essa pasta website, nela por exemplo eu poderia colocar um projeto angular é isso? Ou entendi errado...?

  • @luciusstark
    @luciusstark Рік тому +6

    Lembrando que essa estrutura não é uma convenção oficial da linguagem. Utilizo o mais simplista porque, por ora, não me enquadro nos casos que precise utilizar diretórios mais complicados. Uso:
    cmd - prog entrypoint;
    config(s) - no singular mesmo - o "s" existe quando tem mais de um arquivo, assim segue para os outros;
    internal - para os módulos internos como "middleware e core";
    pkg - pelo mesmo motivo, funciona como uma biblioteca;
    docs - documentação de tudo, incluindo para mim, documentando as ideias durante o desenvolvimento;
    example(s) - demonstração de como usar os recursos do "/pkg";
    asset(s) - para imagens em geral.
    Raramente uso:
    Makefile;
    /script(s);
    /deployment(s);
    Nesta mesma ordem. O Makefile só existe se houver "/scripts" ou "/deployments". Em muitos casos, quando o deployments está presente, também existe o diretório scripts. Aquela mania de querer automatizar tudo para funcionar num clique só.
    Já criei APIs Rest e gRPC, mas como não foi para ambiente corporativo, não usei swagger e costumo ficar somente no Postman mesmo.

    • @JoaoVictorGuimaraesDeluchiTito
      @JoaoVictorGuimaraesDeluchiTito Рік тому

      No caso eu escreveria meu useCases no internal e meus controllers e clients no PKG?

    • @luciusstark
      @luciusstark Рік тому +1

      ​@@JoaoVictorGuimaraesDeluchiTito
      Considerando que o "useCase" é somente código interno para o funcionamento crucial da aplicação e não ser usado como "API" exposta para outros que queiram usar para efetuar algum tipo de integração, então, sim; seu useCase pode residir no diretório "internal". Em contrapartida, o "controllers" e "clients" como PKG sem explicar o que são, fica estranho confirmar se eles ficariam no PKG porque esses mesmos nomes, especialmente, o "clients" parece nome da parte "client" da aplicação, que normalmente fica em "cmd/client" e o "controllers" parece ser algo relacionado ao "internal".
      O "controllers" e "clients" apenas seriam parte do PKG se o deles servirão para projetos externos/terceiros interagirem. Por outro lado, eles poderiam fazer parte de PKG no contexto que "controllers" é o componente que lida com as solicitações recebidas, as processa e retorna uma resposta; o clients, a interface que interage com um ou mais servidores/serviços externos.
      Entretanto, o nome "controllers" para PKG soa estranho dependendo do cenário tradicional de desenvolvimento. Por exemplo, com base no MVC (Model-View-Controller), o termo "controllers" é frequentemente usado conforme foi explicado anteriormente. Porém, quando pensado em contexto de uma biblioteca Go que será importada por outros pacotes (propósito de "pkg"), o nome "controllers" pode não ser o termo mais intuitivo. Isso ocorre porque - normalmente - os controladores estão acoplados à lógica específica do aplicativo e não são projetados para serem reutilizados por outros pacotes/projetos. O nome "clients" é ambíguo, então, de certa forma, tudo bem; embora, se "user" ou "users" fizer sentido no seu cenário, recomendo optar por estes.

    • @GchavesVDS
      @GchavesVDS Рік тому

      Eu

  • @voguh__
    @voguh__ Рік тому +2

    Mano pq raios eles nao seguem um padrão simples de SRC e taca tudo la dentro?

    • @ustav_o
      @ustav_o 7 місяців тому

      qual o problema de usar cmd ao invés?
      é uma convenção utilizada pela comunidade, quando for trabalhar com essa linguagem com certeza vai ser dessa maneira. não custa nada aprender as melhores práticas

    • @voguh__
      @voguh__ 7 місяців тому

      @@ustav_o costume, todas as linguagens que usei sempre tem uma src ou uma pasta específica onde todo o código está e a raz normalmente fica só um arquivo de config e tals

  • @Diaba_dos_compiuter
    @Diaba_dos_compiuter Рік тому +1

    CMD e a pasta API sempre me trollam, eu sempre começo procurando o código na pasta api... porque estou procurando o códig da api .-. kkkkk

  • @herbertpimentel
    @herbertpimentel 11 місяців тому

    Resumo…. Mais ou menos mais ou menos 😅