Senhores, bom dia,
estou começando a otimizar o L2jFrozen, melhorando o código e deixando-o mais organizado. Há muitos projetos L2j, mas a maioria deles são a junção de vários módulos feitos por pessoas distintas, módulos muito bons, mas a maioria das vezes sem código otimizado ou padronizado.
Sou formado em Sistemas de Informação há 5 anos, trabalho com desenvolvimento há mais 15 anos, trabalho principalmente com desenvolvimento web, com PHP, MySQL/PostgreSQL, Laravel, Angular... mas trabalho muito bem com Java, C#, Python, SQL Server e gosto de brincar com NodeJS e MongoDB. Dentro do desenvolvimento gosto de trabalhar com as melhores práticas, de acordo com o definido pela comunidade da linguagem.
Desafios
Gostaria de convidar, quem tiver interesse e conhecimento, para criarmos um projeto bem organizado de L2j Interlude, tendo como base o L2jFrozen (aberto a sugestões de outro projeto). Como exemplo de coisas a serem feitas, seriam:
1) Revisar as estruturas da tabelas do banco de dados, melhorando a nomenclatura das tabelas e colunas, deixando-as padronizadas. Por exemplo, a tabela characters está no plural, enquanto a castle está no singular. Dentro da tabela characters temos as colunas char_name, maxHp e pvpkills, poderiam seguir um padrão de name, max_hp e pvp_kills (padrão snake case).
2) Revisão, organização e otimização dos códigos Java.
3) Revisão, organização e otimização das Quests, até mesmo a criação de Quests novas.
4) Revisão, organização e otimização dos HTMLs. Por exemplo, todo HTML que vejo é sem indentação, sem aspas nas propriedades. Isso não é nem de longe uma boa prática. Sei que o HTML deve ter um limite de caracteres, mas no Java a gente remove comentários, espaços duplos, quebra de linha e até aspas.
5) Criação de testes automatizados.
6) Revisão e otimização das consultas SQL e a utilização de ferramentas como Memcached (opcional) para otimizar as buscas ao banco de dados.
7) Ao final, criação de um painel de administração e site.
Vantagens
Por que fazer isso? Você deve está se perguntando.
1) Mais segurança: o código organizado é mais fácil de entender a lógica e ver se ela está correta ou não. Sem falar dos testes automatizados.
2) Facilidade de alteração/contribuição: se é mais fácil de entender, é mais fácil de contribuir.
3) Mais leve, que roda mais player: se é mais leve, roda mais players simultaneamente.
4) Experiência: a experiência de passar por um desafio desses é demais, força você a aprender mais, buscar seu melhor. Sem falar que pode estar ajudando o futuro melhor emulador de L2 Interlude da história.
6) Teste em um servidor real: ao final colocaremos o projeto em teste real, com servidor para milhares de players e com muita diversão.
7) Venda de pacote: já compilado, com instalador, com site, painel de administração, manual, suporte e etc.
A proposta está aceita, quem tiver interesse, comentar descrevendo suas habilidades, deixando o link para o seu GitHub.
Deixo aqui o link do meu GitHub, para analisarem projetos que já criei e contribui: [Hidden Content]