Os 10 mandamentos do arquiteto de software

Acredito que seja do interesse de todos:


Os 10 mandamentos do arquiteto de software

http://www.enterpriseguys.com/Artigos.aspx?ColunistaID=29&id=40

Vale a pena ler todo o artigo. Alguns tópicos fazem lembrar bastante alguns participantes aqui do fórum. :slight_smile:

[]'s
Marco Campêlo

O artigo é itneressante, mas alguns pontos “estranhos”:

1 - O cara é programador “SUN certified J2EE Programmer”? Não achei essa certificação aqui.

2 - Até que isso:

Não é estranho para quem tem tantas certificações Microsoft. FUD deve cair na prova.

3 -

Claro, e como mencioneia qui outro dia o cliente também não quer saber quando você diz que tem que mudar mil arquivos em mil lugares diferentes no seu lindo programinha de acoplamento recorde feito em VB. Simples, bonitinho, usável… mas por dentro é todo podre.

Existe uma balança entre usar tecnolgoia rápida e suja e avaliar direito seu problema, e o fato de não mencionar nisso invalide este “mandamento”.

4 - Outra cosia nem um pouco estranha

Ok, a Microsoft não é o bicho-papão que vendem por aí, ams dizer que sempre a culpa é do “sujeito”… por favor! Vou largar Java e tudo mais e partir agora para essa paltaforma perfeita que vem de Redmond.

Ok, esqueça o que eu disse. Esse artigo é uma proposta interessante, a lsita é interessante, mas as explicações sobre os “mandamentos” são sofríveis.

Se o mundo .Net é assim (e não estou dizendo que seja, estou apenas comentando o artigo do colunista de “.NET Enterprise” desse site, que tem gente muito boa como o Jorge Diz), como disse o luca outro dia: graças a zahl eu estou onde estou.

Eu só não concordo com o tópico 10.
Porque isso traz uma imagem erronea do desenvolvimento inteligente.
Porque não criar bibliotecas próprias para facilitar o desenvolvimento ?
Isso traz simplificação.
Agora não quer dizer que é preciso reinventar a roda.
O bom censo deve ser usado.

Ele também meteu o pau nos design patterns.
Aposto que ele é amante do RAD adora aquele arasta-aqui e arasta-ali.
Tudo pronto !!! Uma beleza.
Muitas vezes isso traz mais manutenção que fazer da “maneira mais dificil”.

Principalmente para os estagiários.
O que eu já peguei de tela torta do VB. Sem validacão de tipo de dados, tamanho de campo.
O que precisei fazer ? Criar uma porrada de OCX para substituir os controles padrão.
E falei : Tu só vai usar isso aqui !!!

Ainda bem que ele desenvolve em .NET.

Olá,

