Introdução

Neste tutorial, vamos explorar o legado do BASIC através da construção de aplicações modernas utilizando QBasic com o framework QB64. O QB64 é uma extensão poderosa do QBasic, que permite criar aplicações gráficas, com suporte a multithreading e acesso a recursos modernos de hardware. A ideia central deste guia é unir conceitos do desenvolvimento ágil, que prioriza a colaboração e a entrega contínua, com a simplicidade e a acessibilidade do QBasic. Ao final deste tutorial, você terá uma aplicação funcional e a compreensão dos passos necessários para utilizar o QB64, assim como princípios que permitem um desenvolvimento mais eficiente e organizado.

Etapas

  1. Instalação do QB64

    Primeiramente, faça o download do QB64 no site oficial (https://www.qb64.dev). A instalação é bem simples: extraia o arquivo ZIP para uma pasta de sua escolha. Em seguida, adicione o diretório do QB64 ao seu PATH do sistema para facilitar o uso pelo terminal.

    commands
    # Para verificar se a instalação foi bem-sucedida, abra o terminal e digite:
    QB64

  2. Criando o primeiro projeto

    Abra o QB64 e crie um novo arquivo chamado ‘hello_world.bas’. Neste arquivo, vamos implementar um exemplo simples que imprime ‘Hello, World!’ na tela. Salve o arquivo em uma pasta de projeto específica. Este será o nosso ponto de partida.

    hello_world.bas
    PRINT "Hello, World!"
    END

  3. Compilando e executando o programa

    No QB64, use a opção de menu para compilar o programa e verificar se há erros. Em seguida, execute o programa. Você deverá ver a mensagem ‘Hello, World!’ na tela. Verifique se tudo está funcionando corretamente antes de prosseguir.

    commands
    # Para compilar e executar, você pode usar as seguintes opções no menu:
    F5 (Executar)
    F1 (Compilar)

  4. Usando princípios ágeis: CRUD básico

    Vamos explorar conceitos de CRUD (Create, Read, Update, Delete) em um contexto moderno. Crie um novo arquivo chamado ‘app.bas’ onde vamos implementar um sistema simples para gerenciar notas. Usaremos arrays para armazenar temporariamente as notas no nosso exemplo.

    app.bas
    DIM notas(10) AS STRING
    DIM total AS INTEGER
    
    SUB adicionarNota(nota AS STRING)
        IF total < 10 THEN
            notas(total) = nota
            total = total + 1
        ELSE
            PRINT "Limite de notas atingido"
        END IF
    END SUB
    
    SUB listarNotas()
        FOR i = 0 TO total - 1
            PRINT notas(i)
        NEXT
    END SUB
    
    ' Interação simples
    adicionarNota("Nota 1")
    adicionarNota("Nota 2")
    listarNotas()
    END

  5. Implementando as funções CRUD

    Continue a desenvolver as funções de Editar e Deletar notas. Faça ajustes no arquivo ‘app.bas’ para incluir essas funcionalidades. Utilize entradas do usuário para manipular as notas.

    app.bas
    SUB editarNota(indice AS INTEGER, novaNota AS STRING)
        IF indice >= 0 AND indice < total THEN
            notas(indice) = novaNota
        ELSE
            PRINT "Índice inválido"
        END IF
    END SUB
    
    SUB deletarNota(indice AS INTEGER)
        IF indice >= 0 AND indice < total THEN
            FOR i = indice TO total - 2
                notas(i) = notas(i + 1)
            NEXT
            total = total - 1
        ELSE
            PRINT "Índice inválido"
        END IF
    END SUB
    
    ' Exemplo de uso
    editarNota(0, "Nota Editada")
    deletarNota(1)
    listarNotas()

  6. Testando a aplicação

    Crie diferentes cenários de teste para sua aplicação. Uma boa prática é garantir que cada função de CRUD funciona como esperado. Use impressões para confirmar que o comportamento está correto ao adicionar, editar, e deletar notas.

    app.bas
    ' Testando as funcionalidades do CRUD
    adicionarNota("Teste")
    listarNotas()
    ' Editando
    editarNota(0, "Novo Teste")
    listarNotas()
    ' Deletando
    ' Deletar a nota adicionada
    

  7. Adicionando um UI simples

    Implemente uma interface de usuário simples utilizando a biblioteca gráfica do QB64. Crie um menu interativo para permitir que usuários escolham a operação a ser realizada com as notas.

    app.bas
    WHILE TRUE
        PRINT "1. Adicionar Nota"
        PRINT "2. Listar Notas"
        PRINT "3. Editar Nota"
        PRINT "4. Deletar Nota"
        PRINT "0. Sair"
        INPUT "Escolha uma opção: "; opcao
        IF opcao = 0 THEN EXIT WHILE
        ' Expor as funções correspondentes aqui
    WEND

  8. Refatorando para um código mais limpo

    Utilize princípios de refatoração para garantir que seu código esteja limpo e fácil de entender. Remova duplicações e implemente funções que encapsulam lógica repetitiva.

    app.bas
    ' Refatoração de um código exemplo
    SUB menu()
        ' Código do menu de interação
    END SUB

  9. Otimizando a experiência do usuário

    Considere adicionar mais recursos, como salvar as notas em um arquivo externo ou permitir que o usuário escolha opções através de um sistema de entradas mais amigável. A experiência do usuário é uma parte crucial das aplicações modernas.

    app.bas
    ' Esboço de salvamento em arquivo
    SUB salvarNotas()
        OPEN "notas.txt" FOR OUTPUT AS #1
        FOR i = 0 TO total - 1
            PRINT #1, notas(i)
        NEXT
        CLOSE #1
    END SUB

Conclusão

Neste tutorial, exploramos como construir uma aplicação moderna com QBasic utilizando o QB64. Ao longo do processo, incorporamos práticas de desenvolvimento ágil, fundamentais para a criação de software de qualidade. Desde a configuração do ambiente até a implementação de funções CRUD e uma interface de usuário básica, você desenvolveu habilidades que podem ser facilmente aplicadas a projetos mais complexos. Essa abordagem não só revigorou o legado do BASIC, mas também proporcionou uma visão única sobre desenvolvimento de software contemporâneo.

Hashtags

#QBASIC #QB64 #DesenvolvimentoDeSoftware #AgileDevelopment #LegadoDoBASIC