48
Bogosort, Klingon Code, XGH, ... Henr“ikke” Pereira @ikkebr

Bogosort [CfC]

Embed Size (px)

DESCRIPTION

Primeiro draft do meu talk sobre Bogosort que vai rolar no FISL11

Citation preview

Page 1: Bogosort [CfC]

Bogosort,

Klingon Code, XGH, ...

Henr“ikke” Pereira

@ikkebr

Page 2: Bogosort [CfC]

@ikkebr

• Bacharel em SI– UNIFRA

• Mestrando em Computação– UFSM

• Python

• PHP

• JAVA

• Haskell

Page 3: Bogosort [CfC]

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

Page 4: Bogosort [CfC]

Roteiro

• BogoSort

• Klingon Code

• eXtreme Go Horse

Page 5: Bogosort [CfC]

NinjaSort

Page 6: Bogosort [CfC]

MonkeySort

Page 7: Bogosort [CfC]

EstouComSort

Page 8: Bogosort [CfC]

Fluxograma

Page 9: Bogosort [CfC]

“Stop the bullshit and show me the code.”

Anônimo

Page 10: Bogosort [CfC]

Bogosort em Java

Page 11: Bogosort [CfC]

Bogosort em Scheme

Page 12: Bogosort [CfC]

"Qualquer idiota é capaz de escrever código que um computador possa

entender. Bons programadores escrevem código que seres humanos podem

entender."

Martin Fowler

Page 13: Bogosort [CfC]

Bogosort em Ruby

Page 14: Bogosort [CfC]

Bogosort em Python

Page 15: Bogosort [CfC]

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.

Page 16: Bogosort [CfC]

Desempenho

Matador!

Page 17: Bogosort [CfC]

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

Page 18: Bogosort [CfC]

+ 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

Page 19: Bogosort [CfC]

+ 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

Page 20: Bogosort [CfC]

10 elementos!

0

1000000

2000000

3000000

4000000

5000000

6000000

7000000

3 4 5 6 7 8 9 10

Mínimo

Média

Máximo

Page 21: Bogosort [CfC]

Extrapolando um pouco

Page 22: Bogosort [CfC]
Page 23: Bogosort [CfC]

“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

Page 24: Bogosort [CfC]
Page 25: Bogosort [CfC]

5 Verdades sobre os Klingons

Um verdadeiro guerreiro Klingonnunca comenta seu código.

Page 26: Bogosort [CfC]
Page 27: Bogosort [CfC]

5 Verdades sobre os Klingons

Programas Klingons não possuem parâmetros, apenas argumentos.

E eles devem ganhar todas as batalhas.

Page 28: Bogosort [CfC]
Page 29: Bogosort [CfC]

5 Verdades sobre os Klingons

Específicações são para os fracos e para os tímidos.

Page 30: Bogosort [CfC]
Page 31: Bogosort [CfC]

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.

Page 32: Bogosort [CfC]
Page 33: Bogosort [CfC]

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.

Page 34: Bogosort [CfC]
Page 35: Bogosort [CfC]

5 Verdades sobre os Klingons

Programadores Klingon não sabem contar e também não acreditam

no Bugfoot.

Page 36: Bogosort [CfC]

“Os melhores programadores escrevem apenasprogramas fáceis. "

Michael A. Jackson

Page 37: Bogosort [CfC]
Page 38: Bogosort [CfC]
Page 39: Bogosort [CfC]

Michael Anthony Jackson

- Principles of Program Design

- System Development

- Software Requirements & Specifications

- Business Process Implementation

http://mcs.open.ac.uk/mj665/

Page 40: Bogosort [CfC]

“O problema com programadores é que vocênunca pode dizer o que um programador está

fazendo até que seja tarde demais.“

Seymour Cray

Page 41: Bogosort [CfC]

eXtreme Go Horse (extreme)

http://gohorseprocess.wordpress.com/

Page 42: Bogosort [CfC]

Pensou, não é XGHx.

Page 43: Bogosort [CfC]

Não existe refactoring.

Apenas rework.

Page 44: Bogosort [CfC]

Se tiver funcionando, não rela a mão.

Page 45: Bogosort [CfC]

Testes são pros fracos.

Page 46: Bogosort [CfC]

Fear Driven Development

Page 47: Bogosort [CfC]

“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

Page 48: Bogosort [CfC]

É o fim!

http://twitter.com/[email protected]