O processo de aprendizagem do código do Moodle através da resolução de issues

Meu primeiro contato com o Moodle foi durante o período em que fui aluno universitário (2004 – 2010), contudo o uso da plataforma ainda era pequeno devido a falta de conhecimento que nós alunos e também os professores tinham na época. No decorrer desse período surgiram diversas dúvidas sobre a usabilidade do Moodle como ferramenta docente. Posteriormente, atuando como professor da educação básica, tendo experimentado algumas plataformas de ensino, retornei a mesma universidade em que me formei e fiz mestrado, agora como professor. Esse retorno promoveu meu reencontro com o Moodle, agora bem mais robusto e com diversas funcionalidades novas, emergindo assim um interesse enorme em entender melhor todos os aspectos do LMS.

Em 2019 deixei minha carreira de 11 anos de atuação como professor, para ingressar no mundo da TI e mais especificamente no ramo da EDTECH como colaborador/programador da Adapta Moodle Partner. Começava assim meu aprendizado sobre as ferramentas e o código do Moodle.

Mas como poderia aprender sobre o código e sua lógica?

 

O Moodle além de ser um LMS, é também uma comunidade formada por diversas pessoas ao redor do mundo, desde Moodle Partners até programadores solitários, trabalhando no seu desenvolvimento, melhorias e correções. Como novo integrante dessa comunidade fui apresentando e inserido no ambiente onde se publicam as “issues” (ou “demandas”) do Moodle, o Tracker (https://tracker.moodle.org). Após um breve estudo sobre o ambiente, recebi a tarefa de solucionar uma issue: inserir o link da lixeira da categoria (https://tracker.moodle.org/browse/MDL-65967). Depois de algumas tentativas sem sucesso na resolução, solicitei auxílio ao Daniel Neis no processo. A partir das orientações que recebi e estudando a forma como foi solucionado o problema, pude perceber e passar a entender melhor como o código do Moodle funciona, como ele é estruturado e como é pensada a sua lógica.

Todavia, o processo de resolução ainda não estava completo, era preciso não apenas escrever a parte do código que insere o link da lixeira, mas também realizar os testes automatizados para confirmar seu correto funcionamento.     Para isso, a issue em questão apresenta as instruções de testes manuais que devem ser realizados por uma pessoa na fase de testes, mas também são criados testes automatizados sempre que possível. O Moodle disponibiliza em sua documentação como fazer a integração com o behat (https://docs.moodle.org/dev/Behat_integration) e como fazer os testes com o mesmo (https://docs.moodle.org/dev/Running_acceptance_test).

Após a execução com sucesso dos testes, passei para a próxima etapa de contribuição com o Moodle: subir as alterações para o repositório do github e fazer a integração com o travis, para que a comunidade no Tracker possa avaliar e realizar os testes necessários para aprovação das mudanças realizadas. Caso queira saber mais sobre a integração com o Travis, acesse a documentação em: https://docs.moodle.org/dev/Travis_integration

Com a conclusão dessas etapas, era preciso agora solicitar a avaliação dos pares no Tracker. Para isso, foram alterados os rótulos da issue e feitos comentários informando aos participantes da demanda em questão das alterações feitas. Os teste automatizados do Tracker foram realizados pelo ciBot e aprovados, passando agora para a avaliação dos pares da comunidade. Tal ação foi realizada, sendo solicitado apenas uma alteração no código, o que foi prontamente feito. Com isso, a resolução da issue estava resolvida e eu com a ajuda do Daniel realizei minha primeira contribuição para a comunidade Moodle em termos de programação. No link a seguir: https://docs.moodle.org/dev/Process#Fixing_a_bug você tem acesso a documentação que explica como é a resolução de um bug/issue no Tracker.

Considerações

 

Ao fim de todo esse processo, posso afirmar que a resolução de uma demanda no Tracker foi de grande valia para o meu progresso na aprendizagem do código do Moodle. Além disso, ele serviu como uma experiência prática muito importante na minha evolução como programador, pois é por meio de atuações como essa que meu aprendizado em programação está evoluindo.

Outro ponto importante que merece destaque é a contribuição para a comunidade Moodle e também para a melhoria do LMS em questão. Ações como essas são de suma importância para que o Moodle esteja sempre evoluindo e atendendo as demandas que aparecem apenas com o uso da plataforma.

Enfim, nós da Adapta Moodle Partner não somos apenas uma empresa que presta serviços Moodle, somos também uma empresa que colabora das mais variadas formas para o desenvolvimento e melhorias do LMS, pois entendemos que ações como a que relatei contribuem não apenas para Moodle, mas também para toda a comunidade Moodle ao redor do mundo.

Obs.: caso você tenha demandas Moodle e não sabe como resolver, procure um de nossos colaboradores ou faça sua inscrição no Tracker do Moodle e publique ela lá. Como diz a página inicial do Tracker, ele:

Não é apenas para desenvolvedores! 🙂

Todos os usuários devem usar este sistema para relatar problemas ou novas ideias para o Moodle e nos ajudar a melhorar.

    vamos conversar?
    Olá, vamos conversar?
    Escanear o código
    Olá 👋
    Gostaria de agendar uma reunião?
    Podemos te apresentar a plataforma e suas funcionalidades, traga o seu projeto para a Adapta!