[Resolvido] Adicionar Lib em pasta de projeto. Vale a pena?

Olá a todos.

Eu estava organizando os arquivos de um projeto, separando-os em pastas, como por exemplo:

Pasta_Projeto/Data/Mp3/Arquivos.mp3 (4000+ arquivos, que vão para um SDcard)

Pasta_Projeto/Drivers/hc595/hc595.h

(obs- Na prática, a pasta "driver", contém apenas códigos que escrevi para trabalhar com determinados CIs (74hc595, pcf8574 e 74hc165), e que não tive paciência ainda para converte-lo em uma biblioteca em c++)

Estava pensando em criar uma pasta com o nome "Library" e ir adicionando as bibliotecas de terceiros que estão sendo utilizadas no projeto. Exemplo:

Pasta_Projeto/Data/Library/tft_eSPI/

Qual a opinião de vocês? É uma boa prática?

Exibições: 142

Responder esta

Respostas a este tópico

Olá, Tiago.

   Você vai fazer os seus projetos referenciarem estas bibliotecas salvas nestas pastas ou isto é apenas para fins de backup?

   Se você for fazer teus projetos referenciarem estas bibliotecas salvas, como em tudo na vida, tem prós e contras.

   Pró: Se a biblioteca é atualizada e a nova versão é incompatível com o teu projeto, nada é afetado, pois ele está usando a versão que funcionou.

   Contra: Se a biblioteca é atualizada e a nova versão corrigiu um bug ou implementou uma melhoria, seu projeto não se beneficia disto.

   Só para citar os aspectos principais.

   Abração!

D. T. Ribeiro.

Olá DT.

Eu estava pensando a respeito disso. Talvez me falte conhecimento a respeito de algum assunto (afinal, sou novo na área) mas, para mim, parece ser muito interessante ter todos os arquivos que serão utilizados, armazenados, na própria pasta do projeto.

Se precisar copiar e colocar num pendrive (por qualquer motivo que seja), já estará lá. Se precisar fazer um backup (pois vai precisar formatar o computador, ou qualquer motivo que seja), já ficará lá. De brinde, caso o usuário utilizasse versões diferentes das libs, em projetos diferentes, a chance de da problema seria bem reduzido.

Novamente. Por ser novo na área, este pensamento talvez seja "ir na contra mão das coisas".

O mais próximo que vi, foi mudar o diretório do SketchBook, (Arduino IDE -> Arquivos -> preferências -> diretório do sketchBook)

Olá, Tiago.

   Este pensamento definitivamente não é "ir na contra mão das coisas". Na verdade a maioria dos softwares profissionais o usa, com um "plus a mais" :-)

   Usa-se um repositório com controle de versão. Sempre que uma versão nova é liberada ( release ), são armazenados naquela versão, que é um diretório especial do repositório, todos os arquivos, fontes, objetos, bibliotecas, documentação etc., inclusive os arquivos de instalação das ferramentas de desenvolvimento!

   Assim, caso haja necessidade de se investigar o que quer que seja relativo àquele release, tem-se como reproduzir exatamente o ambiente que o gerou.

   Claro que este é um processo complexo e demorado que os makers, eu incluído quando estou atuando como maker, não utilizam, pois tira grande parte da diversão, que é ver a criação funcionando logo.

   Mas alguma preocupação com a eficiência e a segurança, como a que estás disposto a ter, é bemvinda.

   Poupa dores de cabeça que também diminuem a diversão.

Grande abraço!

D. T. Ribeiro.

" Este pensamento definitivamente não é "ir na contra mão das coisas". Na verdade a maioria dos softwares profissionais o usa, com um "plus a mais" :-)"

Ainda bem que não estou bitolado kkkkkk

"...inclusive os arquivos de instalação das ferramentas de desenvolvimento!"

Ai eu fiquei surpreso

Em todo caso, vou continuar a pensar numa forma de organizar isso, ainda mais agora, que sei que não é loucura de minha parte.

Sobre a questão, acho saudável. Vc se garante contra atualizações que gerem incompatibilidade.

Também se quiser pode atualizar na mão sua pasta e terá a versão mais nova da lib.

Ainda, por ex para LCD/Oled existem várias e várias libs. Isso garante que se vc colocar o codigo em outro micro vai compilar, sem precisar lembrar qual versão e de qual autor é necessário instalar.


Por falar em "ir na contramão das coisas", eu sempre fiz assim:

No meu desktop crio pastas para cada causa, não necessariamente projetos, pode ser uma arvore de projetos.

Por ex: 

Fiz algo para a empresa X, crio uma pasta "Proj_X".

Ali vão arquivos com orçamento, desenhos, atas de reunião, etc, etc, etc.

Subdiretórios por ex com os nomes: Prog_PC, contendo o que vai no PC, Prog_Microc (o que vai no microcontrolador), Gabinete (Desenhos 3D), etc, etc.

Assim toda a "arvore" do projeto fica dentro de uma pasta só.

Faço zips dessa pasta periodicamente para fazer backup, sempre com apelidos do tipo "Proj_X_DDMMAA_ResolveuTravamentoY". Guardo todos os anteriores, para garantir. 

