Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: general improvements and code cleanup #11

Merged
merged 11 commits into from
Jan 20, 2024
Merged

refactor: general improvements and code cleanup #11

merged 11 commits into from
Jan 20, 2024

Conversation

ImRodry
Copy link
Collaborator

@ImRodry ImRodry commented Dec 27, 2023

Este PR muda bastantes coisas, aqui fica um resumo das mudanças:

  • Adicionei a extensão Prettier e uma configuração para formatar os ficheiros todos. A configuração pode ser mudada e é apenas uma que eu já tinha e me parece ser boa, ajustando ao estilo que o projeto já tinha, a principal mudança sendo que os ficheiros agora são formatados com tabs em vez de espaços
  • Movi os ficheiros .js para uma pasta chamada scripts pois normalmente assets são apenas imagens, estilos e coisas do género
  • Mudei todas as instâncias de == e != para === e !==
  • Melhorei a função distance de modo a usar variáveis mais explícitas sem números mágicos. O resultado não é exatamente o mesmo mas a diferença é na casa das décimas
  • Alterei a distância mínima de uma estação para 50m para coincidir com a app oficial
  • Alterei todas as funções anónimas (function (...) {}) para arrow functions
  • Removi o corpo das arrow functions que não o necessitavam (funções de 1 linha)
  • Alterei todas as instâncias de var para const ou let
  • Adicionei uma declaração const ou let para todas as variáveis que não a tinham, o que as tornava globais. Deixei apenas nos casos em que esta funcionalidade era usada apesar de considerar que isto deve ser evitado
  • Mudei os nomes de funções e variáveis para usar camelCase em vez de snake_case
  • Removi o .bind em troca de arrow functions (não fazia sentido ser usado onde estava a ser usado)
  • Melhorei a função getCookie principalmente para a tornar mais legível
  • Troquei o new Date() por Date.parse onde era possível (situações em que se está a ler uma data ISO de uma string e se usa o resultado como número)
  • Removi algumas sequências grandes de ifs trocando-as por ternary operators

Coisas que não alterei mas considero que deviam ser alteradas:

  • Código html em strings: não é muito legível e devia ser trocado pelas classes HTMLElement e depois colocado no html através de .append
  • Variáveis declaradas com let que não são alteradas (deviam ser const)
  • Todo o ficheiro fulltilt.js
  • Variáveis globais
  • Funções não usadas ou com erros
  • Gestão de erros ao desbloquear uma bicicleta (tem imensos ifs, devia ser um objeto constante com os erros da api e a tradução)
  • Uso de typeof quando poderia ser um if normal (exceto em 2 casos específicos)
  • Uso de ifs que poderiam ser conditional assignments ou nullish coalescing e tudo o que tenha a ver com es2021 para a frente

Para ver o diff recomendo retirar os primeiros dois commits, ou ver commit a commit

Estou disposto a reverter/alterar ou explicar qualquer alteração feita
⚠️ Isto não foi testado a 100%, peço que testes também

@ImRodry
Copy link
Collaborator Author

ImRodry commented Dec 27, 2023

o ficheiro fulltilt está uma cagada tão grande que eu nem lhe quis tocar, e agora reparei que só era usado no código comentado que eu apaguei. Pode-se apagar o ficheiro?

@ttmx
Copy link
Collaborator

ttmx commented Dec 27, 2023

Possível problema, não revi, == é usado por vezes porque os resultados do API podem ser null ou undefined.

@ImRodry
Copy link
Collaborator Author

ImRodry commented Dec 27, 2023

Nesse caso seria melhor um falsy check mas mesmo assim não acho que seja necessário porque em GraphQL todos os parâmetros pedidos são devolvidos, os que não têm nada vêm a null

@afonsosousah
Copy link
Owner

o ficheiro fulltilt está uma cagada tão grande que eu nem lhe quis tocar, e agora reparei que só era usado no código comentado que eu apaguei. Pode-se apagar o ficheiro?

Esse ficheiro foi de uma library que eu estava a usar para a navegação, para aceder à bússola do dispositivo.

No entanto na última atualização mudei como a direção do mapa funciona e já não recorre aos sensores do dispositivo e sim à rota que o utilizador está a fazer.

O ficheiro pode ser removido sim!

@ImRodry
Copy link
Collaborator Author

ImRodry commented Dec 29, 2023

Conflitos corrigidos e fulltilt removido, podes rever @afonsosousah!

@afonsosousah afonsosousah merged commit 2a8d277 into afonsosousah:main Jan 20, 2024
@ImRodry ImRodry deleted the refactor/style&improvements branch January 24, 2024 01:52
@afonsosousah afonsosousah added the enhancement New feature or request label Feb 12, 2024
@afonsosousah afonsosousah added this to the v0.0.4 milestone Feb 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants