poste-mais icon indicating copy to clipboard operation
poste-mais copied to clipboard

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

Open hugooliveirad opened this issue 10 years ago • 21 comments

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 avatar Jan 13 '15 17:01 hugooliveirad

Escreverei esse até domingo, 18/01/2015

hugooliveirad avatar Jan 13 '15 17:01 hugooliveirad

Aguardando ;)

felipefialho avatar Jan 13 '15 18:01 felipefialho

Esse eu to mais que no aguardo!

raphaelfabeni avatar Jan 13 '15 20:01 raphaelfabeni

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

hugooliveirad avatar Jan 19 '15 19:01 hugooliveirad

Disserte sobre sua conclusão, heehehe

felipefialho avatar Jan 19 '15 22:01 felipefialho

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?

hugooliveirad avatar Jan 20 '15 02:01 hugooliveirad

Legal! Vai mudar a abordagem então?

Gostei dos tópicos.

felipefialho avatar Jan 20 '15 12:01 felipefialho

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

kurybr avatar Jan 26 '15 18:01 kurybr

Pode colocar em andamento @jorgekury?c

felipefialho avatar Jan 26 '15 18:01 felipefialho

Manda bala ae

kurybr avatar Jan 26 '15 18:01 kurybr

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

kurybr avatar Jan 26 '15 19:01 kurybr

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

felipefialho avatar Jan 27 '15 00:01 felipefialho

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.

cyberglot avatar Jan 30 '15 10:01 cyberglot

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.

bernardodiasc avatar Jan 30 '15 14:01 bernardodiasc

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

cyberglot avatar Jan 30 '15 14:01 cyberglot

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

bernardodiasc avatar Jan 30 '15 14:01 bernardodiasc

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.)

cyberglot avatar Jan 30 '15 15:01 cyberglot

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.

bernardodiasc avatar Jan 30 '15 15:01 bernardodiasc

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

cyberglot avatar Jan 30 '15 15:01 cyberglot

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.

bernardodiasc avatar Feb 02 '15 11:02 bernardodiasc

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

lukaswilkeer avatar Feb 02 '15 12:02 lukaswilkeer