6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr

O Delphi está morto?

Quem já viu o Delphi XE sabe: NÃO.

Na minha humilde opinião, morto está quem conhece ou usa uma linguagem só ou um ambiente só independente de qual seja, pois não consegue traduzir sua própria lógica e maneira de pensar para um produto ou artefato caso não saiba fazer na linguagem que ele conhece.

A melhor e mais rápida ferramenta de benchmark de DNS que eu já vi na minha vida era feita em assembly por um cara que fazia TUDO em assembly por hobby.

A linguagem que mais respeito, e é imortal sem dúvida é o C++. Mas eu não sou bom de C++, confesso.
A minha linguagem do coração, a qual eu mais manjo, é Delphi.

Se hoje eu estou pesquisando e aprendendo outros ambientes além do Delphi, como Java, C#, Python, Ruby, Prism e Lazarus não é porque esteja abandonando o Delphi, mas sim porque o Delphi acabou ficando caro demais pro meu bico, e todas essas outras linguagens que citei, inclusive o Prism, tem opções open-source.

Eu gosto de open-source não apenas por ter um custo menor mas por ter uma filosofia atraente. As vezes pode ser mais difícil atingir o mesmo objetivo, mas as recompensas e o aprendizado é maior porque ela te obriga a trabalhar com boas práticas desde o começo.

Não aceito críticas ao Delphi feitas por anônimos, a não ser que esses anônimos dêem a cara a tapa e mostrem um blog técnico que seja melhor que o meu, e pelo menos um artigo publicado em qualquer veículo impresso.

Se quem criticar o Delphi for um programadorzinho rad de VB6, VB.net ou C# ignoro, se for um programador Java amante de Design Patterns e POO ou um veterano do C++ que saiba fazer drivers de dispositivo em linux eu posso dar ouvidos, e respeito. Mas acho muito difícil um bom programador criticar qualquer linguagem a troco de nada. Quem critica uma linguagem, IDE ou ambiente é no mínimo um iniciantezinho arrogante.

Delphi é baseado em Pascal, que foi criado por Niklaus Wirth com fins didáticos. Isso não tem como morrer, uma linguagem de programação altamente produtiva com um apelo didático. Quem conhece o trabalho de Niklaus Wirth sabe do que estou falando.

Geralmente, preste bastante atenção, quem critica o Delphi nos blogs e fóruns por aí mal sabe escrever direito.

Nos vemos no Delphi Meeting!