Uso a pasta Arduino só pra rascunhos.

A pasta "Documents" do micro fica praticamente vazia.

Como a coisa cresceu, agora no desktop tenho uma pasta "projetos" e dentro as arvores dos projetos.

Isso facilita muito o backup, envio de projeto todo, etc.

Não uso nuvens, não confio. Não confio especialmente nos estagiários que trabalham nas nuvens...

Mas tive um problema uma vez com sincronização. 

Fui dar manutenção em um projeto no cliente e precisava compilar. Deu um erro não específico, perdi um tempão para descobrir que o GoogleDrive resolveu deletar os arquivos do meu micro, deixou só na nuvem. Isso é abominável. Copia em nuvem ok, mas deletar do meu micro, qual o sentido ? Depois de 2 horas de luta me conectei na internet e os arquivos voltaram.

Deixo os zips no meu micro mesmo e copio em um NAS (servidor de rede que nada mais é que um HD ligado na porta USB do meu roteador de wifi).

Olá Eduardo, muito interessante sua forma de gerenciar. Eu estava fazendo algo parecido, entretanto em pastas diferentes. exemplo:

.../projeto/projeto_ventilador/arquivos

.../projeto_placa/projeto_ventilador/arquivos

Eu fazia desta forma, pois fui fazendo por etapas, entretanto, salvar tudo na pasta do projetoX, fica mais organizado, principalmente se quiser fazer uma alteração.

Bom dia, 

Todas as Bibliotecas do Arduino ficam nessa pasta, por definição da propria organização Arduino. 

Não vejo nenhum benefício em mudar essa pasta. 

Para Windows:

c:\users\seu usuário\Documents\Arduino\libraries

O mais importante é não incluir Bibliotecas similares, pois podem ocasionar conflitos. 

Recomendo sempre instalar as Bibliotecas oficiais do Arduino, usando o Gerenciador de Bibliotecas. 

Tem menor risco de darem problemas. 

https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries

Olá José. Obrigado pela sua resposta.

Por um bom tempo eu segui essa linha. Afinal, é muito prático. Entretanto, na medida que minha pasta de bibliotecas foi ficando carregada, e eu fui desenvolvendo minhas libs, começou a ficar desconfortável para mim. Seja por eventuais conflitos de libs (2 ou 3 libs com o mesmo nome) ou por ter que ficar procurando, na pasta das bibliotecas, uma lib que desenvolvi (para editar)

A ideia de ter todos os arquivos/libs em 1 única pasta, referente a 1 único projeto, começou a ficar bastante atrativo, principalmente se eu precisar enviar para alguém.

Esse alguém recebe todos os arquivos e fim. Ele reproduz sem precisar baixar nada.

Logicamente eu não usaria isso para todos os projetos, mas para aqueles que, dentro das minhas limitações atuais, julgo terem ficado grandes. Os demais, continuam na pasta padrão da IDE.

A dica que dou (por que uso assim) é usar a versão portátil (portable) da IDE do Arduino: ao invés de baixar a versão com instalador, você baixa a versão .zip. Assim, você pode rodar quantas IDEs simultâneas você quiser e serão totalmente independentes uma da outra. Você pode inclusive copia-la para um pen drive e rodá-la diretamente do pen drive, se preciso for, sem se preocupar de o PC que você está usando no momento ter ou não a IDE instalada nele e/ou bibliotecas e configurações.

Se o projeto que você estiver fazendo for muito importante e você não quiser correr o risco de alguma biblioteca de outro projeto interferir neste, você pode deixar uma IDE exclusiva para este projeto. No meu caso, gosto de personalizar minhas IDEs a fim de não me confundir quando estou analisando vários arquivos diferentes ao mesmo tempo. Por isso, cada IDE minha tem esquemas de cores e ícones diferentes:


Fazendo dessa forma, basta copiar a pasta inteira de cada IDE para um pen drive e/ou Computador e a IDE e meu projeto estarão exatamente da mesma maneira que estavam em meu computador que os criei, pronta para uso de onde parei.

Sinceramente, não vejo nenhuma vantagem em usar a versão instalável da IDE do Arduino: a portable é melhor em tudo!

Olá Rodrigo Duarte. Obrigado pela sua resposta.

A principal desvantagem que vejo, está no espaço que irá ocupar no hd se existir muitos projetos assim e, eventualmente, a necessidade de sair atualizando as placas em todas as IDEs, entretanto, para o problema que estou enfrentando, essa solução foi perfeita.

Baixei, fiz os testes. show de bola.

Adicionei até icone na barra de ferramentas para o executável da IDE portável.

No meu caso uso a mesma IDE para vários projetos, desde que não tenha incompatibilidades de bibliotecas. Se aparecer alguma incompatibilidade, aí uso a segunda IDE e assim por diante. No total tenho apenas 5 IDEs rodando ao mesmo tempo.

Quanto a atualizar, eu nem atualizo mais elas pois realmente daria bastante trabalho nesse caso, já que personalizei bastante elas. Só se lançarem alguma novidade muito importante ou que facilite demais o trabalho, aí sim valeria a pena realizar a atualização.

RSS

© 2022   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço