Download - Bogosort [CfC]
Bogosort,
Klingon Code, XGH, ...
Henr“ikke” Pereira
@ikkebr
@ikkebr
• Bacharel em SI– UNIFRA
• Mestrando em Computação– UFSM
• Python
• PHP
• JAVA
• Haskell
Essa Palestra
• Não é:
– Para ser levada a sério
• Só algumas partes
– Para os fracos de coração
– Para quem se ofende facilmente
– Para crianças menores de 18 anos
Roteiro
• BogoSort
• Klingon Code
• eXtreme Go Horse
NinjaSort
MonkeySort
EstouComSort
Fluxograma
“Stop the bullshit and show me the code.”
Anônimo
Bogosort em Java
Bogosort em Scheme
"Qualquer idiota é capaz de escrever código que um computador possa
entender. Bons programadores escrevem código que seres humanos podem
entender."
Martin Fowler
Bogosort em Ruby
Bogosort em Python
Quando usar?
• Quando um código roda rápido demais.
• Quando se deseja mostrar a um cliente como ficaria o programa se ele fosse feito em <insira outra linguagem aqui>.
• Em apresentações como essa.
Desempenho
Matador!
Análise (número de Shuffles)
0
500
1000
1500
2000
2500
3000
3500
4000
3 elementos 4 elementos 5 elementos 6 elementos
Mínimo
Média
Máximo
+ Análise (número de Shuffles)
0
5000
10000
15000
20000
25000
30000
35000
3 4 5 6 7
Mínimo
Média
Máximo
+ Análise (número de Shuffles)
0
200000
400000
600000
800000
1000000
1200000
1400000
3 4 5 6 7 8 9
Mínimo
Média
Máximo
10 elementos!
0
1000000
2000000
3000000
4000000
5000000
6000000
7000000
3 4 5 6 7 8 9 10
Mínimo
Média
Máximo
Extrapolando um pouco
“A maioria do software hoje é como umapirâmide egípcia com milhões de blocosempilhados um em cima do outro, sem
integridade estrutural, apenas feitos por forçabruta e centenas de escravos.“
Alan Kay
5 Verdades sobre os Klingons
Um verdadeiro guerreiro Klingonnunca comenta seu código.
5 Verdades sobre os Klingons
Programas Klingons não possuem parâmetros, apenas argumentos.
E eles devem ganhar todas as batalhas.
5 Verdades sobre os Klingons
Específicações são para os fracos e para os tímidos.
5 Verdades sobre os Klingons
Klingons não fazem “releases”. Eles deixam que o código crie vida
própria e escape para aterrorizar os usuários.
5 Verdades sobre os Klingons
Um programador Klingon se sente extremamente magoado se você reportar um bug no software. Ele só conseguirá largar essa mágoa quando matar toda a sua família.
5 Verdades sobre os Klingons
Programadores Klingon não sabem contar e também não acreditam
no Bugfoot.
“Os melhores programadores escrevem apenasprogramas fáceis. "
Michael A. Jackson
Michael Anthony Jackson
- Principles of Program Design
- System Development
- Software Requirements & Specifications
- Business Process Implementation
http://mcs.open.ac.uk/mj665/
“O problema com programadores é que vocênunca pode dizer o que um programador está
fazendo até que seja tarde demais.“
Seymour Cray
eXtreme Go Horse (extreme)
http://gohorseprocess.wordpress.com/
Pensou, não é XGHx.
Não existe refactoring.
Apenas rework.
Se tiver funcionando, não rela a mão.
Testes são pros fracos.
Fear Driven Development
“Os primeiros 90% do código representam osprimeiros 90% do tempo de desenvolvimento. Os 10% restantes representam os outros 90%
do tempo de desenvolvimento.”
Tom Cargill
É o fim!
http://twitter.com/[email protected]