Executando verificação de segurança...
5

PITCH: Criei um encurtador de URLs

Apresento-lhes a versão inicial do projeto que venho desenvolvendo no tempo livre, o Reducely.

Reducely Preview

O projeto é bem simples, nem tem nem um domínio personalizado, mas decidi mesmo assim publicar. Espero que gostem e que passem o feedback de vocês. O projeto é Open-Source, então sintam-se à vontade para contribuir (Repositório no GitHub).

O projeto está disponível em: https://reducely.vercel.app/

As tecnologias usadas foram:

  • React
  • TailwindCSS
  • Express.js
  • MongoDB
  • shadcn/ui
Carregando publicação patrocinada...
2
1

Valeu, @olavomello. 👊👊👊

Quando estava escolhendo o nome do projeto, todo nome que eu pensava eu ia olhar se o domínio estava disponível, afinal isso é bem importante caso eu queira botar o projeto pra frente.

1
2
1

Obrigado, @pedroDarde!! 🤝

Fico feliz em saber que gostou, com esse projeto aprendi bastante sobre padrões de projeto e Clean Code.

1
1

Não, apliquei tudo que aprendi assitindo vídeos no YouTube, principalmente os vídeos do Otávio Lemos e Rodrigo Branas.

2

Cara, ficou muito bom, como alguém que tá criando um encurtador também, fiquei bem impressionado com o estilo e com o código, parabéns mano!

2

Só tenho uma sugestão mano, vi no código que você faz o accessCount como um inteiro:

const updatedLink = { ...link, accessCount: link.accessCount + 1 };
await this.linksRepository.update(linkId, updatedLink);

Uma melhoria seria você encarar o clique como uma entidade do seu banco de dados, onde cada clique vai ser uma entrada, dessa forma você vai conseguir agregar por data, hora, aparelho e outras coisas, esse tipo de abordagem vai te dar mais flexibilidade caso você queira evoluir a aplicação!

Abraço!

1

Essa abordagem também evita problemas de concorrência, pois para ter uma contagem precisa você teria que fazer uma operação atomica, o que impede escritas simultâneas, enquanto inserir uma linha na tabela não precisaria fazer nenhuma operação atomica. mas não li o codigo para saber qual banck esta zendo usado, mas acredito que o principio se aplique a varios bancos.

1

Tem razão e isso em conjunto com autenticação é algo que realmente eu quero adicionar em uma próxima versão. Valeu pela sugestão! 🤝

2

Código maravilhoso, design incrível e esse dark mode simplesmente dá um sentido diferente ao projeto.

Sensacional amigo, simplesmente sensacional.

1

Parabéns pelo projeto e por deixá-lo publico. Muita gente já falou coisas positivas sobre seu código, então não vou repetir :)
Pensando em alguém que não está familiarizado com o código e passa o olho nesse trecho.

if (createLinkResponse.isLeft())
        return httpResponseUtils.badRequest(createLinkResponse.value);

Left ou Right não é uma coisa que fica claro pra mim, sei que é um jto Haskell de programar, eu acho confuso (o problema pode ser eu), sugestão:

if (createLinkResponse.failed())
       return httpResponseUtils.badRequest(createLinkResponse.value);

Para mim ficaria mais fácil a leitura, não sei o que os outros colegas acham, e o que vc acha tb?

A estrutra do código em si é clara, fácil de se localizar, métodos curtos, classes curtas, testes (super importante)

1

Concordo com você, uma pessoa que nunca viu esse tipo de tratamento de erro pode estranhar(não que seja o seu caso kk), porém isso já é meio que uma convenção.

Agradeço pela sugestão. 🤝

1

O padrão estético que você seguiu é muito bacana, bem minimalista e limpo. Funciona maravilhosamente (esteticamente falando) nesse modo escuro tbm, na real.

1

Desculpa minha ignorancia, mas qual é a real vantagem das empresas fazerem projeto com código aberto no github?

Pergunto isso, pq recentemente me deparei com alguns projetos que cobram assinatura mensal, mas disponibilizam o código no GitHub.....qualquer um pode pegar o código e usar em outro dominio? ou não?

2

Não pode por causa das licenças, além de que provavelmente essa empresa que você viu deve ter uma parte do código aberta, justamente a que você viu, mas ainda tem muita coisa por trás para fazer aquilo funcionar como um todo.

Em relação à código aberto, primeiro vale ressaltar que ser de código aberto não necessariamente quer dizer que qualquer um pode alterar, pode ser só para vê-lo, apesar que ver esse tipo de licença é raro. Entretanto, você permitir que seus usuários modifiquem seu código, de forma resumida, é bom pois você tem seu cliente fazendo o que ele deseja que seu produto tenha, sem necessariamente que você tenha que fazer aquilo, e falhas de segurança podem ser encontradas mais facilmente para serem resolvidas o quanto antes.

1

Não sei te dizer, com certeza, mas creio que sim. E a maior vantagem que eu vejo em uma empresa que adota o modo Open-Source de ser em seus projetos, é receber contribuição da comunidade, principalmente quando se trata de uma ferramenta voltada para desenvolvedores.

1

As vezes a ideia não é vender o produto(Codigo) mas sim vender o serviço(implementação).
Exemplo: O glpi e um programa Open source, mas muitas empresas preferem contratar um serviço mesnal de implementação e de manutenção.

1