frontendbr / poste-mais

Sugestões de temas e assuntos para postagens.
257 stars 18 forks source link

[Discussão] Seu código não é uma obra-prima #7

Open hugooliveirad opened 9 years ago

hugooliveirad commented 9 years ago

Muitas vezes vejo pessoas tratando códigos como obras-primas, esculturas ou artesanato. Porém, acredito que devemos tratar código como um meio para chegar na obra-prima: o software que será de fato usado.

Claro que existem algumas excessões, como códigos que foram feitos para ser obras-primas (http://www.amazon.com/Discipline-Programming-Edsger-W-Dijkstra/dp/013215871X e http://anguscroll.com/hemingway/ são duas referências que fazem isso), mas na maioria das vezes trabalhamos para produzir software através de código.

Entender que código é apenas uma ferramenta para um final mais importante é essencial. (ainda preciso dissertar sobre isso melhor).


Pauta publicada

hugooliveirad commented 9 years ago

Escreverei esse até domingo, 18/01/2015

felipefialho commented 9 years ago

Aguardando ;)

raphaelfabeni commented 9 years ago

Esse eu to mais que no aguardo!

hugooliveirad commented 9 years ago

Cheguei à conclusão que essa discussão é pouco útil.

felipefialho commented 9 years ago

Disserte sobre sua conclusão, heehehe

hugooliveirad commented 9 years ago

Acho mais útil falar sobre as vantagens de pensar no produto final do que falar para as pessoas não pensarem no código da forma como pensam. Melhorar sem atacar.

Essa pauta seria, na minha visão, dividida em algumas outras:

Entre outros…

O que acham? Tópicos mais válidos, não?

felipefialho commented 9 years ago

Legal! Vai mudar a abordagem então?

Gostei dos tópicos.

kurybr commented 9 years ago

Gostei do tópico acho que escrevo sobre ! Coloquei na minha listinha rsrs

felipefialho commented 9 years ago

Pode colocar em andamento @jorgekury?c

kurybr commented 9 years ago

Manda bala ae

kurybr commented 9 years ago

Pronto, escrevi aqui também, escrevi sobre o tema inicial das pessoas valorizarem o código mais do que o necessário e tal ! Chegando em casa vou lançando acho que lanço o do Front-End hoje e esse do código amanhã

pra dar tempo de divulgar :P

felipefialho commented 9 years ago

Maravilha, vou colocar "Concluido" quando você divulgar, hehe

cyberglot commented 9 years ago

Sempre achei que o código era algo essencialmente work in progress. Mas, entretanto, o que se está lidando aqui é com egos, o código pouco importa.

bernardodiasc commented 9 years ago

Não sei se é relacionado com o tópico...

Gosto de pensar que o conteúdo é o rei. O código é só a cadeira do rei. Lógico que queremos uma cadeira boa, bonita e confortável. Mas se o rei não gostar, nada disso importa.

Sei que parece meio bobo, mas é mais ou menos assim que destaco a importancia de entender a essencia do HTML quando ensino pessoas com zero de experiencia em webdev. Isso pois algumas pessoas começam ansiosas para fazer CSS ou JS e PHP, etc. Mas não se deve passar pra segunda lição antes de entender bem a primeira. HTML é uma mera linguagem de marcação onde se acomoda nosso rei, o conteúdo. 100% do que fazemos aqui na internet é entregar informação.

cyberglot commented 9 years ago

@bernardodiasc eu discordo, porque ai não importaria o código que vc escreve, desde que entregue o conteúdo corretamente.

bernardodiasc commented 9 years ago

Essa é a ideia. Voce pode fazer o código em milhares de formas diferentes.

cyberglot commented 9 years ago

Mas isso não faz sentido, porque vc precisa de abstração para garantir a correctness. Depois de um momento fazendo código de qualquer jeito vc é incapaz de dizer se está correto ou não. Mesmo que esteja entregando o conteúdo corretamente, aparentemente.

Por exemplo:


function getLabels (labels) {
   var acc = ''
   for(var i = 0; labels2.length > i; i++){
     acc = `${acc} ${labels2[i]}` 
   }
   return acc
}

getLabels(['name', 'address', 'cellphone'])
// => 'name address cellphone'

Mas se você por algum motivo você não tem mais o address:

getLabels(['name', , 'cellphone'])
// => 'name undefined cellphone'

Ou seja, um for não serve para isso, vc precisa de uma abstração melhor como:

var concat = (acc, item) => `${acc} ${item}`
var getLabels = (labels)  => labels.reduce(concat, '')

getLabels(['name', 'address', 'cellphone'])
// => 'name address cellphone'

getLabels(['name', , 'cellphone'])
// => 'name cellphone'

I :heart: reduce.

(Claro que vc pode fazer qualquer gambiarra ali no for para dar o resultado correto, porém reduce é muito mais elegante e fácil de ler.)

bernardodiasc commented 9 years ago

Hmm, acho que o que to falando é outro assunto mesmo. :)

Qualidade do código é essencial, concordo, mas não fundamental quanto o conteúdo. Se eu te entregar um conteúdo numa estrutura diferente disso, pra ser impresso tambem de outra maneira, seu código não vai servir, não importa quão bem escrito seja.

cyberglot commented 9 years ago

Mas aí é falta de funcionalidade. Vc não pode esperar que uma frigideira solte míssil. :)

bernardodiasc commented 9 years ago

Talvez devesse abrir um tópico só sobre esse assunto: http://karenmcgrane.com/2014/10/15/content-in-a-zombie-apocalypse/

O video é bastante interessante. Fala sobre conteúdo e plataformas.

lukaswilkeer commented 9 years ago

Resumindo: Se você passa mais tempo refatorando do que criando, tem algo de errado. A não ser que seu objetivo seja refatorar. kk