Ir para conteúdo
Fórum Script Brasil
  • 1

POG Programação Orientada à Gambiarra


Frank K Hosaka

Pergunta

O William Duarte disse que o meu código não é POO, não é PHP, não é Laravel, e sim um POG, um monte de códigos inaproveitáveis. Isso cheira um insulto, mas eu considero como um elogio. Finalmente encontrei alguém que gasta um pouco do seu tempo para apontar os erros nos meus códigos. Ele corrigiu o meu Config.php onde está o autoload, bem como o roteador que deixei no Index.php. Ele usou a anotação $valor = isset($_GET['chave']) ? $_GET['chave'] : null; eu jamais iria usar esse recurso no Config.php se não fosse a intervenção do William Duarte.

O meu projeto é só fazer um orçamento, a velha tabuada z = x * y, e eu nunca escondi que não sei nada de informática, não sei o que é memória RAM e memória ROM. Desde 1990 é que tento montar esse projeto, mas em 2020 eu desisti de tentar fazer pelo Visual Basic. Procurei um novo caminho, é o que eu chamo de PHP. Eu fiquei feliz da vida, quando o PHP conseguiu botar o banco de dados no meu celular, ou seja, eu posso fazer a tabuada em tempo real, graças à mágica da internet.

Mas eu encontrei várias orientações, afirmando que é necessário estudar HTML, CSS e JavaScript, antes de você começar a usar o PHP, isso o professor Guanabara repetiu várias vezes.

Eu não dei ouvidos, e fui pegando um código aqui e um código ali, e colando no projeto frankstein. Eu apanhei muito, principalmente com datepicker do JQuery. Num belo dia, alguém me disse por que eu não uso o <input type="time">, eu fiquei impressionado, ele é muito mais fácil de trabalhar. Joguei fora a biblioteca do JQuery, e comecei a valorizar a biblioteca do HTML, ele é enorme, e lá encontrei o objeto DOM. Nossa, isso não é para mim! De brincadeira, eu baixei o Laravel, eu apanhei um monte para fazer aquilo funcionar. Mas só ontem é que me dei conta de que o Laravel não tem absolutamente nada a ver com o PHP.

No PHP, para você transformar um vetor $array num objeto, basta usar o comando json_decode(json_encode($array)); no Laravel, esse comando não funciona. O Laravel usa uma biblioteca diferente, onde usa (object)[$array] para transformar um $array num objeto. Isso é bacana, mas levei três meses para descobrir que esse recurso existe na biblioteca do Laravel.

Enfim, qual a maneira certa de estudar o PHP? O certo é ver a biblioteca, mas aquilo é um texto cheio de abstrações do tipo que você encontra no Livro dos Espíritos, onde você não encontra nenhum exemplo prático para saber qual é o espírito benigno ou maligno. Eu desisti, e assim estou caminhando com as minhas improvisações.

Ontem, no entanto, eu criei um código bem bacana que me deixou de queixo caído:

<?php
class escolha
{
    public function __construct()
    {
        ?>

        <a href="?escolha=1">Escolha 1</a><br>
        <a href="?escolha=2">Escolha 2</a>

        <?php
    }
}

if(isset($_GET['escolha']))
{
    return print_r("O usuário escolheu a opção " . $_GET['escolha']);
}
$escolha=new escolha();

Ele é uma tabuada muito diferente que eu criei no PHP em 2020 ou no MVC de 2024. Em 2020, eu usei a memória ROM, quero dizer, o MySQL para gravar a escolha do usuário. Em 2024, eu usei a memório meio-ROM, o PHP chama de variável global, a ferramenta $_SESSION. Mas o código que inventei ontem não usa nada disso, ele só usa a memória RAM, ou seja, o que estiver disponível no cabeçote do navegador. Eu perdi um tempão para saber como a rotina da apuração iria devolver o comando para o controlador que solicitou o serviço, e essa foi uma ótima solução. A rotina que eu criei só vai pegar a escolha do usuário e mais nada. O que o usuário escolheu, isso é problema do controlador que precisa da informação, tudo o que ele tem que fazer é olhar o cabeçote do navegador. Ou seja, na base da tentativa e erro, vou começando a aprender o que é programação orientada à gambiarra. Claro que isso não dá dinheiro e nem futuro, mas isso é um bom passa-tempo quando você não encontra nada interessante no Facebook.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 2

De facto, ao ler o teu post, não pude deixar de notar esse "jeitinho brasileiro" que mencionaste, uma abordagem prática e por vezes improvisada à programação. Confesso que, sendo de Portugal, este modo de fazer as coisas sem buscar previamente um conhecimento aprofundado era-me um tanto estranho até chegar ao Brasil. Aqui, aprendi a valorizar essa capacidade de improvisação e adaptabilidade, que tantas vezes leva a resultados surpreendentemente eficazes.

Embora a Programação Orientada à Gambiarra (POG) seja uma expressão carregada de humor, ela reflete uma realidade onde, muitas vezes, a necessidade aguça o engenho. Na verdade, este espírito de "desenrascar" é algo que acabei por admirar.

Aprender PHP, ou qualquer outra linguagem de programação, tem muito a ganhar com a abordagem de estudar fundamentos sólidos, como por exemplo: conceitos básicos, orientação a objetos, gestão de sessões e cookies, interação com bases de dados, exploração de bibliotecas e frameworks, e a adoção de boas práticas. No entanto, a tua experiência ressalta a importância de também ser capaz de pensar fora da caixa e resolver problemas com os recursos disponíveis no momento.

Registei-me apenas para comentar no teu post porque vi nele um reflexo da minha própria jornada de aprendizado aqui no Brasil. A tua abertura ao feedback, como o que recebeste do William Duarte, e a tua disposição para continuamente experimentar, testar e aprender são qualidades louváveis que, creio eu, são essenciais para qualquer programador, independentemente de sua origem ou formação.

Continua nesse caminho, aproveitando o melhor dos dois mundos: o conhecimento formal e a capacidade de improvisar. São essas experiências que enriquecem a nossa prática e o nosso entendimento da programação.

"A prática contínua e a disposição para aprender coisas novas são essenciais no desenvolvimento de software, então continue explorando, testando e aprendendo!"

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...