O documento discute as vantagens e desvantagens de diferentes linguagens de programação e abordagens. Ele enfatiza que nenhuma linguagem é perfeita e que as escolhas devem ser baseadas no contexto e objetivos de cada projeto. Além disso, destaca a importância de os desenvolvedores reconhecerem tanto os pontos fortes quanto as limitações de suas ferramentas.
8. Java
List<Categoria> categorias = new
ArrayList<Categoria>();
for(Produto p : produtos)
categorias.add(p.getCategoria());
for(int i=0;i<categorias.size();i++) {
Categoria c = categorias.get(i);
if(categorias.lastIndexOf(c)!=i) {
categorias.remove(c); i--;
}
}
9. Java
List<Categoria> categorias = new
ArrayList<Categoria>();
for(Produto p : produtos)
categorias.add(p.getCategoria());
for(int i=0;i<categorias.size();i++) {
Categoria c = categorias.get(i);
if(categorias.lastIndexOf(c)!=i) {
categorias.remove(c); i--;
}
}
double total = 0;
for(Produto p : produtos) {
total += p.getValor();
}
10. Java
List<Categoria> categorias = new
ArrayList<Categoria>();
for(Produto p : produtos)
categorias.add(p.getCategoria());
for(int i=0;i<categorias.size();i++) {
Categoria c = categorias.get(i);
if(categorias.lastIndexOf(c)!=i) {
,
categorias.remove(c); i--;
te
n s!
}
e i
}
lm ma
a e
double total = 0;
for(Produto p : produtos) { re d
total += p.getValor(); é
}
21. Java
List<Categoria> categorias = new
ArrayList<Categoria>();
for(Produto p : produtos)
categorias.add(p.getCategoria());
for(int i=0;i<categorias.size();i++) {
Categoria c = categorias.get(i);
if(categorias.lastIndexOf(c)!=i) {
categorias.remove(c); i--;
}
}
double total = 0;
for(Produto p : produtos) {
total += p.getValor();
}
22. Java
List<Categoria> categorias = new
ArrayList<Categoria>();
for(Produto p : produtos)
categorias.add(p.getCategoria());
for(int i=0;i<categorias.size();i++) {
Categoria c = categorias.get(i);
if(categorias.lastIndexOf(c)!=i) {
categorias.remove(c); i--;
}
}
double total = 0;
for(Produto p : produtos) {
total += p.getValor();
}
23. sugestões para um bom programador
2. domine sua api
(versus não seja dominado)
24. sugestões para um bom programador
2. domine sua api
(versus não seja dominado)
25. 1 e 2. domine sua api Java
Set categorias = new HashSet();
for(Produto p : produtos) cat.add(p.categoria());
double total = 0;
for(Produto p : produtos) total += p.valor();
26. 1 e 2. domine sua api Java
Set categorias = new HashSet();
for(Produto p : produtos) cat.add(p.categoria());
double total = 0; á ar”
d r
a o
for(Produto p : produtos) total += p.valor();
d lh
in e
a m
a “
ar
p
79. @product.andand.category
zoado né?
‘i don’t need more random
boolean conditional constructs
because thats not what is
improving our code quality’
evan phoenix
80. @product.andand.category
zoado né?
‘i don’t need more random
boolean conditional constructs
because thats not what is
improving our code quality’
evan phoenix
verdadeiro
81. @product.andand.category
zoado né?
‘i don’t need more random
boolean conditional constructs
because thats not what is
improving our code quality’
evan phoenix
verdadeiro e falso
83. não é
um random boolean conditional
é o básico de uma
mônada de funcional
84. não é
um random boolean conditional
é o básico de uma
mônada de funcional
products.map(_.category) (0 ou +)
85. não é
um random boolean conditional
é o básico de uma
mônada de funcional
products.map(_.category) (0 ou +)
product.map(_.category) (0 ou 1)
86. não é
um random boolean conditional
é o básico de uma
mônada de funcional
products.map(_.category) (0 ou +)
product.map(_.category) (0 ou 1)
Quem ganha? Ninguém.
os dois estão certos!
um no imperativo, outro no funcional.
101. ‘Python and Ruby provide almost
the same power to the programmer.
Instead of emphasizing the what, I
want to emphasize the how part:
how we feel while programming’
matz
114. quem melhor que o
Valim pra dizer quando
usar e quando NÃO
usar rails?
115. quem melhor que a
Abril pra dizer quando
usar e quando NÃO
usar REST?
116. ‘Quando voce quebra o projeto
em vários, fica muito mais fácil
de ver que para uma parte do
projeto uma linguagem é mais
interessante’
alberto(oderski)souza
118. “since most developers aren't that good
(it's rumored that almost 50% are below
average) we need to direct the way they
do things”
COMPLAINT: you can't foolproof anything,
because fools are ingenious and will figure out
how to abuse
martin fowler
119. “developers are responsible professionals
and so should be given the freedom to do
whatever they need to do”
COMPLAINT: elitist attitude that can only be
properly used by the upper quartile of software
developers
martin fowler