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

Bogosort [CfC]

Nov 01, 2014

Download

Primeiro draft do meu talk sobre Bogosort que vai rolar no FISL11
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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]