Flex: Bonito por fora e feio por dentro?
Os últimos posts que eu fiz me despertaram uma dúvida. Será que os leitores deste blog se importam com código bem escrito ou basta que funcione? Ou melhor, será que as pessoas que trabalham com Flex no Brasil se importam com código bem escrito? Sim, pois tenho visto coisas muito ruins em blogs na comunidade Brasileira de Flex gerarem comentários elogiosos.
Estaria o Flex atraindo muito mais pessoas que se preocupam com a “beleza” da Interface de Usuário do que com a “beleza” do código?
Por que vemos pouquíssimas ou quase nenhuma pessoa que gosta do Flex discutir Orientação a Objetos e Design Patterns?
Será que isto faz parte da curva de adoção de tecnologias novas, onde primeiro você só quer fazer e depois você quer fazer da melhor forma?
Eu adoraria que as pessoas que visitam este blog se manifestassem quanto ao assunto. Caso contrário, ou eu estarei tratando de algo totalmente impertinente ou a comunidade Brasileira pouco se importa mesmo com a qualidade do código das aplicações Flex, tanto que ignora este post, tanto que não se manifesta sobre algumas aberrações que sabemos que existe na blogosfera.
UPDATE
(desculpem, mas é muito texto para um comentário)
Fico feliz que este post tenha evoluído para uma discussão que acredito ser pertinente. Vejo que a maioria concorda que a qualidade do conteúdo relacionado ao Flex em Português (não só Brasil, para ser justo com nosso amigo João Fernandes) tem alguns problemas.
Eu preferiria generalizar para não ser mal interpretado ao “dar nome aos bois” como disse o Ricardo Brundi, mas estarei muito próximo da hipocrisia se eu não disser que não sou admirador do código do Igor Costa. Concordo com o Marcelo que o Igor, principalmente devido a sua persistência, presta algum serviço à comunidade Flex, porém, justamente pela inegável exposição que ele tem, talvez ele devesse ser mais criterioso com elação à qualidade do conteúdo que publica.
Não me importa o passado, mas sim o futuro. E o que eu acho que está em jogo é o futuro das Rich Internet Applications e, sobretudo, o futuro do Flex. A Microsoft possui uma comunidade de desenvolvedores muito maior que a Adobe e conforme estes desenvolvedores surgem com boas soluções para o Silverlight (por fora e por dentro) muitos podem ser levados a pensar que se trata de uma tecnologia superior - se tiver que ser que seja exclusivamente pelos aspectos técnicos, mas não pela má utilização das concorrentes. Em outras palavras, nós desenvolvedores temos sim um papel muito importante no sucesso ou fracasso de uma tecnologia, portanto, devemos mostrar o modo correto de se fazer se queremos colaborar com o seu sucesso.
O Eder Roger e o Daniel Passos bem disseram que nem sempre é possível fazer o melhor. Mas isto não nos impede de agir com responsabilidade. Sempre que eu posto alguma coisa que não considero “bonita por dentro” eu faço ressalvas com relação ao código. E estou sempre aberto a debater alternativas caso as pessoas venham a me criticar. Torço para que em tempos de internet prevaleça a seleção natural de idéias de modo que apenas as melhores sobrevivam.
Eu prefiro uma crítica construtiva a um elogio vazio, pois a primeira me instiga a melhorar, ao passo que o segundo apenas ilude o meu ego. Quero deixar claro que a crítica que acabei de fazer ao Igor tem o objetivo de ser construtiva e ouso dizer que a mesma pode servir para a comunidade Flex de Língua Portuguesa de um modo geral.
Por fim, quero dizer que este blog pretende ser justo e democrático para que as pessoas digam o que pensam, desde que dentro dos princípios básicos da ética e dos bons costumes. Afinal de contas ninguém aqui é o dono da verdade.
- Por Beck Novaes em 21/June/2007
No Translations
43 comentários para “Flex: Bonito por fora e feio por dentro?”
Beck, eu faço questão de comentar pois tenho-me mantido em silêncio para não parecer um daqueles que está sempre a criticar, mas já que alguém teve coragem de puxar o assunto aqui vai:
Eu pessoalmente sou um pouco exigente com a qualidade de código e gosto de ver a separação das coisas e preocupa-me ver que as pessoas vão começando a aprender a desenvolver numa nova plataforma com maus exemplos de como fazer as coisas.
Será que eles nas outras linguagens fazem o mesmo tipo de código?
Eu provavelmente para pequenos exemplos não aplique todas as best practices mas daí a passar os limites do aceitável…
Beck,
Este assunto deve fazer parte do dia dia de qualquer BOM PROGRAMADOR. Eu penso que não precisa ser o CARA em melhores práticas, mas devemos ser justos. Um bom código não só define o grau de expêriencia do programador, como também deve definir o dia dia da pessoa em organização.
Para quem prega Flex é essencial deixar transparecer que não é só jogar componentes na tela, e criar aplicações baseada em macarronadas. Infelismente já vemos isso espalhado em alguns blogs. Mas também confesso que não é tarde para pregar o que é certo e mostrar que o caminho não é baseado em macarronada, até porque massa demais “engorda” e é gorduroso para o dia dia.
Foi muito bom você tocar nesse assunto Beck, eu sempre to lendo o blog da DClick porque é ainda uma das poucas referências de qualidade na área em língua portuguesa.
Eu também concordo que não basta só fazer funcionar, faz muita diferênça um código bem estruturado principalmente quando se trabalha em equipe. Não programo tão bem mxml mais não é por isso que eu deixo o código de qualquer jeito.
Meu negócio é actionscript, vejo muita coisa por aqui nos blogs e listas brasileiras que da vontade de chorar. Tem código funcina mais não tem utilidade alguma p/ outra aplicação. Logo, além de ser mal redigido, é pouco aproveitavel. Então porque programar OOP?
Tem gente que mal usa o AS2 de verdade e já fala que programa OOP no AS3… bom não vou extender mais.
[]’s
Beck, infelizmente tem se tornado comum ver posts e tutorias com conteúdo de baixa qualidade vindos de fontes ‘confiáveis’ de conhecimento. É estranho que por um lado você aprende a fazer uma coisa que deixa o seu sistema bonito, mas agride as boas práticas de desenvolvimento e acaba fazendo com que quem lê acabe seguindo a mesma técnica. Não sou santo nessa área também, muitas vezes escrevemos na pressa e não nos importamos com a qualidade do que está sendo escrito. Mas uma coisa é certa, quem faz errado em php/asp/etc vai fazer errado em Flex/AS3 também.
Beck , isso e mesmo um assunto muito importante e que particularmente eu nao me digo um programador de boas praticas!
As vezes como ressaltou SaintBr sobre tempo e fazermos as pressas isso ocorre muito!
e muitos dos meus codigos nao sao reutilizaveis!
cade a OOP!! ja era!
intaum estar programando dessa maneira se perde mais tempo e nao se segue as boas praticas!
Mas em relaçao em Flex muitas pessoas se sentem na dificuldade de se estar evoluindo por falta mesmo de material brasuca de qualidade(Nao que nao se ache otimos materiais)! Muiitos tem dificuldades no ingles! que geralmente posts e blogs americanos sao muito bons!
E eu me sinto muito perdido no Flex ainda digo em geral :¬(
Mas devagar e sempre estaremos aprendendo e com a ajuda de pessoas que estao disposta a ajudar vamos melhorar!
Blz Beck,
essa questão de programar “feio” não é exclusividade de quem trabalha com Flex, a galera geralmente tem um jeito de programar e segue, não importa se é HTML ou Java…não acho que seja parte da curva de adoção, porque a parte do “depois eu faço melhor” nunca chega, acho que o pessoal esquece que tão importante quanto fazer funcionar é fazer funcionar bem.
No caso do Flex, eu vejo que o pessoal tem focado mais em como se consegue fazer uma aplicação bonita (visualmente falando) e focado pouco no código, todo mundo só sabe que é fácil. Acho que a comunidade Brasileira precisa dar mais foco na qualidade das aplicações em geral.
Uma coisa que eu acho bacana em linguagens que usam tags é que o código é extremamente auto-explicativo, ñ sei como tem gente que consegue “estragar”, deve ser de propósito :D.
[]!
O Beck foi polido o bastante para não mencionar, mas é importante dar nome aos bois. Os exemplos e o codigo gerado por Igor Costa - http://www.igorcosta.com (que dispensa apresentaçoes dada sua já conhecida incompetencia tecnica e carater duvidoso) são exemplos péssimos. Me surpreende como ele possa ser (e se gabar) instrutor de Flex numa conhecida escola de Sao Paulo. Seria a ausência completa de profissionais qualificados no mercado e interessados em lecionar a razao por este centro de treinamento optar por alguem que dá exemplos tão ruins em seu blog pessoal? O que será do mercado se dependermos destes profissionais? Tenho medo…
Beck, acredito que muitos por falta de estudo ou até experiência não se preocupam com a qualidade de código. Isso não acontece só com o Flex definitivamente.
É aceitável quando novos programadores não compartilhem das melhores práticas, porém o que ocorre hoje na comunidade Flex de língua portuguesa me preocupa. São poucas as referencias confiáveis como já mencionaram. Temos um exemplo o blog do Igor C., onde este contribui para a comunidade, mas também pode estar envenenando os iniciantes. Outro dia fui ver o código de uma de suas aplicações e fiquei impressionado. Sei que este é um grande conhecido na comunidade e influencia muitos, mas também não é o unico responsável.
O que pode ser feito para mudar este cenário?
Sinceramente acho que a maioria das pessoas ( principalmente as de flex ) estão preocupadas com o que será visto na tela com toda essa magia visual que o flex lhe ( RIA ) lhe proporciona e não com o código.
Confesso que no dia a dia nos vemos na obrigação de fazer coisas que nos mesmo nos envergonhamos depois, mas são por força das circunstâncias. Quando se esta aprendendo geralmente queremos fazer as coisas funcionarem mas um bom programador tem sempre que pensar como aquilo poderia ser melhorando ou porque esta sendo feito daquele jeito.
Quanto ao que temos visto pelos blogs acho muito ruim e importante ser ressaltado. Uma pessoa que escreve / expõe códigos para o mundo tem que ter a consciência de que outras pessoas estão aprendendo com aquilo e daquela forma. Às vezes propositalmente não efetuamos as melhores soluções apenas para exemplificar outra mas isso tem que estar bem claro. Temos que lembrar que de certa forma somos formadores de opiniões e esse tipo de coisa não pode acontecer.
Para estes existe um certificado muito bom (e gratuíto). Download aqui: http://paginas.terra.com.br/informatica/webtas/
Cá entre nós, eu realmente não acredito que você ligue para a quantidade de comentários em seus posts, mas sim que você fique indignado ao ver elogios em posts em que você considera de baixa qualidade.
E embora eu acredite que uma das principais características do Flex que está atraindo pessoas é sua capacidade de criar interfaces mais atrativas, igualmente não vemos muitos exemplos visualmente atrativos nos blogs por aí.
Assim, ao meu ver, você ver comentários elogiosos em códigos ou interfaces que você não considera de boa qualidade em outros blogs é entendível pelo fato de você ser um programador mais experiente, e o que as pessoas que estão aprendendo Flex procuram são exemplos simples, de coisas que elas podem compreender, fazer funcionar e possivelmente reproduzir, fazendo suas “pequenas alterações” (leia-se: copy e paste).
E se estas pessoas que estão tecendo elogios são iniciantes, é mais preocupante ver que elas estão aprendendo com exemplos de baixa qualidade! Assim, quando forem construir software na vida real, é muito provável que construam software de baixa qualidade! É o código ruim, que outrora serviu de exemplo, propagando por aí. (http://typicalprogrammer.com/programming/learning-by-example-javacript-luhn/)
Assim, ao escrever códigos de exemplos que podem ser vistos e utilizados por iniciantes (e o Daniel Passos disse bem isso), devemos ter o cuidado de escrever um bom exemplo. Não só o iniciante conseguirá fazer aquilo que deseja, mas irá aprender de um bom modo - e possivelmente irá reproduzir esse bom modo em um futuro.
Aristóteles já dizia: “Excelência, então, não é um modo de agir, mas um hábito.”
Da mesma forma que muitos iniciantes elogiam códigos mal escritos cabe a quem julga estes tecer críticas nos blogs destes autores. O problema não é o código ser simple mas ser simples e mal implementado como muitos citaram. O que eu acho é que algumas pessoas precisam entender que Web Design e Web Development são coisas distintas e raras são as pessoas que dominam ambas. Embora seja impossível saber como o código foi escrito em uma aplicação Flex sem fonte publicado não é difícil ver inúmeras aplicações que utilização o estilo visual padrão do Flex (cinza) que demonstra pouco ou nenhuma preocupação com o Design. O ideal seria deixar o MXML/CSS para os Designer e ActionScript para os programadores. 
Richard mas o problema é que este autor tem o costume de deletar no blog dele comentários que ele nao gosta do mesmo jeito que ele faz na lista de discussao que ele comanda.
Olá…
Bacana o Beck ter comentado sobre o “lado de dentro” do flex
relamente é algo que todos devem se preocupar…
Só que também não podemos generalizar, a solução Flex, só veio a tona pela beleza
na apresentação, e pela “facilidade” de programar..
Logo, vemos nas comunidades, (yahoo,google e outras) programadores de vários tipos,
existem aqueles que programaram a vida inteira em Delphi, e decidiu usar
Flex pq a tendencia do mercado é ser Web, Aqueles que nem conceitos tem, o garoto de
entre 10 a 16 anos, que acha bacana e começa a desenvolver, o programador estruturado
de PHP, que ve no Flex a solução para as Telas….
Esses infelizmente, não procuram um padrão para desenvolver, Nem se quer sabem o que
é um DesingPattern, Cairngorm? que Bixo é esse?!
Por isso, não podemos generalizar a comunidade, existe sim programadores que são
competentes, e estes, quando ver um código postado de forma “errada”, deve sim
mostrar uma solução aprimorada, aplicando os conceitos necessários…
Quanto ao Igor, nossa… heheh prefiro ficar null…. tem coisa bacana que ele faz,
promove muito bem o Flex, só que tem seus detalhes um pouco que complicados…
Espero que ele acompanhe essa discussão, e perceba o que ele é para a comunidade.
…
E que o Futuro seja Flex…
=)
Abraço! Beck
\o/
Tem muita gente que está sedenta de Flex mas ainda não é um programador experiente.
Trabalhava com o flash fazendo leitura de xml em vez de usar o remoting ou programava em php usando código in-line sem nunca ter criado uma classe antes.
Imagine que ele acabou de uma palestra sobre Flex e esta entusiasmado…
ele começa a pesquisar e acha agenda criada no blog do igor:
http://www.igorcosta.com/blog/?p=338
Ele baixa o código faz algumas alteraçõezinhas e transforma isso num catálogo de produtos e dá pulos de alegria afinal funcionou…
Cabe a quem tem mais conhecimento e está preocupado com os padrões de desenvolvimento trazer essas pessoas para o “caminho da luz”.
O que está faltando na minha opniao é um tutorial de um aplicativo simples como essa agenda com login e senha para acessar outras áreas, utilizando php/mysql mesmo, pois fazer algo utilizando o data services e java complicaria mais ainda a cabeca de quem está começando.
Se fosse feita com o código dentro dos padroes, explicando detalhadamente o porque disso aqui, com um fluxograma de funcionamento ficaria mais fácil de enterder as vantagens de se programar assim.
Sei que orientacao a objeto nao se aprende com um estalar de dedos, mas uma série de artigos desse tipo (tem de ser for dummies senão o pessoal continua com o POG) onde se pode por em prática o que está sendo discutido aqui criando um mini aplicativo c/ comeco meio e fim pode fazer toda a diferença.
Deletar do blog, infelismente pode, apesar de saber que está fazendo um mal danado tanto para quem lê como para ele mesmo, pois ele não deve nem refletir sobre o que está escrito e, provavelmente, de acordo com o citado blog, nem tentar melhorar.
A semelhança entre um exemplo simples e ruim e um exemplo complexo e ruim está na boa ou na má implementação. Existem pequenos códigos que resolvem grandes problemas, mas isso se forem implementados de maneira correta e, parece obvio, de maneira pensada. Escrever código é a coisa mais facil do mundo. basta saber a sintaxe e mãos no teclado… Mas escrever código bom, é necessário pensar, arquitetar, resolver, criar, etc. E muitas vezes não precisamos de computador para fazer isso. Só do cerebro. E talvez de um papel.
Tenho a seguinte sugestão a dar. Ampliar a blogosfera brasileira sobre flex, isto é, cada um de nós poderia tentar produzir um conteúdo a mais. Assim, o proprio, ou se recicla ou vai pro lixo.
Abraços.
Infelismente isto é verdade, mas aos poucos as coisas vão se acertando, como vc mesmo disse, primeiro o pessoal se preocupa em fazer funcionar, depois fazer direito, mas devagar as coisas se alinham.
Abraço
[...] depois de escrever um post bem comentado sobre a qualidade dos Blogs sobre Flex em Português, tomei conhecimento de que existe um [...]
O que mais tem sao “POGramadores”, q naum dao importancia em fazer um bem feito. Best practices neles….
Falta de tempo eh uma desculpa, num ter tempo de fazer um codigo bom eh arranjar problemas para o futuro.
Qm quiser aprender um modo de como planejar os seus projetos para ficar com tempo de fazer o codigo certo leiam esse livro:
Caindo na Real
http://gettingreal.37signals.com/GR_por.php
Concordo com os comentários acima.
O interessante e que tenho notado é que tem umas “peças” nas comunidades (Flex e CF principalmente) que se colocam como o “the best” nessa ou naquela linguagem, mas na hora de passar o conhecimento, passa um código de péssima qualidade, como se aquele que está querendo aprender tivesse que estar abaixo dele em níveis de codificação, ficando ele como o “maioral”.
O lance é na medida do possível postar exemplos seguindo algum padrão e como o Beck disse, fazer ressalvas qdo necessário.
Que tal se toda vez que víssemos um exemplo de código ruim utilizássemos este selo?
Não existe código feio nem código bonito, existem sim várias maneiras de programas e a diferença está muitas vezes na maneira de identar esse código, cada um identa e organiza de sua maneira. Igor Costa é um grande programador e sobretudo um ser humano que gosta de passar o que sabe a quem quer aprender (quem tem vontade de aprender). Esses comentários são injustos….
Sera que essa metafora se aplica a algo tao abstrato quanto software ? so faltava perguntarem se eh doce ou salgado , ou mesmo se o Flex eh amarelo ,,, fala serio galera,,, O que existe eh apenas Darwinismo , a sobrevivencia do mais adptado,,, feio e bonito em programacao eh coisa para quem perde tempo discutindo Windows/Linux. Ah ja ia esquecendo ,,, segue minha sugestao: Converssem sobre TradeOff, ,,, tradeoff eh a chave para se achar um ponto de equilibrio onde se perde aqui e se ganha ali …
Paulo, aqui cada um é livre para dar sua opinião. Também por isto sou obrigado a discordar de você.
Programar é lidar com a complexidade. Você nunca sabe como um software irá evoluir, portanto, é preciso organizar o seu código (suas idéias) de tal forma que minimize os problemas que podem ser encontrados ao longo do caminho. É neste sentido que digo que existe sim código “bonito”. É claro que existem mil e uma maneiras de se resolver o mesmo problema, mas quase sempre é possível classificar uma solução como sendo melhor que a outra.
Dizer que as coisas se resolvem com identação é o mesmo que dizer que basta eu pegar um texto mal escrito e reformatá-lo para resolver o problema.
Sistemas são sistemas. Não importa a plataforma tecnológica, sempre há código a ser mantido e todo código tem um custo. Existem sistemas que não valem o esforço de serem mantidos e existem sistemas cuja manutenção passa a ser a principal atividade de uma ou mais pessoas. A partir do ponto em que se admite que manter um software é necessário a maneira como ele é implementado internamento passa a ser de extremo interesse de todos, desenvolvedores e usuários.
Sim, Sérgio, o Tradeoff está presente em programação o tempo todo. Por isto aqueles que recebem críticas sobre os seus códigos sempre tem a oportunidade de defender o seu ponto de vista. Ele pode ter feito daquele jeito porque considerou alguma coisa que os críticos não enxergaram. Mas é preciso que ele expresse o seu ponto de vista, pois ficar calado ou se defender com falácias Ad Misericordiam não resolve nada.
Agora, eu discordo de você que discutir este tipo de coisa em programação é perda de tempo. Pegue alguns dos melhores livros sobre desenvolvimento de software e você verá que o assunto de que estamos tratando recebe muita atenção.
Na cara !
Nao gosto de “fazer a caveira” de ninguem e nao acho que aqui e lugar pra isso.
No entanto tenho que discordar de um comentario de nosso amigo “Paulo” :
“Igor Costa é um grande programador e sobretudo um ser humano que gosta de passar ue sabe a quem quer aprender (quem tem vontade de aprender)”
A empresa a qual trabalho pagou uma certificacao Flex aos profissionais da mesma, em uma otima iniciativa para aprimorar nossos conhecimentos. Quem foi o profissional desigando para tal?
Nao sei muito sobre os codigos do mesmo (nao vi os exemplos do site, e com os comentarios deste post nao verei mesmo), mas, posso dizer algumas coisas:
1 - Os “efeitozinhos” que ele passou sao interessantes, mas uma pesquisa no google e 15 min me trariam mais conhecimento
2 - Qualquer item ou topico mais avancado eram rebatidos com as mesmas respostas: “Procure na Internet”, “Nao to aqui pra isso, estou mostrando o caminho”, “O curso de voces e o basico.” (No final a equipe participante do curso concluiu que talvez ele nao sabia mesmo…)
3 - Exemplos e exercicios da aula, principalmente ActionScript, que nao funcionavam,(a lista de erros do FlexBuilder ate dava rolagem, acho que ele nao viu),ele simplesmente apagava tudo e desistia do mesmo. Indagado sobre, ele fingia que nao ouviu.
4 - Um EGO que poucas vezes vi igual.
5 - Falta de respeito com os participantes do curso.
6- Acho que ele teve experiencias em lecionar para ensino fundamental, e levou isso consigo.
7 - Dizer que nao gosta de Silverlight por que e da MIcrosoft e nao faz streaming, eu nem sei o que dizer…
Observacoes essas compartilhadas pelo pessoal que participou do grupo. Nao foi cisma ou implicancia minha. E os comentarios aqui so me esclareceram mais as coisas.
Bom, fora outras coisas de carater e assuntos pertinentes a niveis de empresa os quais nao cabem mencao…
Para evitar confusoes, o comentario acima nao foi do Eder Roger citado no artigo.
Prezado Jonatan,
Racismo é crime e é algo intolerável no nosso blog!
Obrigado,
Beck Novaes
Caros,
Mais uma vez reforço: o que estamos discutindo é a qualidade do código em Flex. Ofensas pessoais não serão toleradas. Além disto, não é louvável a atitude de algumas pessoas que nunca tiveram coragem de se manifestar e agora aproveitam a situação para passar dos limites, tal como ficar cadastrando mensagens no exemplo da Agenda no blog do Igor.
As pessoas que agem desta forma não apenas deturpam os objetivos deste post como também perdem a credibilidade. Se vocês estão mesmo preocupados com a comunidade procurem pensar em atitudes que agregam valor. Se isto fugir do controle eu serei obrigado a remover o post e o que era para ser algo produtivo não passará de uma perda de tempo. Ou seja, vocês que provavelmente tem interesse em ver as coisas mudarem estarão jogando esta tentativa por água abaixo.
Na cara!
Pessoal,
acredito que o post do Beck tomou rumos obscuros. Muito cuidado ao dizerem que o cõdigo de X ou Y é ruim, pois o próximo pode ser você.
Disponibilizar código fonte aberto a comunidade e de graça já é uma grande AJUDA. Quem fala mau, devia no mínimo, fazer dez vezes melhor.
Eu ví o código do Igor e não achei nada de errado. Será q design patterns ou frameworks seriam realmente necessários na agenda? eu duvido muito….
Agora quem falou mau, que tome vergonha e escreva algo que considere certo, eu quero ver o código!!!!
Este post continua no blog da pessoa sitada.
Este post mostra a verdadeira face de pessoas que se auto intitulam Evangelistas Flex, mas que na verdade são gambiarreiros de maior nivel.
Vejam: http://www.igorcosta.com/blog/?p=339#comments
NO POG…
FEIO OU BONITO - PROGRAMAR EH UMA ARTE NO CAOS,,,
Oi Beck e todos,
Nao vou polemizar muito sobre a estoria de Codigo Bonito ou feio , ate porque sou de uma geracao que programa de computador tinha em media 100.000 linhas de codigo e quse nenhum click no mouse. Mas acho legal sempre instigar pessoas inteligentes , e claro , tabem acho legal ver gente trocando ideias com respeito e maturidade. Claro que ousadia eh fundamental para o proximo passo , e por isso deixo aki uma critica para a maioria dos programadores de ambientes visuais: Acho que vcs discutem muito quem arrasta um componente melhor que o outro , ou quem chama uma library menos vezes em um codigo. Sera que existe programacao sem algoritmo ? Ae, nao vao comecar a jogacao de pedra so porque chamei vcs de clicadores de componentes e decoradores de chamadas a bibliotecas. Agora serio: No fundo , programar eh uma arte , eh realmente uma arte e vcs nao deveriam ser tao criticos sobre aspectros de embelezamento. Existe uma arte implicita , extremamente caotica , na programacao. Se lembrarmos que apenas MONET teve seus quadros expostos no Louvre quando em vida , que todos os pintores so tem suas obras de arte reconhecidas , muitos anos depois sua morte , e se lembrarmos que na Musica , lembrarmos de Da Vinci , etc , vamos temrinar observando que quando falamos de Arte , falar de Beleza eh superfulo. Alguem aki ja estudou ou leu algo sobre umas particulas chamadas Quarks ? Elas tem propriedades como Sabor , Charm , etc,,, sao metaforas , que na realidade nao existem,,, Assim , falar em codigo bonito eh tao impreciso ( e arriscado ) quanto falar: Esse Van Gohg nao tem futuro , … abs
Olá Sergio,
Eu concordo com você que programar é uma arte. Talvez a palavra “bonito” não seja a mais indicada para descrever um código bem escrito. Eu usei esta palavra no título do post pois o Flex, infelizmente, é visto por muitos apenas como uma tecnologia que deixa as coisas mais “bonitinhas”. O que eu queria deixar claro é que existem sim muitas técnicas de Engenharia de Software que podem ser aplicadas em um aplicativo desenvolvido em Flex.
Ao contrário do Flex - que mal saiu o 2.0.1 e já está para sair o 3.0. – ou qualquer outra tecnologia similar, estes conceitos de Engenharia de Sofware não são tão perecíveis. Este post tinha como objetivo, dentre outras coisas, despertar na comunidade Flex a responsabilidade em também divulgar estes conceitos algo que, obviamente, servirá por muito mais tempo do que saber usar alguma funcionalidade específica do Flex.
Espero que em algum momento isto seja retomado pois creio que todos nós temos muito a aprender.
Beck ,,, Deal Done…
abs,
Muito estão se falando de código limpo, bonito ou coisas do tipo.
O Sr. Sergio acima diz que isso não se torna tão necessário. Eu acho que isso é sim muito necessário pois um software tem de ser legivel para todos os programadores, por que não necessáriamnte a pessoal que criou vai dar a manutenção daqui a não sei quanto tempo.
Códigos pensandos e bem escritos não são o terror da area de manutenção. Já os codigos que simplesmente funcionam quando passam a não funcionar mais quem da a manutenção…
Gosto de códio limpo. Porque quem será julgado na hora da manutençaõ será quem fez o codigo e não quem estará demorando o triplo do tempo refatorando para ficar com um minimo de estetica para começar a trabalhar …
Quem ainda estiver acompanhando a discussão no blog do Igor deve ter notado que algumas pessoas criticaram a minha implementação do DataGridFilter devido a um conjunto de “ifs”. Os meus argumentos para a minha implementação encontram-se no blog para quem quiser ver.
De qualquer forma, eu publiquei um exemplo que elimina qualquer lógica condicional tirando proveito do Polimorfismo. Vejam como “RelacionalFilterRendererPolymorphic.mxml” não usa “ifs” como o “RelacionalFilterRenderer.mxml”.
Até que achei a solução interessante e gostaria de saber o que as pessoas acham. Além dissso, será que seria pertinente publicar um post sobre esta técnica que permite eliminar a lógica condicional usando o polimorfismo? Já pensou programar sem “ifs”?
Beck tirando os comentários de mal gosto que fizeram sobre mim, mais tratando há respeito do teu último comentário acima.
Essa lógica condicional para quem não entende, só pode ser tirado o máximo de proveito do polimorfismo se você definir uma interface que seja implementada pela mesma. Uma ótima solução ao meu ver. Ao invés de usar if’s aninhados pode-se usar operador ternário ou mesmo um switch, tanto ou não, ainda precisa de algum comportamento lógico para que faça sentido, há não ser que você possa criar uma classe específica que implemente tua classe de interface que entenda esse comportamento como é visto no IViewCursor, para tal.
Mais resumindo sua solução encontrada é complementar. Mais lembrando quem não entende muito bem disso, só pode-se tirar proveito ao máximo se você definir uma classe para a interface da aplicação.
O que mais me incomoda neste momento é pensar que talvez, depois deste episódio alarmante, as pessoas evitem fazer críticas.
Na Internet nós temos uma oportunidade jamais vista antes de confrontar as mais variadas idéias e encontrarmos as melhores soluções. O que eu produzo pode ser aceito, corrigido e modificado pelo que os outros produzem. Eu sou apenas um pedaço do todo e o conhecimento verdadeiro está na blogosfera.
Gosto de citar o exemplo do FlexCoders onde houve há algum tempo atrás um excelente debate sobre o Cairngorm. Eu posso garantir que aprendi muito neste debate embora tudo tenha começado com uma crítica.
Por isto, continuo achando que críticas e debates educados podem ser estimulados. Espero ser capaz de receber bem as críticas que me fazem, pois eu sei que é muito difícil ouvir aquilo que não queremos, mas também sei que se formos fortes o suficiente para superar o impacto inicial nós teremos uma grande oportunidade para aprender e crescer.
E se você acha que este ultimo parágrafo é um sermão sem sentido e desnecessário, bem, eu aceito a sua crítica.
Assim como o Alex eu estou desativando os comentários deste post devido ao rumo e à proporção que ele assumiu.
Como o próprio Igor disse em seu blog, nos encontramos na Remix e acreditem: o Igor do mundo real não parece o mesmo Igor do mundo virtual. Isto não significa que ele não tenha errado ou que eu estou voltando atrás na crítica técnica que eu fiz.
Acho que agora o Igor tem um longo caminho para mostrar este lado “mais coerente” que muitas pessoas desconhecem. Só depende dele.
[...] algum tempo atrás eu fiz um post no blog da DClick que trazia uma critica aos exemplos de programas desenvolvidos por uma determinada pessoa conhecida na comunidade d…. Foi de longe o post mais comentado no Blog da DClick e eu foi sincero quando disse que o objetivo [...]
Beck, eu faço questão de comentar pois tenho-me mantido em silêncio para não parecer um daqueles que está sempre a criticar, mas já que alguém teve coragem de puxar o assunto aqui vai:
Eu pessoalmente sou um pouco exigente com a qualidade de código e gosto de ver a separação das coisas e preocupa-me ver que as pessoas vão começando a aprender a desenvolver numa nova plataforma com maus exemplos de como fazer as coisas.
Será que eles nas outras linguagens fazem o mesmo tipo de código?
Eu provavelmente para pequenos exemplos não aplique todas as best practices mas daí a passar os limites do aceitável…
Beck,
Este assunto deve fazer parte do dia dia de qualquer BOM PROGRAMADOR. Eu penso que não precisa ser o CARA em melhores práticas, mas devemos ser justos. Um bom código não só define o grau de expêriencia do programador, como também deve definir o dia dia da pessoa em organização.
Para quem prega Flex é essencial deixar transparecer que não é só jogar componentes na tela, e criar aplicações baseada em macarronadas. Infelismente já vemos isso espalhado em alguns blogs. Mas também confesso que não é tarde para pregar o que é certo e mostrar que o caminho não é baseado em macarronada, até porque massa demais “engorda” e é gorduroso para o dia dia.
Foi muito bom você tocar nesse assunto Beck, eu sempre to lendo o blog da DClick porque é ainda uma das poucas referências de qualidade na área em língua portuguesa.
Eu também concordo que não basta só fazer funcionar, faz muita diferênça um código bem estruturado principalmente quando se trabalha em equipe. Não programo tão bem mxml mais não é por isso que eu deixo o código de qualquer jeito.
Meu negócio é actionscript, vejo muita coisa por aqui nos blogs e listas brasileiras que da vontade de chorar. Tem código funcina mais não tem utilidade alguma p/ outra aplicação. Logo, além de ser mal redigido, é pouco aproveitavel. Então porque programar OOP?
Tem gente que mal usa o AS2 de verdade e já fala que programa OOP no AS3… bom não vou extender mais.
[]’s
Beck, infelizmente tem se tornado comum ver posts e tutorias com conteúdo de baixa qualidade vindos de fontes ‘confiáveis’ de conhecimento. É estranho que por um lado você aprende a fazer uma coisa que deixa o seu sistema bonito, mas agride as boas práticas de desenvolvimento e acaba fazendo com que quem lê acabe seguindo a mesma técnica. Não sou santo nessa área também, muitas vezes escrevemos na pressa e não nos importamos com a qualidade do que está sendo escrito. Mas uma coisa é certa, quem faz errado em php/asp/etc vai fazer errado em Flex/AS3 também.
Beck , isso e mesmo um assunto muito importante e que particularmente eu nao me digo um programador de boas praticas!
As vezes como ressaltou SaintBr sobre tempo e fazermos as pressas isso ocorre muito!
e muitos dos meus codigos nao sao reutilizaveis!
cade a OOP!! ja era!
intaum estar programando dessa maneira se perde mais tempo e nao se segue as boas praticas!
Mas em relaçao em Flex muitas pessoas se sentem na dificuldade de se estar evoluindo por falta mesmo de material brasuca de qualidade(Nao que nao se ache otimos materiais)! Muiitos tem dificuldades no ingles! que geralmente posts e blogs americanos sao muito bons!
E eu me sinto muito perdido no Flex ainda digo em geral :¬(
Mas devagar e sempre estaremos aprendendo e com a ajuda de pessoas que estao disposta a ajudar vamos melhorar!
Blz Beck,
essa questão de programar “feio” não é exclusividade de quem trabalha com Flex, a galera geralmente tem um jeito de programar e segue, não importa se é HTML ou Java…não acho que seja parte da curva de adoção, porque a parte do “depois eu faço melhor” nunca chega, acho que o pessoal esquece que tão importante quanto fazer funcionar é fazer funcionar bem.
No caso do Flex, eu vejo que o pessoal tem focado mais em como se consegue fazer uma aplicação bonita (visualmente falando) e focado pouco no código, todo mundo só sabe que é fácil. Acho que a comunidade Brasileira precisa dar mais foco na qualidade das aplicações em geral.
Uma coisa que eu acho bacana em linguagens que usam tags é que o código é extremamente auto-explicativo, ñ sei como tem gente que consegue “estragar”, deve ser de propósito :D.
[]!
O Beck foi polido o bastante para não mencionar, mas é importante dar nome aos bois. Os exemplos e o codigo gerado por Igor Costa - http://www.igorcosta.com (que dispensa apresentaçoes dada sua já conhecida incompetencia tecnica e carater duvidoso) são exemplos péssimos. Me surpreende como ele possa ser (e se gabar) instrutor de Flex numa conhecida escola de Sao Paulo. Seria a ausência completa de profissionais qualificados no mercado e interessados em lecionar a razao por este centro de treinamento optar por alguem que dá exemplos tão ruins em seu blog pessoal? O que será do mercado se dependermos destes profissionais? Tenho medo…
Beck, acredito que muitos por falta de estudo ou até experiência não se preocupam com a qualidade de código. Isso não acontece só com o Flex definitivamente.
É aceitável quando novos programadores não compartilhem das melhores práticas, porém o que ocorre hoje na comunidade Flex de língua portuguesa me preocupa. São poucas as referencias confiáveis como já mencionaram. Temos um exemplo o blog do Igor C., onde este contribui para a comunidade, mas também pode estar envenenando os iniciantes. Outro dia fui ver o código de uma de suas aplicações e fiquei impressionado. Sei que este é um grande conhecido na comunidade e influencia muitos, mas também não é o unico responsável.
O que pode ser feito para mudar este cenário?
Sinceramente acho que a maioria das pessoas ( principalmente as de flex ) estão preocupadas com o que será visto na tela com toda essa magia visual que o flex lhe ( RIA ) lhe proporciona e não com o código.
Confesso que no dia a dia nos vemos na obrigação de fazer coisas que nos mesmo nos envergonhamos depois, mas são por força das circunstâncias. Quando se esta aprendendo geralmente queremos fazer as coisas funcionarem mas um bom programador tem sempre que pensar como aquilo poderia ser melhorando ou porque esta sendo feito daquele jeito.
Quanto ao que temos visto pelos blogs acho muito ruim e importante ser ressaltado. Uma pessoa que escreve / expõe códigos para o mundo tem que ter a consciência de que outras pessoas estão aprendendo com aquilo e daquela forma. Às vezes propositalmente não efetuamos as melhores soluções apenas para exemplificar outra mas isso tem que estar bem claro. Temos que lembrar que de certa forma somos formadores de opiniões e esse tipo de coisa não pode acontecer.
Para estes existe um certificado muito bom (e gratuíto). Download aqui: http://paginas.terra.com.br/informatica/webtas/
Cá entre nós, eu realmente não acredito que você ligue para a quantidade de comentários em seus posts, mas sim que você fique indignado ao ver elogios em posts em que você considera de baixa qualidade.
E embora eu acredite que uma das principais características do Flex que está atraindo pessoas é sua capacidade de criar interfaces mais atrativas, igualmente não vemos muitos exemplos visualmente atrativos nos blogs por aí.
Assim, ao meu ver, você ver comentários elogiosos em códigos ou interfaces que você não considera de boa qualidade em outros blogs é entendível pelo fato de você ser um programador mais experiente, e o que as pessoas que estão aprendendo Flex procuram são exemplos simples, de coisas que elas podem compreender, fazer funcionar e possivelmente reproduzir, fazendo suas “pequenas alterações” (leia-se: copy e paste).
E se estas pessoas que estão tecendo elogios são iniciantes, é mais preocupante ver que elas estão aprendendo com exemplos de baixa qualidade! Assim, quando forem construir software na vida real, é muito provável que construam software de baixa qualidade! É o código ruim, que outrora serviu de exemplo, propagando por aí. (http://typicalprogrammer.com/programming/learning-by-example-javacript-luhn/)
Assim, ao escrever códigos de exemplos que podem ser vistos e utilizados por iniciantes (e o Daniel Passos disse bem isso), devemos ter o cuidado de escrever um bom exemplo. Não só o iniciante conseguirá fazer aquilo que deseja, mas irá aprender de um bom modo - e possivelmente irá reproduzir esse bom modo em um futuro.
Aristóteles já dizia: “Excelência, então, não é um modo de agir, mas um hábito.”
Da mesma forma que muitos iniciantes elogiam códigos mal escritos cabe a quem julga estes tecer críticas nos blogs destes autores. O problema não é o código ser simple mas ser simples e mal implementado como muitos citaram. O que eu acho é que algumas pessoas precisam entender que Web Design e Web Development são coisas distintas e raras são as pessoas que dominam ambas. Embora seja impossível saber como o código foi escrito em uma aplicação Flex sem fonte publicado não é difícil ver inúmeras aplicações que utilização o estilo visual padrão do Flex (cinza) que demonstra pouco ou nenhuma preocupação com o Design. O ideal seria deixar o MXML/CSS para os Designer e ActionScript para os programadores. ![]()
Richard mas o problema é que este autor tem o costume de deletar no blog dele comentários que ele nao gosta do mesmo jeito que ele faz na lista de discussao que ele comanda.
Olá…
Bacana o Beck ter comentado sobre o “lado de dentro” do flex
relamente é algo que todos devem se preocupar…
Só que também não podemos generalizar, a solução Flex, só veio a tona pela beleza
na apresentação, e pela “facilidade” de programar..
Logo, vemos nas comunidades, (yahoo,google e outras) programadores de vários tipos,
existem aqueles que programaram a vida inteira em Delphi, e decidiu usar
Flex pq a tendencia do mercado é ser Web, Aqueles que nem conceitos tem, o garoto de
entre 10 a 16 anos, que acha bacana e começa a desenvolver, o programador estruturado
de PHP, que ve no Flex a solução para as Telas….
Esses infelizmente, não procuram um padrão para desenvolver, Nem se quer sabem o que
é um DesingPattern, Cairngorm? que Bixo é esse?!
Por isso, não podemos generalizar a comunidade, existe sim programadores que são
competentes, e estes, quando ver um código postado de forma “errada”, deve sim
mostrar uma solução aprimorada, aplicando os conceitos necessários…
Quanto ao Igor, nossa… heheh prefiro ficar null…. tem coisa bacana que ele faz,
promove muito bem o Flex, só que tem seus detalhes um pouco que complicados…
Espero que ele acompanhe essa discussão, e perceba o que ele é para a comunidade.
…
E que o Futuro seja Flex…
=)
Abraço! Beck
\o/
Tem muita gente que está sedenta de Flex mas ainda não é um programador experiente.
Trabalhava com o flash fazendo leitura de xml em vez de usar o remoting ou programava em php usando código in-line sem nunca ter criado uma classe antes.
Imagine que ele acabou de uma palestra sobre Flex e esta entusiasmado…
ele começa a pesquisar e acha agenda criada no blog do igor:
http://www.igorcosta.com/blog/?p=338
Ele baixa o código faz algumas alteraçõezinhas e transforma isso num catálogo de produtos e dá pulos de alegria afinal funcionou…
Cabe a quem tem mais conhecimento e está preocupado com os padrões de desenvolvimento trazer essas pessoas para o “caminho da luz”.
O que está faltando na minha opniao é um tutorial de um aplicativo simples como essa agenda com login e senha para acessar outras áreas, utilizando php/mysql mesmo, pois fazer algo utilizando o data services e java complicaria mais ainda a cabeca de quem está começando.
Se fosse feita com o código dentro dos padroes, explicando detalhadamente o porque disso aqui, com um fluxograma de funcionamento ficaria mais fácil de enterder as vantagens de se programar assim.
Sei que orientacao a objeto nao se aprende com um estalar de dedos, mas uma série de artigos desse tipo (tem de ser for dummies senão o pessoal continua com o POG) onde se pode por em prática o que está sendo discutido aqui criando um mini aplicativo c/ comeco meio e fim pode fazer toda a diferença.
Deletar do blog, infelismente pode, apesar de saber que está fazendo um mal danado tanto para quem lê como para ele mesmo, pois ele não deve nem refletir sobre o que está escrito e, provavelmente, de acordo com o citado blog, nem tentar melhorar.
A semelhança entre um exemplo simples e ruim e um exemplo complexo e ruim está na boa ou na má implementação. Existem pequenos códigos que resolvem grandes problemas, mas isso se forem implementados de maneira correta e, parece obvio, de maneira pensada. Escrever código é a coisa mais facil do mundo. basta saber a sintaxe e mãos no teclado… Mas escrever código bom, é necessário pensar, arquitetar, resolver, criar, etc. E muitas vezes não precisamos de computador para fazer isso. Só do cerebro. E talvez de um papel.
Tenho a seguinte sugestão a dar. Ampliar a blogosfera brasileira sobre flex, isto é, cada um de nós poderia tentar produzir um conteúdo a mais. Assim, o proprio, ou se recicla ou vai pro lixo.
Abraços.
Infelismente isto é verdade, mas aos poucos as coisas vão se acertando, como vc mesmo disse, primeiro o pessoal se preocupa em fazer funcionar, depois fazer direito, mas devagar as coisas se alinham.
Abraço
[...] depois de escrever um post bem comentado sobre a qualidade dos Blogs sobre Flex em Português, tomei conhecimento de que existe um [...]
O que mais tem sao “POGramadores”, q naum dao importancia em fazer um bem feito. Best practices neles….
Falta de tempo eh uma desculpa, num ter tempo de fazer um codigo bom eh arranjar problemas para o futuro.
Qm quiser aprender um modo de como planejar os seus projetos para ficar com tempo de fazer o codigo certo leiam esse livro:
Caindo na Real
http://gettingreal.37signals.com/GR_por.php
Concordo com os comentários acima.
O interessante e que tenho notado é que tem umas “peças” nas comunidades (Flex e CF principalmente) que se colocam como o “the best” nessa ou naquela linguagem, mas na hora de passar o conhecimento, passa um código de péssima qualidade, como se aquele que está querendo aprender tivesse que estar abaixo dele em níveis de codificação, ficando ele como o “maioral”.
O lance é na medida do possível postar exemplos seguindo algum padrão e como o Beck disse, fazer ressalvas qdo necessário.
Que tal se toda vez que víssemos um exemplo de código ruim utilizássemos este selo?
Não existe código feio nem código bonito, existem sim várias maneiras de programas e a diferença está muitas vezes na maneira de identar esse código, cada um identa e organiza de sua maneira. Igor Costa é um grande programador e sobretudo um ser humano que gosta de passar o que sabe a quem quer aprender (quem tem vontade de aprender). Esses comentários são injustos….
Sera que essa metafora se aplica a algo tao abstrato quanto software ? so faltava perguntarem se eh doce ou salgado , ou mesmo se o Flex eh amarelo ,,, fala serio galera,,, O que existe eh apenas Darwinismo , a sobrevivencia do mais adptado,,, feio e bonito em programacao eh coisa para quem perde tempo discutindo Windows/Linux. Ah ja ia esquecendo ,,, segue minha sugestao: Converssem sobre TradeOff, ,,, tradeoff eh a chave para se achar um ponto de equilibrio onde se perde aqui e se ganha ali …
Paulo, aqui cada um é livre para dar sua opinião. Também por isto sou obrigado a discordar de você.
Programar é lidar com a complexidade. Você nunca sabe como um software irá evoluir, portanto, é preciso organizar o seu código (suas idéias) de tal forma que minimize os problemas que podem ser encontrados ao longo do caminho. É neste sentido que digo que existe sim código “bonito”. É claro que existem mil e uma maneiras de se resolver o mesmo problema, mas quase sempre é possível classificar uma solução como sendo melhor que a outra.
Dizer que as coisas se resolvem com identação é o mesmo que dizer que basta eu pegar um texto mal escrito e reformatá-lo para resolver o problema.
Sistemas são sistemas. Não importa a plataforma tecnológica, sempre há código a ser mantido e todo código tem um custo. Existem sistemas que não valem o esforço de serem mantidos e existem sistemas cuja manutenção passa a ser a principal atividade de uma ou mais pessoas. A partir do ponto em que se admite que manter um software é necessário a maneira como ele é implementado internamento passa a ser de extremo interesse de todos, desenvolvedores e usuários.
Sim, Sérgio, o Tradeoff está presente em programação o tempo todo. Por isto aqueles que recebem críticas sobre os seus códigos sempre tem a oportunidade de defender o seu ponto de vista. Ele pode ter feito daquele jeito porque considerou alguma coisa que os críticos não enxergaram. Mas é preciso que ele expresse o seu ponto de vista, pois ficar calado ou se defender com falácias Ad Misericordiam não resolve nada.
Agora, eu discordo de você que discutir este tipo de coisa em programação é perda de tempo. Pegue alguns dos melhores livros sobre desenvolvimento de software e você verá que o assunto de que estamos tratando recebe muita atenção.
Na cara !
Nao gosto de “fazer a caveira” de ninguem e nao acho que aqui e lugar pra isso.
No entanto tenho que discordar de um comentario de nosso amigo “Paulo” :
“Igor Costa é um grande programador e sobretudo um ser humano que gosta de passar ue sabe a quem quer aprender (quem tem vontade de aprender)”
A empresa a qual trabalho pagou uma certificacao Flex aos profissionais da mesma, em uma otima iniciativa para aprimorar nossos conhecimentos. Quem foi o profissional desigando para tal?
Nao sei muito sobre os codigos do mesmo (nao vi os exemplos do site, e com os comentarios deste post nao verei mesmo), mas, posso dizer algumas coisas:
1 - Os “efeitozinhos” que ele passou sao interessantes, mas uma pesquisa no google e 15 min me trariam mais conhecimento
2 - Qualquer item ou topico mais avancado eram rebatidos com as mesmas respostas: “Procure na Internet”, “Nao to aqui pra isso, estou mostrando o caminho”, “O curso de voces e o basico.” (No final a equipe participante do curso concluiu que talvez ele nao sabia mesmo…)
3 - Exemplos e exercicios da aula, principalmente ActionScript, que nao funcionavam,(a lista de erros do FlexBuilder ate dava rolagem, acho que ele nao viu),ele simplesmente apagava tudo e desistia do mesmo. Indagado sobre, ele fingia que nao ouviu.
4 - Um EGO que poucas vezes vi igual.
5 - Falta de respeito com os participantes do curso.
6- Acho que ele teve experiencias em lecionar para ensino fundamental, e levou isso consigo.
7 - Dizer que nao gosta de Silverlight por que e da MIcrosoft e nao faz streaming, eu nem sei o que dizer…
Observacoes essas compartilhadas pelo pessoal que participou do grupo. Nao foi cisma ou implicancia minha. E os comentarios aqui so me esclareceram mais as coisas.
Bom, fora outras coisas de carater e assuntos pertinentes a niveis de empresa os quais nao cabem mencao…
Para evitar confusoes, o comentario acima nao foi do Eder Roger citado no artigo.
Prezado Jonatan,
Racismo é crime e é algo intolerável no nosso blog!
Obrigado,
Beck Novaes
Caros,
Mais uma vez reforço: o que estamos discutindo é a qualidade do código em Flex. Ofensas pessoais não serão toleradas. Além disto, não é louvável a atitude de algumas pessoas que nunca tiveram coragem de se manifestar e agora aproveitam a situação para passar dos limites, tal como ficar cadastrando mensagens no exemplo da Agenda no blog do Igor.
As pessoas que agem desta forma não apenas deturpam os objetivos deste post como também perdem a credibilidade. Se vocês estão mesmo preocupados com a comunidade procurem pensar em atitudes que agregam valor. Se isto fugir do controle eu serei obrigado a remover o post e o que era para ser algo produtivo não passará de uma perda de tempo. Ou seja, vocês que provavelmente tem interesse em ver as coisas mudarem estarão jogando esta tentativa por água abaixo.
Na cara!
Pessoal,
acredito que o post do Beck tomou rumos obscuros. Muito cuidado ao dizerem que o cõdigo de X ou Y é ruim, pois o próximo pode ser você.
Disponibilizar código fonte aberto a comunidade e de graça já é uma grande AJUDA. Quem fala mau, devia no mínimo, fazer dez vezes melhor.
Eu ví o código do Igor e não achei nada de errado. Será q design patterns ou frameworks seriam realmente necessários na agenda? eu duvido muito….
Agora quem falou mau, que tome vergonha e escreva algo que considere certo, eu quero ver o código!!!!
Este post continua no blog da pessoa sitada.
Este post mostra a verdadeira face de pessoas que se auto intitulam Evangelistas Flex, mas que na verdade são gambiarreiros de maior nivel.
Vejam: http://www.igorcosta.com/blog/?p=339#comments
NO POG…
FEIO OU BONITO - PROGRAMAR EH UMA ARTE NO CAOS,,,
Oi Beck e todos,
Nao vou polemizar muito sobre a estoria de Codigo Bonito ou feio , ate porque sou de uma geracao que programa de computador tinha em media 100.000 linhas de codigo e quse nenhum click no mouse. Mas acho legal sempre instigar pessoas inteligentes , e claro , tabem acho legal ver gente trocando ideias com respeito e maturidade. Claro que ousadia eh fundamental para o proximo passo , e por isso deixo aki uma critica para a maioria dos programadores de ambientes visuais: Acho que vcs discutem muito quem arrasta um componente melhor que o outro , ou quem chama uma library menos vezes em um codigo. Sera que existe programacao sem algoritmo ? Ae, nao vao comecar a jogacao de pedra so porque chamei vcs de clicadores de componentes e decoradores de chamadas a bibliotecas. Agora serio: No fundo , programar eh uma arte , eh realmente uma arte e vcs nao deveriam ser tao criticos sobre aspectros de embelezamento. Existe uma arte implicita , extremamente caotica , na programacao. Se lembrarmos que apenas MONET teve seus quadros expostos no Louvre quando em vida , que todos os pintores so tem suas obras de arte reconhecidas , muitos anos depois sua morte , e se lembrarmos que na Musica , lembrarmos de Da Vinci , etc , vamos temrinar observando que quando falamos de Arte , falar de Beleza eh superfulo. Alguem aki ja estudou ou leu algo sobre umas particulas chamadas Quarks ? Elas tem propriedades como Sabor , Charm , etc,,, sao metaforas , que na realidade nao existem,,, Assim , falar em codigo bonito eh tao impreciso ( e arriscado ) quanto falar: Esse Van Gohg nao tem futuro , … abs
Olá Sergio,
Eu concordo com você que programar é uma arte. Talvez a palavra “bonito” não seja a mais indicada para descrever um código bem escrito. Eu usei esta palavra no título do post pois o Flex, infelizmente, é visto por muitos apenas como uma tecnologia que deixa as coisas mais “bonitinhas”. O que eu queria deixar claro é que existem sim muitas técnicas de Engenharia de Software que podem ser aplicadas em um aplicativo desenvolvido em Flex.
Ao contrário do Flex - que mal saiu o 2.0.1 e já está para sair o 3.0. – ou qualquer outra tecnologia similar, estes conceitos de Engenharia de Sofware não são tão perecíveis. Este post tinha como objetivo, dentre outras coisas, despertar na comunidade Flex a responsabilidade em também divulgar estes conceitos algo que, obviamente, servirá por muito mais tempo do que saber usar alguma funcionalidade específica do Flex.
Espero que em algum momento isto seja retomado pois creio que todos nós temos muito a aprender.
Beck ,,, Deal Done…
abs,
Muito estão se falando de código limpo, bonito ou coisas do tipo.
O Sr. Sergio acima diz que isso não se torna tão necessário. Eu acho que isso é sim muito necessário pois um software tem de ser legivel para todos os programadores, por que não necessáriamnte a pessoal que criou vai dar a manutenção daqui a não sei quanto tempo.
Códigos pensandos e bem escritos não são o terror da area de manutenção. Já os codigos que simplesmente funcionam quando passam a não funcionar mais quem da a manutenção…
Gosto de códio limpo. Porque quem será julgado na hora da manutençaõ será quem fez o codigo e não quem estará demorando o triplo do tempo refatorando para ficar com um minimo de estetica para começar a trabalhar …
Quem ainda estiver acompanhando a discussão no blog do Igor deve ter notado que algumas pessoas criticaram a minha implementação do DataGridFilter devido a um conjunto de “ifs”. Os meus argumentos para a minha implementação encontram-se no blog para quem quiser ver.
De qualquer forma, eu publiquei um exemplo que elimina qualquer lógica condicional tirando proveito do Polimorfismo. Vejam como “RelacionalFilterRendererPolymorphic.mxml” não usa “ifs” como o “RelacionalFilterRenderer.mxml”.
Até que achei a solução interessante e gostaria de saber o que as pessoas acham. Além dissso, será que seria pertinente publicar um post sobre esta técnica que permite eliminar a lógica condicional usando o polimorfismo? Já pensou programar sem “ifs”?
Beck tirando os comentários de mal gosto que fizeram sobre mim, mais tratando há respeito do teu último comentário acima.
Essa lógica condicional para quem não entende, só pode ser tirado o máximo de proveito do polimorfismo se você definir uma interface que seja implementada pela mesma. Uma ótima solução ao meu ver. Ao invés de usar if’s aninhados pode-se usar operador ternário ou mesmo um switch, tanto ou não, ainda precisa de algum comportamento lógico para que faça sentido, há não ser que você possa criar uma classe específica que implemente tua classe de interface que entenda esse comportamento como é visto no IViewCursor, para tal.
Mais resumindo sua solução encontrada é complementar. Mais lembrando quem não entende muito bem disso, só pode-se tirar proveito ao máximo se você definir uma classe para a interface da aplicação.
O que mais me incomoda neste momento é pensar que talvez, depois deste episódio alarmante, as pessoas evitem fazer críticas.
Na Internet nós temos uma oportunidade jamais vista antes de confrontar as mais variadas idéias e encontrarmos as melhores soluções. O que eu produzo pode ser aceito, corrigido e modificado pelo que os outros produzem. Eu sou apenas um pedaço do todo e o conhecimento verdadeiro está na blogosfera.
Gosto de citar o exemplo do FlexCoders onde houve há algum tempo atrás um excelente debate sobre o Cairngorm. Eu posso garantir que aprendi muito neste debate embora tudo tenha começado com uma crítica.
Por isto, continuo achando que críticas e debates educados podem ser estimulados. Espero ser capaz de receber bem as críticas que me fazem, pois eu sei que é muito difícil ouvir aquilo que não queremos, mas também sei que se formos fortes o suficiente para superar o impacto inicial nós teremos uma grande oportunidade para aprender e crescer.
E se você acha que este ultimo parágrafo é um sermão sem sentido e desnecessário, bem, eu aceito a sua crítica.
Assim como o Alex eu estou desativando os comentários deste post devido ao rumo e à proporção que ele assumiu.
Como o próprio Igor disse em seu blog, nos encontramos na Remix e acreditem: o Igor do mundo real não parece o mesmo Igor do mundo virtual. Isto não significa que ele não tenha errado ou que eu estou voltando atrás na crítica técnica que eu fiz.
Acho que agora o Igor tem um longo caminho para mostrar este lado “mais coerente” que muitas pessoas desconhecem. Só depende dele.
[...] algum tempo atrás eu fiz um post no blog da DClick que trazia uma critica aos exemplos de programas desenvolvidos por uma determinada pessoa conhecida na comunidade d…. Foi de longe o post mais comentado no Blog da DClick e eu foi sincero quando disse que o objetivo [...]

