Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
hugooliveirad opened this issue Jan 13, 2015 · 21 comments
Open

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

hugooliveirad opened this issue Jan 13, 2015 · 21 comments

Comments

@hugooliveirad
Copy link
Collaborator

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
Copy link
Collaborator Author

Escreverei esse até domingo, 18/01/2015

@hugooliveirad hugooliveirad changed the title [Discussões] Seu código não é uma obra-prima [Discussão] Seu código não é uma obra-prima Jan 13, 2015
@felipefialho
Copy link
Member

Aguardando ;)

@raphaelfabeni
Copy link

Esse eu to mais que no aguardo!

@hugooliveirad
Copy link
Collaborator Author

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

@felipefialho
Copy link
Member

Disserte sobre sua conclusão, heehehe

@hugooliveirad
Copy link
Collaborator Author

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:

  • Como escrever código legível e dentro de padrões para facilitar a compreensão
  • Como dar e receber feedbacks sobre código, sem gerar atrito
  • Pensando em objetivos de negócios e atingindo-os através de código

Entre outros…

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

@felipefialho
Copy link
Member

Legal! Vai mudar a abordagem então?

Gostei dos tópicos.

@kurybr
Copy link

kurybr commented Jan 26, 2015

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

@felipefialho
Copy link
Member

Pode colocar em andamento @jorgekury?c

@kurybr
Copy link

kurybr commented Jan 26, 2015

Manda bala ae

@kurybr
Copy link

kurybr commented Jan 26, 2015

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
Copy link
Member

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

@cyberglot
Copy link

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
Copy link
Contributor

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
Copy link

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

@bernardodiasc
Copy link
Contributor

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

@cyberglot
Copy link

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 ❤️ 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
Copy link
Contributor

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
Copy link

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

@bernardodiasc
Copy link
Contributor

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
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants