Discussão:Programação Orientada a Gambiarras

Origem: Desciclopédia, a enciclopédia livre de conteúdo.
Ir para: navegação, pesquisa

((c|Programar é a arte de fazer gambiarra com seu cartão. Boa noite nada.|Fátima para William))

Cquote1.png SELECT * FROM Tabela Cquote2.png
Qualquer GBD sobre POG

--

Agora uma pá de gente deve tá passando por essa página. Se forem alterar, leiam antes "Como ser engraçado e não apenas idiota". WendelScardua 18:33, 4 Outubro 2006 (EDT)

POGramador relata[editar]

Olá, gaylera. Sou especialista em POG, e tenho isto no meu currículo (no momento desempregado). E sempre encontro a melhor (pior) forma de utilizar esta técnica milenar, de forma
que sempre que crio um programa, tenho a fidelidade do meu cliente para sempre (já que ninguém mais consegue mexer nos meus POGs e aproveitar meu trabalho). Porém venho, 

por meio deste, afirmar que algumas citações não têm graça, e outras que tinham graça foram retiradas, este artigo está todo POGado. Achei ótima a do dia 29 de fevereiro, na verdade é assim que chamo minha técnica de POGramação. O_Papa_eh_POG_o_POG_nao_poupa_ninguem = true (if poupado $no_poupar.new = No_Poupar end). Vocês podiam colocar a do dia de fevereiro novamente e falar do Papa. Mensagens de erro repetidas podem ser retiradas, e algumas outras. Troquem o hino POG do BOPE pelo que o amigo POGramado comentou lá embaixo.

Ops, comentários? Em Esparta não temos isto!
Vocês também podiam tirar códigos grandes em excesso do artigo e alguns vocês podem substituir por outros menores. Adicionei um lema para POG. Coloquem:

"Programação requer criatividade para encontrar soluções. Gambiarra por gambiarra o código fica pronto. O importante não é a gambiarra inicial, e sim o plano de execução final. Funcionou? Deixa! Deu certo? Não mexa! Somos os POGramadores e fazemos a programação do mundo moderno. Follow us on Twitter!"

Seção SÓ pra POG[editar]

Parece que tão usado o artigo pra desabafo. Tudo que veêm de código tosco ou ouvem de sem noção no trabalho jogam no artigo. Acho que seria uma boa cria uma seção só de POG. Os Design Patterns já foi. Daqui a pouco vai ter que ser com exemplos de código e princípios POG.

Gambiarra até pra fazer sugestões[editar]

Desculpem-me mas esse foi o único jeito que encontrei para dar minha sugestão para a segunda parte do hino POG do BOPE, pois não é mais possível editar a página. Segue aí...

"Homem de preto, qual é sua missão? Destruir tabela e deixar banco no chão!"

Saudações...

Urgente[editar]

E se nao fosse o POG nao haveria nada! essa imagem tem q tah na page: http://en.wikipedia.org/wiki/Image:PunchCardDecks.agr.jpg

huahuhuahuahuauhahua

c quiserem incluir esse suporte maravilhoso de um amigo meu:

sujeito: a muié mando avisar q o computador dela trava qdo ela para de digitar suporte: ué.. manda ela num parar....

fora a fita crepe em cima dos resets escrito "aperte antes de ligar para o cpd"

eu quase morro de rir lah....

Deveriam subduvidir o artigo[editar]

Esse artigo tá muito grande, claro que eu naun quero que tirem coisas dele pois tem muita coisa boa, mas poderiam subdividir em outros artigos. Exdeathbr 17:01, 13 Novembro 2007 (BRST)


[JS] Sugestão - Validação de email da minha faculdade[editar]

Olá, esse código JS a seguir é como o sistema da universidade que eu estudo valida emails... Já estou chamando de uma nova modalidade... EXTREME POG.

function fc_critica_e_mail_ok (ds_e_mail) {
     if (ds_e_mail.length == 0) {
        return false;
     }
     if (ds_e_mail.indexOf("@.") != "-1" ||
         ds_e_mail.indexOf("\"") != "-1" ||

         ds_e_mail.indexOf(" ")  != "-1" ||
         ds_e_mail.indexOf("'") != "-1" ||
         ds_e_mail.indexOf(";")  != "-1" ||
         ds_e_mail.indexOf(",")  != "-1" ||

         ds_e_mail.indexOf("{")  != "-1" ||
         ds_e_mail.indexOf("}")  != "-1" ||
         ds_e_mail.indexOf("[")  != "-1" ||
         ds_e_mail.indexOf("]")  != "-1" ||

         ds_e_mail.indexOf("<")  != "-1" ||
          ds_e_mail.indexOf(">")  != "-1" ||
         ds_e_mail.indexOf("?")  != "-1" ||
         ds_e_mail.indexOf("|")  != "-1" ||

         ds_e_mail.toUpperCase().indexOf("@NÃO-DIVULGADO") != "-1") {
        return false;
     }
     if ( ds_e_mail.indexOf("@")      == "-1" ||
          ds_e_mail.indexOf(".")      == "-1" ||

         (ds_e_mail.indexOf("@") + 1) == ds_e_mail.length ||
         (ds_e_mail.indexOf(".") + 1) == ds_e_mail.length) {
        return false;
     }
     return true;
  }

  function fc_critica_formulario_ok (fm_e_mail) {
     var fg_sem_erro = true;
     if (!fc_critica_e_mail_ok(fm_e_mail.p_ds_e_mail.value))
     {
        alert ('E-mail inválido.');
        fg_sem_erro = false;

     }
     return fg_sem_erro;
}
  


Sugestões[editar]

Estive andando pelo meu HD e achei esta pérola:

O jeito mais porco de fazer um programa auto-deletável: (Delphi)

unit Unit_AutoDelecao;
 
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TDriveType = (dtUnknown, dtNoDrive, dtFloppy, dtFixed, dtNetwork, dtCDROM, dtRAM);
  TForm1 = class(TForm)
  Button1: TButton;
  procedure Button1Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function GetTmpDir: string; // Get the windows temporary directory
var
  pc: PChar;
begin
  pc := StrAlloc(MAX_PATH + 1);
  GetTempPath(MAX_PATH, pc);
  Result := string(pc);
  StrDispose(pc);
end;

procedure DelExe; // procedure to delete the current program
  function GetTmpFileName(ext: string): string;
  var
    pc: PChar;
  begin
    pc := StrAlloc(MAX_PATH + 1);
    GetTempFileName(PChar(GetTmpDir), 'EZC', 0, pc);
    Result := string(pc);
    Result := ChangeFileExt(Result, ext);
    StrDispose(pc);
  end;
var
  batchfile: TStringList;
  batchname: string;
begin
  if (TDRiveType(GetDriveType(PChar('C:\'))) = dtFloppy) or (TDRiveType(GetDriveType(PChar('C:\'))) = dtFixed) then 
  begin
    batchname := GetTmpFileName('.bat');
    FileSetAttr(ParamStr(0), 0);
    batchfile := TStringList.Create;
    with batchfile do 
    begin
      try
        Add(':Label1');
        Add('del "' + ParamStr(0) + '"');
        Add('if Exist "' + ParamStr(0) + '" goto Label1');
        Add('rmdir "' + ExtractFilePath(ParamStr(0)) + '"');
        Add('del "' + GetTmpDir + ExtractFileName(ParamStr(0)) + '"');
        Add('del ' + batchname);
        SaveToFile(batchname);
        ChDir(GetTmpDir);
        WinExec(PChar(batchname), SW_HIDE);
      finally
        batchfile.Free;
      end;
      Halt;
    end;
  end //else with Owner as TForm do Close;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  DelExe;
end;

end.

por favor tirem a palavra "gordos" do texto[editar]

por favor tirem a palavra "gordos" do texto

Ecziste algum motivo aparente para a retirada? E, se provavelmente existir, onde estaria? Duque SLB.jpgSLBENFICAOBDdiscussão

Limpeza[editar]

Essa página está necessitando de uma limpeza. Está se tornando mais uma coleção de códigos que fazem qualquer coisa sem demonstrar nenhum conceito a mais de POG do que um artigo. Esse excesso de códigos também está deixando o artigo cada vez mais desestruturado Acho que seria bom deletar os códigos mais idiotas. Ou então dar uma boa mexida na estrutura dele. o comentário precedente deveria ter sido assinado por 201.10.187.14 (discussão • contrib.)

Limpeza ???? Esta zona é POG !!!!

Sobre códigos[editar]

Galera, eu acho interessante quando incluirmos códigos, que outros não alterem, pois o que muitos de nós estamos incluindo são códigos reais, que podem não compilar, mas são exemplos de pérolas criadas pelos Mestres.

O que vocês acham?

Eu acho ruim. Existe muito mais código POG do que código Não-POG no mundo (google.com/codesearch que o diga). Se todo mundo for
colocar tudo quanto é tipo de código POG aqui, a página não vai mais carregar de tão grande :-)

Seria a mesma coisa que a página de Cheiramento de Gatinhos passar a ter uma lista de todas as espécies de gatos do mundo, e seus
efeitos colaterais ao serem cheirados. *Perde* *a* *graça* 
WendelScardua 22:05, 27 Outubro 2006 (EDT)


Ah sim, lembre de, aqui na discussão, usar 4 tils para inserir assinatura: ~ + ~ + ~ + ~ = WendelScardua 22:05, 27 Outubro 2006 (EDT)


Eu concordo, pois assim perde a graça, você coloca um código POG, vem uma outra pessoa e arruma de acordo com a sua vontade e o código perde o sentido... --DexterDF 15:01, 30 Outubro 2006 (EST)

PHP[editar]

Apaguei uns códigos em php pq não tinham a menor graça. Tem gente que fica se repetindo nos conceitos, um exemplo já tá bom e que fique o exemplo mais POG.

Gambi Design Patterns[editar]

Voto pela criação de um artigo só pro Gambi Design Patterns e um link do artigo sobre POG pra ele.

Aprovado! SEU EMO(lol, zuera =P, ou talvez nao)

Aprendendo a fazer algoritmos seguros e confiáveis para a vida toda - by um MPOG[editar]

Fragmento de código de um MPOG "esclrerozado" e sempre preocupado com a confiabilidade do código.....

 function FaizOSirviço() : boolean;
var
  i : Extended;  // Note que a variavel "i" não foi utilizada mas ... se precisar ... jah estah ai...
  NumRegistros : Double; // Vai que o Dataset tenha muitas linhas.....
  RegistroAtual,RegistroAtualOld : Currency; 
  DataSet :  DataSet;
begin
  if DataSet.Active then DataSet.Close;
  DataSet.Close ; // Importante garantir que o DataSet está fechado.. de um jeito ou de outro 
  DataSet.CommandText := 'select * from notafiscal'; // importante selecionar todos os campos nunca se sabe quando vamos precisar de um ou de outro;
  DataSet.Open;
  NumRegistros := DataSet.RecordCount;
  // Agora vamos percorrer o Dataset da forma mais segura e confiavel possível... sempre buscando evitar que este entre num loop infinito...
  RegistroAtual := 1;
  RegistroAtualOl := 1;
  while ((not DataSet.Eof) and (RegistroAtual <= NumRegistros )) do
  begin
    RegistroAtual := RegistroAtual + 1; // o ideal seria Inc(RegistroAtual) pq é mais    elegante......    
     /// mas é bom fazer um teste para ter certeza que a variavel "RegistroAtual" foi realmente incrementada... portanto:
    if Abs(RegistroAtualOld - RegistroAtual) = 1 then
    begin
     RegistroAtualOld := RegistroAtual; // Pronto, a variavel jah pode ser usado na proxima iteração...
    end
    else 
    begin
      Showmesage('A variavel "RegistroAtual" não pode ser incrementada.. contacte o programador urgentemente...')
    end; 
    .
    .
    . // Faz o que tem de fazer.....
    if  RegistroAtual >= Dataset.RecordCount then
    begin
      Result := True; // Sai fora e resulta verdadeiro pois já chegou a fim do Dataset;
      Exit;
    end
    else // mais uma verificação para garantir....
    begin
      if RegistroAtual >= Dataset.RecordCount then
      begin
        Result := True; // Sai fora e resulta verdadeiro pois já chegou a fim do Dataset;
        Exit;
      end;
    end;
    DataSet.Next;
  end;
  Result := True; // Ao final resulta verdadeiro pois o código nao tem como falhar// Seguraça...confio no meu taco...
end;
 

Livro da O'Reilly[editar]

Fiz uma paródia de capa de livro da O'Reilly sobre os Gambi Design Patterns e coloquei no artigo.

Ajeitada nos Gambi Design Patterns[editar]

Não estou logado mas sou o Fifteen Cent. Dei uma ajeitada nos Gambi Design Patterns. Ficou mais limpo de se ver.

Esse artigo eh muito foda[editar]

Elejam ele como o melhor. Geral da faculdade aqui rindo com essa porra.

À gambiarras[editar]

Sem querer ser chato, mas já sendo, acho que o título correto seria "Programação Orientada à Gambiarras" (Com crase no à)

o "a" nesse caso leva crase, se substitirmos "Gambiarra" por algo masculino, fica "ao"

"Programação Orientada ao Mau gosto" 201.64.19.119 17:42, 19 Dezembro 2006 (EST)

Não cheire gatinhos.

O certo é "Programação Orientada a Objetos", e não "Programação Orientada aos Objetos"

WendelScardua[talk][contrib] 00:49, 9 Fevereiro 2007 (BRST)

Querendo ser ainda mais chato, vai contra à norma culta da língua a expressão "Programação Orientada à Gambiarras" pois, primeiro, não concorda em número; "às Gambiarras" concordaria em número mais, ainda assim, estaria errado pois não há qualificação para o substantivo "Gambiarra" que justifique a presença do artigo junto à preposição (o que forma o "a" craseado é a soma dos dois, sabia ?). Portanto, nomenclatura correta: "Programação orientada a Gambiarra" ou ainda "Programação orientada a Gambiarras"

Artigo muito grande[editar]

Podia-se quebrar ele em artigos menores. São muitos Gambi Design Patterns, exemplos de códigos em milhões de linguagens... Seria legal criar até uma categoria só pra POG na desciclopédia.

Fifteen Cent 18:56, 22 Dezembro 2006 (EST)

Organização dos exemplos[editar]

Organizei os exemplos de POG em ordem alfabética. Fifteen Cent 10:39, 27 Dezembro 2006 (EST)


Código Bacalhau[editar]

Eu sempre aprendi que um programa "Baca"(lhau) era aquele que ao ser necessário ver o código-fonte fedia (o programador torcia o nariz) e estava sem cabeça (ninguém era capaz de dizer que codificou...).

Seção[editar]

bom, tem uma seção recentemente adicionada, foi TADG (Técnicas Avançadas DEBUG para Gambiarras), feito por Pype.

Eu não mexi no código, apenas fiz correções menores como ortografia e concordância da descrição.

só achei um pouco estranha a conclusão dessa seção, que se refere ao código(provavelmente):

IMPORTANTE : Caso você não consiga mostrar o display na tela, 
poderá utilizar o método erro condicional colocando um comando que 
não existe para dar páu direto.

se você colocar um comando que não existe, provavelmente não compila... Eu acho mais coerente colocar um tratamento de exceção ;]


outra: existe alguma regra para colocar as novas citações ou exemplos de patterns?

ex: Colocar as novas em cima.

Valeu pela atenção,


Mostrow 18:36, 8 Fevereiro 2007 (BRST)

Depende da linguagem. Tem linguagem que dá pau só na hora de chamar a instrução e ver que ela non ecziste...

WendelScardua[talk][contrib] 00:50, 9 Fevereiro 2007 (BRST)

Certificado "P.O.G."[editar]

Certificado "P.O.G."

Arquivo:Http://paginas.terra.com.br/informatica/webtas/images/Certificado MacGyver Preview.jpg

http://paginas.terra.com.br/informatica/webtas/images/Certificado_Vazio.jpg

[email protected]

Design Pattern CCOP[editar]

Me parece desnecessário já que é o plágio do RCP. Sugiro levar uma ou duas frases(ou até menos) do CCOP para o RCP e eliminar o CCOP. Abraços, BMX, eu praticoCoxambra Mande seu recado 01:48, 21 Abril 2007 (BRT)

Um exemplo de POG americano[editar]

http://home.att.net/~rmestel/articles/real_programmers.txt

O verdadeiro gambiarrizador dos tempos que se ainda usava memórias de tambor.

(Enquanto vocês lêem eu estou tentando implementar a "Soma sem sinal" em Assembler. Pedido do professor de TLP).


Gambis de sql[editar]

Estava no trabalho quando me deparei com um comando para economizar a lógica do and (sabe quando você tem varios if que concatenam um comando sql e qualquer uma das linhas pode ser a primeira) Ao invés de fazer uma flag para o and o código simplesmente iniciava a sql com "0=0" :P Outra gambi é um framework que monta uma sql até certa parte do where e vc pode implementar uma função que retorna uma parte do where da query. Digamos que por algum motivo qualquer você precisa que esta query não retorne nenhum resultado. A solução: concatenar "1=0" :D


Mudança[editar]

Movi os exemplos nas linguagens para um artigo novo, como ocorreu com o "Gambi Design Patterns" Fifteen Cent 23:36, 6 Agosto 2007 (BRT)


Em Debugação Através da Técnica IPG[editar]

"Lembre-se, um bom programador POG controla versões com arquivos zip, sempre mais práticos do que aquele monte de comandos chatos e difíceis de decorar do CVS."

Na verdade um bom programador controla versões, quando controla, com comentários no código ou, NO MÁXIMO, através de e-mails mandados para ele mesmo (até pq o gmail é mais confiável do que seu HD), sem registrar as mudanças por escrito, claro.

Indo contra os mandamentos...[editar]

O artigo é bom, mas existem demasiadas citações... 2) Não encha os artigos com demasiadas citações!

Isso porque, há pessoas que não leram outras duas regras também: 7) Não utilize a Desciclopédia para praticar Humor Privado. 8) Seja engraçado, e não apenas idiota. Na dúvida, escreva bêbado.


Parece que existe administrador que não sabe disso e volta as correções que são feitas.


O Artigo virou um Frankenstein[editar]

Venho acompanhando este artigo desde o final de 2006 e vejo que cocozão ele se transformou. Às vezes tentei ajudar a organizar, mas ALGUÉM sempre revertia as alterações deixando cada vez mais bagunçado, e bagunçado, e bagunçado, e bagunçado... Agora tá ae, sofrendo de elefantíase, quase sem graça, irreconhecível. Espero que percam um pouco da mentalidade "time que está 'ganhando' não se mexe" e comecem a tirar as citações toscas.

Vou fazer isso agora, vamos ver no que vai dar.

Fifteen Cent 22:44, 23 Outubro 2007 (BRT)

Bacana, agora minha sugestão é: Por ser o artigo de maior popularidade na DPédia sugiro que você faça o seguinte: Coloque aqui na discussão aquilo que você removeu, com o intuito de registrar não somente da forma tradicional as alterações, da seguinte forma:
  • Limpeza
  1. Tirei X
  2. Modifiquei Y

E sua assinatura em baixo.

Pode ser um pouco chato, mas como o POG é o filho mais ilustre da DPédia ele merece um tratamento carinhoso. Abraz, BMX, eu praticoCoxambra Mande seu recado 23:04, 23 Outubro 2007 (BRT)