Comentários

  1. Concordo plenamente com cada asserção sua, principalmente em se tratando do preço, penso que passou da hora da Embarcadero seguir a tendência e disponibilizar um Delphi minimalista complementando com uma webstore para comprarmos os componentes que precisamos, acho que uso menos de 10% dos componentes nativos do Delphi, o que uso mais mesmo são componentes de terceiros.

    ResponderExcluir
  2. Muito legal a idéia do webstore de componentes, seria realmente pioneiro na área de IDE's. Já imaginou? Uma Delphi App Store no estilo da App store da apple ou o android market? Você poderia instalar um componente novo com apenas um clique e atualiza-lo automaticamente caso se atualize o Delphi.

    ResponderExcluir
  3. Parabéns pelo excelente post!. Sou "delpheiro" de carteirinha.

    A ideia da WebStore é excelente .. Manda pro Andreano Lanusse.

    Abraços;

    ResponderExcluir
  4. Infelizmente acho que isso está bem longe de ocorrer se você levar em conta que a Embarcadero não vende nem o proprio Delphi online. Alias não vende nada online, pra comprar você tem que entrar em contato. E nada de parcelamento. Pagamento só a vista, em plena era do e-commerce. Isso sim é o fim da picada.

    ResponderExcluir
  5. Nem preciso falar nada, está corretíssimo.

    ResponderExcluir
  6. Muito bom hein. Trabalho com Delphi7 faz 4 anos e não me arrependo de usar. Agora procuro o Java pra aprender mesmo.

    falou

    ResponderExcluir
  7. Uso Delphi desde de sua primeira versão (4 disquetes na época...) Pro Delphi voltar a alavancar de vez seria necessário levar o desenvolvimento O.O. mais aplicado: Um bom framework ORM (pra programarmos O.O. desde as regras de negócio), melhorar o suporte de databinding de objetos, fazer um upgrade geral na VCL (a lá WPF), favorecer (disseminar) boas práticas (uso de MVC, MVP, teste unitário, injeção de dependência e outros) com exemplos reais. É possível vc mesmo criar seu framework ORM no Delphi? Sim, até temos alguns, mas ainda é trabalhoso fazer a apresentação desses dados na VCL. Você pode fazer seu framework de databinding, pode fazer, mas e o custo? Tempo é $. Então eu acredito que a Embarcadero deveria investir mais nessas estruturas e não apenas exaltar do RAD. Porque montar algo arrastando e clicando, qualquer um monta. Mas seguir boas práticas é muito difícil, falta apoio. Vá em qualquer evento Delphi e pergunte quem faz teste unitário pra ver.

    ResponderExcluir
  8. Bons programas se fazem com qualquer linguagem se você tiver conhecimento e tempo. Até com linguagens com nenhum recurso além do compilador.

    Gostaria de criar um outro tópico para apontarmos problemas e dificuldades REAIS no delphi, e o que cada um de nós faz para contorná-los, bem como o que gostaríamos de mudar/melhorar no Delphi.

    ResponderExcluir
  9. PessoAll, criei o post: O que você melhoraria no Delphi? http://blog.vitorrubio.com.br/2011/02/o-que-voce-melhoraria-no-delphi.html

    mimimimi's de Delphi tem bugs serão sumariamente trollados.

    ResponderExcluir
  10. Assembler, Basic, VB, Dbase, Clipper, C, Turbo C, Pascal, Turbo Pascal, Delphi, C#... .Net... Não importa a linguagem: Os fins justificam os meios! Usei todas e as uso se for necessário ou conviniente. Parabéns!

    ResponderExcluir
  11. Acredito que certas linguagens nascem com um melhor conceito(DNA) que outras e vale apena discutir. Mas é importante que cada um aponte, ilustre e dê exemplo do que está falando.
    Eu que não sou expert em nenhuma das linguagens quero é mais ouvir o discurso mais lógico e mais didático.
    Saúde a todos!!!

    ResponderExcluir
  12. Olá pessoal... Excelentes comentários, pois trabalho com entusiastas C#, JAVA e outras. Cada um com seu motivo para "esculhambar" o delphi. Só que o delphi esta mais vivo que nunca...
    Acompanhei a versão beta do Delphi XE2 e os recursos e as novidades são fantásticas, cito alguns: dataBinding, desenvolvimento OS e iOS com framwork FireMonkey, já tem um App Store da Embarcadero o AppWave, tem uma versão por 199,00 (acho que em dólares)... Passem no site da Embarcadero, pois estão ocorrendo diversas palestras no Brasi. Ah... além de tudo a Embarcadero esta com filial no Brasil. A Embarcadero sabe do potencial de seus clientes brasileiros e esta investindo por aqui...

    E os endusiastas C#, JAVA e outras? estão domesticados... rsrsrs

    Pois eu estou trabalhando para mostrar o potencial Delphi XE em minha empresa...

    Abraços e Vitor Rubio, parabéns pelo blog...

    ResponderExcluir
  13. Não sei si sou um programadorzinho ou um veterano como o amigo menciona, tenho 18 anos de programacao onde comecei com Clipper,Delphi(3,4,5,7,2010), PocketStudio(PalmOS),Java(Android) e C#(Mobile).
    Meus aplicativos comercial desktop são todos em Delphi, mas estou migrando para o c#, motivo:

    O motivo inicial foi quando instalei o DelphiPrisma que roda em cima do C#(Decepção total).
    Mas vejo o Delphi chegando a um certo final, devido a venda da empresa para outras e depois para outra e assim vai, com isso o foco que a empresa tinha com o desenvolvedor sumiu, quando comecei mesmo sem internet conseguíamos muitos livros, cursos, apostilas, hoje nas faculdades nao existe materia de desenvolvimento em base Delphi, somente JAVA ou C#, com isso não temos mais desenvolvedores, esta voltando aos primor-dez onde a empresa tem que fazer o seu profissional, nao consegue achar pronto.
    Na minha visao o Delphi ja perdeu e vem perdendo muito espaço por falta desses profissionais, vejo muito si falar em JAVA, esta na moda, mas tambem não vejo futuro como ferramenta de uma Soft-House devido a morosidade do desenvolvimento.
    A grande prova da falta de credibilidade que o Delphi vem tendo são as grandes empresas de componentes que tambem estao mingrando, uma prova e a DevExpress, procure tutorial componente para Delphi e C#.
    Creio que o Delphi parou no tempo com a explosao do Mobile, onde os desenvolvedores de Delphi foram obrigados a conhecer o C# para poder entrar no mercado mobile, o Prisma veio tarde demais tentar recuperar um espaço que perdeu e emulando o C# ate mesmo em seu codigo.

    Posso ate esta errado, as a experiencia em Clipper e PocketStudio, 2 ferramentas mortas por falta de investimento, não me deixa pensar diferente.
    Fabricio Almeida

    ResponderExcluir
    Respostas
    1. Então Fabricio. Delphi sempre será minha linguagem preferida. E a escolhida em uma série de situações onde necessita-se de uma linguagem compilada.
      No entanto, no meu trabalho hoje estou migrando para C#. Não é só pela falta de profissionais ou material de Delphi, pois o material disponível é rico. Mas o material sobre C# é ainda mais vasto, programadores são facilmente encontrados, toda a API da Microsoft muito bem documentada, e a linguagem é fácil. O Garbage collector ajuda muito.
      Programadores de linguagens derivadas de C, como C++ e Java torciam o nariz para Delphi, mas respeitam o C#, e hoje podemos ver uma série de ferramentas portadas de outras linguagens para C#, como é o caso do nHibernate (Hibernate do Java) e o IKVM (API do Java reescrita em C#) que te permite recompilar qualquer biblioteca para Java em C# com poucas alterações de código.
      O problema não é credibilidade, mas velocidade de desenvolvimento e mercado. O Delphi conseguiu ter generics quando todas as outras linguagens já tem mais do que isso: lambda expressions por exemplo.
      Discordo do que você disse a respeito do Prism. O prism não Emula o C# nem roda em cima do C#. Assim como qualquer linguagem compliante com o .Net, o prism é uma linguagem independente, mas que usa todo o .net framework e é traduzido para uma linguagem intermediária (IL) antes de ser de fato compilado.
      O mesmo processo acontece com todas as linguagens do ambiente .net: VB, C#, F#, IronPython, IronRuby: todas elas são compiladas primeiro para IL e depois para seu formato binário, e rodam dentro do .net framework (gerenciado). No entanto o prism tem o visual studio como seu IDE. O que não é ruim. Você se acostuma. Existe no prism uma ferramenta de tradução de C# para Oxigene e vice-versa, mas qualquer linguagem compliante com o .net poderia ser facilmente traduzida para qualquer outra.
      Entretanto entre usar Prism, que é um pascal distorcido com muitas impurezas, prefiro o C#, que é uma linguagem moderna e (quase) original.
      Lógico que linguagem, para o programador, é como religião, e um dia eu já fui muito fundamentalista a favor do Delphi.
      Mas os tempos mudaram, os paradigmas, processadores e demandas também. Hoje em dia uma linguagem compilada continua sendo mais rápida que uma interpretada ou compilada em runtime, mas não é aí que está o gargalo. E sua velocidade de desenvolvimento aumenta com uma ferramenta mais moderna.
      Com relação ao que você disse referente ao Clipper e ao PocketStudio. O Clipper eu cheguei a usar, e francamente ele "morreu" porque chegou a hora de ele morrer. Ele já não estava mais na era dele. Entretanto ele continua vivo com muitos softwares de frente de caixa, pdv e farmácia feitos em clipper e hoje evoluindo e sendo compilados através do XHarbour. Interessante isso, eles não morrem nem são substituídos ou re-desenvolvidos.
      Já o pocketstudio morreu por causa da morte do PalmOs em si. Mas para mobile, se o desenvolvimento não for web, então a melhor ferramenta sempre será a que usa a linguagem e apis nativas, como o Java para Android, o Objective-C para IOS ou o C# para windows 8.
      O que não pode acontecer é o programador morrer junto com a ferramenta.

      Excluir
  14. Este comentário foi removido pelo autor.

    ResponderExcluir
  15. Sabe o que eu estou vendo? Estou vendo tecnologias novas surgirem, como node.JS (linguagem, compilador/interpretador e webserver todo baseado em javascript), ferramentas que traduzem ou interpretam uma linguagem em cima de outra, como scripts feitos em javascript que mudam a sintaxe do javascript em si para rodar scripts feitos em outras linguagens (como coffescript) e bancos de dados noSql. E sabe quem conhece e sabe trabalhar com essas ferramentas? Moleques de 16 a 22 anos. Nós programadores de 30 anos somos tiozões, e os de 40, do clipper e cobol, vovôs.
    Só que essa molecada não tem muita experiência em análise, modelagem de dados, negócio, etc... Isso torna bem difícil encontrar bons profissionais hoje em dia.
    A chave para continuar "em forma" no ramo da programação é se renovar. Tire um certificado em uma nova linguagem, comece um curso de outra, e faça um projetinho simples em outra, para conhece-la.

    ResponderExcluir
  16. O meu primeiro contato com Delphi foi em Outubro de 1995 ! Era chamado de VBKiller pela Borland ! Acho que foi aí que começou o problema todo. Era uma cultura de quem era melhor, e a Borland sempre instigando essa problemática.

    O tempo foi passando eu me certifiquei pela Borland, virei instrutor e via cada vez mais um descaso. Nas apresentações da própria Borland era vergonhoso, principalmente nos workshops de JBuilder, onde metiam o pau no Delphi (sim a Borland Latin America !).

    Pra mim mataram o Delphi quando passaram para Embarcadero. Eu prefiro nem comentar muito, me dá angústia só de pensar.

    Mas eu nunca desenvolvi em uma linguagem tão agradável. É simplesmente espetacular.

    A verdade é que uma linguagem não define nada, mas sim a estrutura que a recebe. Na teoria a linguagem só traduz, cada um escolhe a sua, simples. Mas o modismo, o descaso, o mercado, a ganância humana é capaz de acabar com qualquer coisa boa ou ruim.

    É uma pena que hoje a ferramenta/linguagem esteja em mãos erradas. Só podemos lamentar.

    ResponderExcluir
    Respostas
    1. Carlos, sinceramente, eu não lamento. É o ciclo natural das coisas.
      Essa aparente "queda" do Delphi me fez expandir os horizontes com relação a outras linguagens e me fez ver que há sim outras linguagens "espetaculares". Além disso duas coisas boas podem acontecer a partir dessa estagnação:
      1) A Embarcadero pode a qualquer momento sentir o impacto do mercado e resolver evoluir a ferramenta e mudar de estratégia de marketing, soltando no mercado um Delphi muito melhorado e com um suporte forte. Se isso não ocorrer ...
      2) Agora ferramentas open-source como Lazarus terão sua chance de crescer, e um maior apoio da comunidade de ex-delpheiros.

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Uso de memória no SQL Server

Busca de CEP com o Lazarus - Parte 1 - UrlEncode

Botão Add This para adicionar seu post em qualquer rede