Como o Pcalcado falou as premissas sao ótimas, mas os argumentos muito ruins.
No fundo a mensagem que ele tenta passar é use a plataforma da M$ que ela é perfeita, se der errado nao é culpa da M$ e sim sua e nao use projetos OS porque ninguem assina em baixo.

]['s

[quote=fabgp2001] Olá,

Como o Pcalcado falou as premissas sao ótimas, mas os argumentos muito ruins.
No fundo a mensagem que ele tenta passar é use a plataforma da M$ que ela é perfeita, se der errado nao é culpa da M$ e sim sua e nao use projetos OS porque ninguem assina em baixo.

]['s[/quote]

:thumbup: :thumbup: :thumbup:

Olá

+1 aqui

jprogrammer, reinventar a roda para mim sempre foi uma das coisas mais desmotivantes.

Acho interessante quando os ASProgramadores começam a perceber que o mundo mudou. Não é a primeira vez que vejo Microsoft slaves descobrindo coisas que a gente já sabe há alguns anos.

[]s
Luca

Eu disse:
“Agora não quer dizer que é preciso reinventar a roda. O bom censo deve ser usado.”

Estou falando em reutilização e componentização do sistema, coisas que muito pseudos OO programmers deveriam estar fazendo a decadas.

O que eu insisto é o seguinte:
Para que eu repetir um código de validação em várias telas se posso criar uma API para ser usada e centralizar o código.

Ótima propaganda das boas práticas de programação, e ótimo argumento contra as tecnicas grag-n-drop de programar!!

hehe :smiley: Esse pessoal hem!

Ninguém notou isso? Que esse cara não tem a menor idéia do que é um Design Pattern. Até onde eu sei, DP existem exatamente para você “inventar” algo que já foi feito por muitos.

Olá

Louds, acho que você esta sendo muito radical com o MXPTO, MK5P3, MOXPK, OCMX, ASPecialista. :lol:

DP é um padrão a ser seguido que a gente usa em nossas próprias criações. O máximo que a gente tem são exemplos de aplicações. Na verdade a gente aplica DP, a gente não reaproveita DP. Mas como a frase dele inclui a palavra “orientar” acho que não acho tão ruim assim.

[]s
Luca

[quote=louds][quote]
É claro que Design Patterns existem para ajudar, orientar e evitar que você invente algo que já foi inventado.
[/quote]

Ninguém notou isso? Que esse cara não tem a menor idéia do que é um Design Pattern. Até onde eu sei, DP existem exatamente para você “inventar” algo que já foi feito por muitos.[/quote]

Claro Louds, o problema é que se fossemos colocar aqui todas as besteiras que ele falou seria mais facil postar o texto inteiro. :mrgreen:

]['s

Minha maior dúvida quanto ao artigo é se o .NET remoting é tão ruim assim ou o autor não sabe fazer benchmarks.

Bom dia a todos os membros desse forum,

Antes de mais nada, eu sou o tal “Microsoft slave” que escreveu o tal famigerado artigo que vocês estão criticando.

Devo confessar que estou um tanto perplexo com as reações causadas pelo meu artigo por aqui… Até voltei e dei uma lida de cima a baixo para entender melhor se eu tinha ofendido alguém, ou se fiz alguma declaração anti-qualquer-coisa que pudesse disparar tantas críticas.

Realmente não encontrei nada assim… Então porque essa raiva toda? Porque eu sou um “Microsoft slave”?

Talvez seja interessante explicar que nos 18 anos em que desenvolvo sistemas, trabalho com Microsoft tem apenas 6 (trabalhei com tudo um pouco antes disso), e já quase fui mandado embora de uma empresa por criticar o Visual Basic 5 e elogiado o Delphi enquanto dava um treinamento oficial da Microsoft nessa ferramenta. Esse foi um dos vários casos onde coloquei minha carreira em risco por falar mal da Microsoft. Mas, claro, vocês não tinham como saber…

Então às vezes ofende um pouco quando uma pessoa te rotula sem nem saber do seu passado, mas essas coisas acontecem… Entristece-me ver tecnologias sendo transformada em facções religiosas. Existe isso tanto lá no mundo Microsoft quanto em outras esferas.

Mas paciência… esse é um país livre, certo? Todos expressam o que pensam e vocês estão exercendo esse direito.

Só gostaria de fazer algumas observações, no intuito de evitar que o que eu escrevi seja distorcido, daí deixo a vocês a liberdade de me crucificar, se isso faz todos mais felizes.

1- Penso que todas as tecnologias têm os seus problemas, não vou ficar aqui contando os apuros que eu já vi a IBM passar com o Websphere, nem os que eu passei com Oracle, assim como vivo passando com Microsoft. Desenvovedor sofre com a tecnologia, e isso é universal. Mas quando uma arquitetura é mal feita, aí qualquer tecnologia desanda, isso também é universal.

2-Quando eu digo que a tecnologia não importa ao cliente, ela realmente não importa CONTANTO que o software funcione direito e seja fácil de usar e se gerenciar. Então por favor não me acusem de defender o desenvolvimento de software mal feito. Me incomoda ver o que eu disse sendo distorcido. No mínimo, isso não me parece ético.

2-Reinventar a roda com o objetivo de aprender é uma coisa, já reinventar a roda no meio de um projeto com prazo definido, budget apertado e uma enorme responsabilidade nas costas é outra. Nada contra criar bibliotecas próprias (eu vivo criando).

3-Jamais critiquei Design Patterns. Se isso não ficou claro no artigo, que fique claro aqui. E por favor: “Esse cara não entende nada de design pattern”… Sugiro o seguinte: Reclame do meu nariz, diga que minha cara é torta, mas por favor não critique o que você não sabe a meu respeito, é possível? Obrigado.

3.1-A Microsoft tem feito vários eventos só para discutir design patterns. Sim, ela está demonstrando um grande esforço para mudar… E vocês, estão dispostos a mudar também? :slight_smile:

4-Já solicitei a correção do nome da certificação, realmente estava errado, e inclusive coloquei um post no artigo agradecendo (não sei quem foi exatamente) por me avisarem disso.

5-Remoting é excelente! Conheço muita gente que usa e assino embaixo! Leia novamente o artigo e verá que não estou dizendo que ele não tem performance. Só não concordo com um argumento que é muito usado pela Microsoft, por sinal (olha aí eu criticando ela de novo) de que em muitos casos os Web Services não atendem à performance desejada. A discussão aqui é: Usar uma tecnologia proprietária (Remoting) ou algo universal (Web Services)?

No mais, quero apenas deixar registrada a minha decepção ao ver que ao invés dos mundos Java e .Net se aproximarem, com troca de experiências, conhecimento e até código (foi o que me chamou a atenção na proposta do Enterpriseguys, a idéia dele ser eclético) continuo vendo essa mesma guerra fria entre os dois lados, gente se odiando sem nem se conhecer só porque um trabalha com x e outro com y.

De qualquer forma, como já disse no site e repito aqui (imagino que agora eu esteja conhecendo os autores dos comentários do site) que estou aberto a conversar sobre o assunto, ouvir críticas e ponderar sobre elas.

Obrigado e desculpem a intromissão,

Mateus Padovani Velloso, o slave.

Olá

Em homenagem a sua paciência de vir aqui discutir dentro do das “hostes inimigas” retiro o Microsoft slave e o substituo por dependente das tecnologias Microsoft.

Também como você eu já usei Microsoft. Vou explicar porque desisti. No primeiro semestre de 1997 a bolsa de valores estava extremamente atraente. Larguei tudo para ficar só aplicando diariamente. Senti falta de uma aplicação gráfica que me ajudasse com análise técnica e ainda também administrasse minha pequena porém lucrativa carteira. Com minha ótima experiência em C e com excelentes conhecimentos de C++, comecei a desenvolver uma aplicação em C++ com o VisualStudio 6. Cada vez que eu colocava 100 linhas novas e compilava, o VS colocava mais outras 100 espalhadas em um monte de arquivos. Meu software foi ficando tão complicado que comecei a me perder. Passava o dia todo preenchendo TODO colocado pelo VS e meu core business foi ficando de lado. No meio do projeto a bolsa foi perdendo atração e eu estava com aquele monstrengo dificil de administrar sozinho. Cheguei a conclusão que o VS mais me atrapalhava do que ajudava. Talvez se eu tivesse escolhido desenvolver em Delphi ao invés de C++ não teria me frustrado tanto. Mas na época a briga era entre a turma do C onde me incluia e os pascaleiros. Nesta época já conhecia Java que como o C++ tinha as vantagens de ser orientado à objetos e permitir o grau de abstração que eu precisava. Foi então que resolvi abandonar o mundo Microsoft e até agora não tenho nenhum motivo de arrependimento.

[]s
Luca

Oi Luca,

Na verdade não foi a paciência e sim a falta dela, mas já passou… :slight_smile:

Se eu tivesse passado pelo mesmo problema que você em 1997, provavelmente teria tomado a mesma decisão. Aprendi VC++ mais por obrigação que por prazer, e realmente o considero muito pouco produtivo nos cenários mais comuns.

Na verdade, 1 anos antes do lançamento do .Net, quase abandonei a tecnologia MS por sentir falta de uma plataforma OO produtiva, porque no mundo MS tínhamos o VC, o FoxPro e o VJ que eram OO, e nenhum deles atendia nossas necessidades. Mas valeu ter aguentado um pouco mais.

Também invisto na bolsa, mas prefiro usar o Metastock que já vem prontinho (o tal “não reinventar a roda”…)

Obrigado.

Você me parece um cara legal.

Olá, Mateus,

Devo adimitir que ainda sou “religioso” com tecnologias (assim com tudo em que acredito), mas se alguém aqui já me viu defendendo um ponto ha algum tempo atrás vai ver que eu melhorei bastante, se eu te ofendi, desculpa,não foi minha intenção, eu apenas não concordo com seu ponto de vista e o respondi.

Como moderador do fórum, quero como o Luca te dar parabéns por vir defender sua opinião e dizer; seja bem-vindo. O GUJ é um fórum sobre Java mas discutimos muitas cosias aqui que são referentes às tecnologias em geral, e ocasionalemnte C#, .Net, etc cai na roda e alguém que entenda faz falta. Se você quiser continuar frequentando o fórum, será muito legal.

Como falei acima, não concordo com o que você escreveu, eu acho sim que a Microsoft (assim como borland e Oracle) rpezam mais pela quantidade do que epla qualidade. Já vai vir meu amigo Campêlo dizer que elas são emrpesas e t~em que vender, eu concordo, mas eu acho que educar a comunidade de desenvolvedores é fundamental. Infelizmente eu vejo seu artigo como cultura Microsoft.

Sim, Redmond tem mudado, até lançaram aquele portal de patterns, não foi? Mas a cultura continua. É como Delhpi, que possui uma estrutura OO boa, mas ninguém usa porque não faz parte da cultura.

Ja parou pra pensar que isso nao muda tanto assim com o pessoal que programa em Java hoje em dia? Java tem toda aquela parada de OO e APIs fantasticas pra todo lado, mas presta bem atencao na esmagadora maioria das duvidas sobre arquitetura aqui do GUJ ultimamente: dificil ver uma que nao seja aquela nojeira JSP-Servlet-VO-EJB-VO-DAO-Banco-DAO-VO-EJB-Servlet-JSP com alguma das siglas trocadas por algo mais moderninho (Struts, Velocity, Hibernate, whatever).

Isso eh, mesmo, tao melhor do que o que se ve em Delphi, C# ou VB? So pq tem mais codigo, mais configuracao, demora 5 minutos pra compilar e fazer deploy, e tem “”“objetos”"", nao quer dizer que seja um progresso pra humanidade.

cv,

Não falei nada pró-Java no meu texto, falei anti-cultura-microsoft.

De qualquer modo, eu acredito sim que só o fato de haver gente em volume muito maior discutindo arquitetura e não simplesmente usando arquitetura out-of-the-box representa uma evolução. Em qualqur profissão existe a grande maioria, que senta na cadeira, digita e pega o salario no fim do mês e a minoria que se preocupa com o que faz. Eu acho que a cultura que está se formando ao redor de Java ultimamente tem feito com que a minoria tenha mais acesso a informação, e assim possa cosntruir coisas melhores. Para a maioria semrpe vai haver o Sun Java Studio Creator.

O fato é que Microsoft e Borland dominaram por tanto tempo esse mercado, e que fizeram para melhorar o nível de conhecimento dos seus usuários? Não é a Sun que impulsionou Java, foi a comunidade de desenvolvedores que usa a linguagem para fazer cosias legais, a cultura Java é baseado em lugares como SourceForge, TSS e java.net, não em empresas, essa é a diferença.

Agora se você fizer um find/replace “java” “qualquer otura linguagem”, vaid ar no mesmo. A plataforma Java em si está no lugar certo e na hora certa.

Oi pcalcado,

Agradeço pelas boas vindas e será um prazer “dar uns palpites” se e quando vocês acharem que isso pode contribuir em alguma coisa.

Quanto a não concordar comigo ou com a Microsoft (repare que as minhas opiniões não são necessariamente as opiniões dela), nada contra. Aliás, se não fosse o Java, provavelmente não existiria o .Net, assim como se não fosse o Linux, a Microsoft provavelmente estaria com o Windows estacionado nos 9x até hoje… Nada como uma boa concorrência para “apertar” os fabricantes e melhorar a tecnologia.

Assim como a Microsoft não me paga para falar dela, imagino que a SUN ou a IBM também não paguem a nenhum de vocês, afinal, somos todos clientes dos seus produtos e não eles os clientes dos nossos serviços.

Minha bronca não foi quanto a discordarem de mim, e sim com relação a terem distorcido o que eu disse, recortando frases e dizendo: “viram? ele quer dizer tal coisa!”, com o intuito de provar uma questão ideológica. Isso realmente me assustou, fazia tempos que não via mais esse tipo de atitude na nossa área. Não bastasse a integração tecnológica ser uma coisa dificil por si só, esse fator complica mais as coisas.

Realmente a Microsoft pecou durante muito tempo, tanto no que diz respeito à estabilidade e segurança dos seus produtos quanto na questão da cultura dos desenvolvedores. E isso não é uma defesa, e sim uma constatação: Ela errou, e muito. (e olha que eu vivo ouvindo isso da boca deles)

E da mesma forma que eu exercito minha humildade admitindo isso, também coloco essa mesma humildade em prática ao constatar que ela realmente está mudando (não vou entrar no mérito de dizer se ela está mudando porque quer ou porque precisa). E nem acho que eu deva precisar argumentar muito para provar isso. Basta pegar o Visual Studio 6 e instalar os seus 6 service packs (isso mesmo, 6!) e ver que ainda assim ele é instável, e depois pegar o Visual Studio 2003, mesmo na versão beta, e fazer o mesmo teste.

Também muito está sendo feito com relação à cultura dos desenvolvedores, e se vocês tiverem interesse, posso contar a respeito sempre que participar de algum evento ou alguma outra coisa do gênero.

Daí, é claro, podemos dizer: “Eh! Mas isso não é suficiente!”. Claro que não é! Mas já é melhor que antes, ou não?

No mais, faltou um emoticon com uma bandeirinha branca de trégua para colocar aqui. :slight_smile:

Até mais,

Mateus