Outra sugestão: Voltar com os chavões POG todos para o artigo original e fazer uma limpeza deixando apenas os melhores, ou todos. Acho que ficar fatiando o artigo o torna mais Frankstein do que já está. Ou tudo lá ou tudo aqui na minha opinião. Abraz, BMX, eu praticoCoxambra Mande seu recado 23:07, 23 Outubro 2007 (BRT)


Limpeza[editar]

Devido o artigo ser grande e desorganizado, resolveu-se que ele entrará em um processo lento e cuidadoso de re-edição. As partes editadas devem ser notificadas aqui, seguida pela assinatura do editor. Eu fiz a minha parte.


Edição de Coxambra[editar]

  1. Removi a versão em java do GambiSort. Pela versão em Pascal é perfeitamente visível o funcionamento do método de ordenação:
Agora tb na versão java.

public class gambisort {
	public static void main(String args[]) throws Exception{
		
		int[] ordenar = {5, 2};
		int[] listaordenada = new int[ordenar.length];
		int i = 0;
		int c = 0;
		boolean sair = false;
		
		while(true) {
			i++;
			for(int j = 0; j < ordenar.length; j++) {
				if(ordenar[j] == i) {
					listaordenada[c] = ordenar[j];
					c++;
				}
				
				if(c == listaordenada.length) {
					sair = true;
					break;
				}	
			}
			if(sair)
				break;
		}
	}
}

BMX, eu praticoCoxambra Mande seu recado 23:30, 23 Outubro 2007 (BRT)


Edição de (????)[editar]

((c|Programar é a arte de fazer gambiarra com seu cartão. Boa noite nada.|Fátima para William)) Cquote1.png SELECT * FROM Tabela Cquote2.png
Qualquer GBD sobre POG


Edição de Fifteen Cent 23:41, 23 Outubro 2007 (BRT)[editar]

  • Citações retiradas:

Cquote1.png "We Have a problem!!" Cquote2.png
NASA sobre POG
Cquote1.png "É complicado e é pra ser!" Cquote2.png
Coodernador POG
Cquote1.png "Refazer o calendário?! Não.. coloca mais um dia ali em fevereiro.." Cquote2.png
Papa Gregório ao criar o ano bissexto - O primeiro POG
Cquote1.png "Um sistema não pode estar completo sem POG. Coloca um Go To que você economiza código" Cquote2.png
Jairo M. - POGamador Senior
Cquote1.png Exception When OTHERS Then Resume. Cquote2.png
PL/SQL sobre POG
Cquote1.png java.lang.NullPointerException. Cquote2.png
Java sobre POG
Cquote1.png On Error Resume Next Cquote2.png
Visual Basic sobre POG
Cquote1.png Parse Error. Cquote2.png
PHP sobre POG
Cquote1.png Error in your MySQL Syntax. Cquote2.png
MySQL sobre POG
Cquote1.png Errors detected during compilation. Cquote2.png
Caché Object Script sobre POG
Cquote1.png Não tenho outra saída ... Golpe do João sem Braço! (POG ou AJA - [Armless John`s Attack]) Cquote2.png
Alunos desesperados que deixaram um trabalho, que o professor entregou no início do semestre, para fazer na última hora.
Cquote1.png Precisa recompilar o kernel! Cquote2.png
Analista de Suporte sobre POG
Cquote1.png Como não funciona ? Eu só recompilei...deve ser um problema no servidor Cquote2.png
Resposta do bem sucedido Programador Senior POG
Cquote1.png Deve ter ficado alguma coisa atravessado no banco Cquote2.png
Programador POG
Cquote1.png Eu fiz isso porque se não vai dar pau... Cquote2.png
Professora de linguagem de POGamação aos seus alunos
Cquote1.png Ninguém mandou pagar pouco... Cquote2.png
Estagiário sobre POG
Cquote1.png Os fins justificam os meios! Cquote2.png
Nicolau Maquiavel sobre POG
Cquote1.png Abre no Internet Explorer que funciona. Cquote2.png
Resposta padrão do suporte sobre POG

Edição de Coxambra[editar]

Isso:

Arquivo em alta definição, disponível para impressão. (Somente utilize caso você tenha adquirido a devida certificação.) http://paginas.terra.com.br/informatica/webtas/

Virou isto:

Arquivo em alta definição, disponível para impressão. Somente utilize caso você tenha adquirido a devida certificação.

BMX, eu praticoCoxambra Mande seu recado 00:19, 24 Outubro 2007 (BRT)

Tentando arrumar a taxonomia:

  1. Criando Seção "Algoritmos de Ordenação" e Inserindo Gambi e Kick Sort.
  2. Criando Seção "Certificações" e Inserindo Certificado "P.O.G" e Certificação Pessoal.
  3. Retirando a palvra "comentados" da seção PPOG, pois é óbvio quando se a lê que estão "comentados"

BMX, eu praticoCoxambra Mande seu recado 00:31, 24 Outubro 2007 (BRT)

Mais algumas coisas feitas:

  1. Retirando a "Maquina de Estados OG" da seção "Exemplos de POG (?)" e colocando em uma seção com seu próprio nome por não se tratar necessariamente de um "Exemplo de POG" e coloquei a imagem dimensionada um pouco menor.
  2. Desta mesma seção retirei "Veja também: [[#Modelagem Orientada a Gambiarra" já que era uma referência interna ao texto para a seção justamente abaixo.
  3. Assim como os mesmos passos na seção "Modelagem Orientada a Gambiarras" que tinha um link para a seção justamente acima e a imagem foi redimensionada para menor.

BMX, eu praticoCoxambra Mande seu recado 00:54, 24 Outubro 2007 (BRT)

  1. Movi o artigo que fala sobre o uso do MOG e POG para o fim do artigo, pois nem todos os conceitos do POG haviam sido ditos e já tem um artigo imenso no meio do texto. Outra coisa, este artigo interno estava perdido dentro de Modelagem Orientada a Gambiarras.

O artigo tá Frankstein mesmo. Fica aqui novamente um reforço da minha sugestão. Recolocar os "Chavões" de Volta e selecionar os melhores para ficarem no artigo.

BMX, eu praticoCoxambra Mande seu recado 01:25, 24 Outubro 2007 (BRT)

Transformação de Seções:

  1. Chuck Norris -> Metodologia Chuck Norris

Troca de Ordem entre Seções:

  1. Ciclo de vida de um projeto POG com Certificações

A estrutura do texto do artigo está boa, ficou, no meu ponto de vista, logicamente organizada. As próximas edições (não sei quando) irei fazer ajustes no texto propriamente dito, certamente tomando grande cuidado com o texto base do texto pra não criar alterações que possam comprometar a alma do texto e, se for fazer maiores alterações colocarei aqui na discussão. BMX, eu praticoCoxambra Mande seu recado 01:43, 24 Outubro 2007 (BRT)

Na seção Tipo de Erros POG:

Isto:

Estouro de Timóteo: Estouro de timóteo é quando o desenvolvedor faz uso indevido dos POGs, isso torna a aplicação lenta e estoura o tempo permitido para processar:

  • Resolução do Problema: Aumente o tempo de timóteo em 31104000 segundos

Reescrevi e está assim:

Estouro de Time-out: É quando o desenvolvedor que não possui habilidades no uso de POGs cria aplicações que são lentas e, desta forma, "estoura" o tempo estipulado para o processamento:

  • Resolução do Problema: Aumente o tempo de Time-out para que este tenda ao infinito.

BMX, eu praticoCoxambra Mande seu recado 19:17, 24 Outubro 2007 (BRT)

Adicionei novas Imagens (O artigo estava precisando) (veja à direita):

Nem a Globo escapa
O clima é previsível, mas o POG é astuto
  1. Removi dos fatores para a formação do gambiarrizador a "Criatividade".
  2. Adicionei: "que possuem, dentre outros fatores reusabilidade e legibilidade em seu auge." Ao final do quinto parágrafo da seção "Definição de POG".
  3. Adicionei novo princípio: "Simplicidade acima de tudo - Se o programa funciona sem o Tratamento de Exceções e a verificação de campos preenchidos pelo usuário porque complicá-lo ?"
  4. Transformei

Isto:

  • Conclusão Hipotética Universal Técnica Explicativa - Quando nenhum dos outros conceitos se aplica, utiliza-se este até funcionar ou desistir. (C.H.U.T.E)

Em isto:

  • Conclusão Hipotética Universal Técnica Explicativa (aka. C.H.U.T.E) - [...]

Estou vigiando o artigo de perto agora pra que pelo menos não fique mais retalhado. Estou tomando cuidado para ter discernimento quanto remover ou não uma edição.

BMX, eu praticoCoxambra Mande seu recado 20:47, 25 Outubro 2007 (BRT)

Criei uma seção chamada "Advertência" com o 6º parágrafo da seção "Definição de POG", pois este estava perdido e não abordava nada com relação à definição de POG. Este seção foi criada no fim do artigo, pois não trata-se diretamente do POG, mas sim de algo "possível" de acontecer com seu uso.

BMX, eu praticoCoxambra Mande seu recado 21:10, 25 Outubro 2007 (BRT)

Certificações[editar]

Esta página é excelente, mas um ponto que penso que destoa dela é a parte "GambiGodnessPower Certification", pois parece um outro tipo de humor, mais fantasioso, enquanto a página inteira lida com verdades ou meia-verdades. Sugiro que fosse retirado, pois nada acrescenta ao texto ou ao tema. --Kaos Kahn 09h48min de 19 de janeiro de 2010 (BRST)


Introdução[editar]

Com o gigantesco aumento do número e porte das empresas do setor de TI em cerca de 0,5% no mundo nos últimos 50 anos, a demanda por novas tecnologias cresceu absurdamente. Como as técnicas de programação seqüêncial, por botão, procedural e orientada por objetos não conseguem mais suprir a qualidade máxima esperada pelos softwares geradores de relatórios que necessitam de massiva quantidade de recursos como desempenho, performance e throughput a Programação Orientada a Gambiarras foi desenvolvida.

Gambi Design Patterns[editar]

Os Gambi Design Patterns haviam sido separados desta página em um artigo complementar porque a deixavam muito pesada, eram muito numerosos, são apenas uma das partes do conceito de POG e deixavam a leitura do artigo cansativa

Porém, no dia 27/10/2007 eles foram ressuscitados de históricos antigos e reincorporados, mas com isso acabou se criando um fork, onde as novas edições no artigo complementar ficam perdidas e esquecidas no artigo complementar que não mais é citado neste artigo (que é o principal). Só para deixar claro: O artigo complementar tem 63 Gambi Design Patterns, porém dos históricos antigos vieram 46, de forma que 17 deles ficam esquecidos no artigo complementar órfão e os recuperados desatualizados.

No entanto, antes de simplesmente sair desfazendo edições dos outros e alterando coisas, queria debater o que devemos fazer neste caso. Se realmente colocamos os Gambi Design Patterns em seu artigo separado ou se finalmente os reincorporamos todos e atualizados.

Vwss 12:54, 30 Outubro 2007 (BRT)

Estou conversando com o Wendel sobre isto. Tenho uma proposta simple pra integrar os Patterns com o artigo. Estou esperando ele "levantar o polegar" (ou não) para a idéia. Abraz, BMX, eu praticoCoxambra Mande seu recado 23:26, 30 Outubro 2007 (BRT)

Sugestão Chavões POG[editar]

Não se preocupe, nenhum sistema "entra redondo". O importante agora é entrar em produção, depois consertamos os erros! Gerente sem noção tentando acalmar desenvolvedor sobre projeto MOG com prazo estourado.


Se ficou não engraçado não sei. O interessante é que foi exatamente assim que aconteceu.

Acrescentado no artigo. Sei como é ser desenvolvedor. Abraz, BMX, eu praticoCoxambra Mande seu recado 18h32min de 26 de Junho de 2008 (BRT)

Modelo "Horda" de desenvolvimento[editar]

Modelo de projeto baseado nos exércitos mongois de Gengis Khan, onde: Uma horda de "pogramadores com reduzida experiencia"(estagiários) que têm como desafio a tarefa de construir um sistema seguindo as instruções de "analistas POG com reduzida experiencia"(estagiários).

Este modelo de construção atingiu seu ápice nos dias de hoje em meados dos anos 90

Tah funcionando ..., mas se testar muito quebra !

Código Seguro em VB6[editar]

Dim var1 As Boolean

var1 = False

If var1 = True Then

 var1 = False

End If


Programando deste jeito a chance de uma variavel conter um valor indesejado é NULA! Provendo segurança e estabilidade em suas aplicações.

Código Seguro em .NET[editar]

try { ... } catch (Exception exception1)

       {
           ProjectData.SetProjectError(exception1);
           Exception exception = exception1;
           ProjectData.ClearProjectError();
       } 

public bool FormatoSenha(ref string texto)

   {
       return true;
   }

public static string Strcn

   {
       get
       {
           var_strcn = "Password=XXXXX;Persist Security Info=True;User ID=XXXXX;Initial Catalog=XXXXXXX;Data Source= XXXX";
           return var_strcn;
       }

//Pra que web.config, né?

   }

public static short ID

   {
       get
       {
           return var_id;
       }
       set
       {
           if (Versioned.IsNumeric(value))
           {
               var_id = value;
           }
           else
           {
               var_id = 0;
           }

//Isso que é um código aprova de falhas!

       }
   }

public static string Valor

   {
       get
       {
         return var_Valor;
       }
       set
       {
           if (value.Trim().Length == 0)
           {
               var_Valor = "0";
           }
           else
           {
               var_Valor = value;
           }

//Se o valor for “null” fodeu!

       }
   }

if (ExecutaNonQuery(ref “UPDATE ........))

               {
               }

//Pra que fazer o IF? Mandar string fixa “byRef”? Interessante...


if (var[num, 0, 0].Trim() == XXXXXX")

               {
                   num = num;
               }

//????

Só Cristo salva!![editar]

Atire a primeira pedra quem nunca POGOU

Extensão a Certificação Pog[editar]

POJO ~POGOS = Pog Objects

Códigos em separado[editar]

Sugiro FORTEMENTE que os códigos sejam colocados em uma seção separada do artigo principal. Tem que ficar "debugando" pra encontrar a graça, que é pequena (nossa, esse código é absurdo, que engraçado!). Assim o artigo fica mais curto e mais acessível, e os códigos só serão vistos por quem se interessa por eles.o comentário precedente deveria ter sido assinado por 179.185.81.8 (discussão • contrib.)

Este o que falta pra esse artigo se tornar um dos melhores? Só organização?

Desciclo insignia.jpg Desciclo insignia.jpg Desciclo insignia.jpg Fale com o José da Bahia  a. m. a.  Joseph from bay's experiencies

10h16min de 5 de julho de 2016 (BRT)