Estou criando um framework em JavaScript/TypeScript para o Baekjoon
(github.com/lumirlumir)Olá!
Para resolver vários incômodos que senti ao solucionar problemas de algoritmo do Baekjoon com JavaScript e TypeScript, estou desenvolvendo um framework open source dedicado a JavaScript/TypeScript para o Baekjoon, chamado bananass.
Na época da graduação, eu resolvia os problemas principalmente em C++, então o ambiente do Baekjoon não me incomodava tanto. Mas, trabalhando como desenvolvedor frontend, passei a querer resolver problemas em JavaScript e TypeScript e, quando comecei de fato, percebi que havia muitas limitações, grandes e pequenas, como processamento de entrada sempre complicado, restrições a sintaxes mais recentes e dificuldade de testar.
Por isso, para melhorar esses incômodos, decidi criar diretamente um ambiente de resolução de algoritmos conciso e intuitivo, adequado ao ecossistema JavaScript, inspirado tanto na forma de implementação do Next.js quanto nos vários comandos CLI do projeto boj-cli.
Com base nas experiências que adquiri contribuindo diretamente para vários projetos open source de frontend, como React, ESLint e Next.js, estou construindo isso com o máximo de atenção aos detalhes e quero que se torne uma ferramenta realmente útil também para usuários de JavaScript/TypeScript.
Os principais recursos que implementei até agora são os seguintes.
- Suporte a JavaScript e TypeScript.
- Suporte aos sistemas de módulos ESM e CommonJS.
- Suporte a sintaxes modernas, como ES16/ES2025, sem ficar preso ao ambiente Node.js do Baekjoon.
- Suporte para importar módulos personalizados e bibliotecas externas como
lodash. - Suporte para começar com apenas uma função
solution, como no Programmers. - Suporte para escrever e executar casos de teste.
- Suporte para começar com
create-bananass. - Suporte a entrada e saída mais rápidas usando o módulo
fs. - Suporte a vários comandos CLI para mais conveniência.
- Suporte nativo a ESLint e Prettier.
No momento, estou trabalhando em testes e documentação antes do lançamento oficial e pretendo divulgar em breve uma versão beta.
Se você já sentiu algum incômodo ao resolver problemas do Baekjoon com JavaScript ou TypeScript, ou se tiver alguma ideia do tipo “seria bom ter um recurso assim”, fique à vontade para deixar um comentário nesta postagem, ou abrir uma issue ou discussion no GitHub!
Mesmo uma opinião pequena ajuda muito! Quero refletir isso da forma mais ativa possível para construirmos juntos um ambiente melhor para resolver problemas.
Links relacionados ao projeto
-
Documentação oficial: https://bananass.lumir.page
Ainda não há comentários.