On Wed, 27 Oct 2004 13:46:07 -0300, Fabio Rizzo Matos
<fabiorizzo@...> wrote:
>
> Totalmente de acordo.
>
> Tem um amigo que estuda comigo e ele é arquiteto de softwares, e ele
> disse o seguinte:
>
> "Conheça muito bem as Regras do Negócio, OO e UML. O resto, deixa para
> os consultores"
>
> Ele tem a visão de que hoje, muitas pessoas especializadas são
> consultores especializados, e que se voce quer algo mais, tem que
> conhecer algo mais.
>
> Eu concordo com a visão dele, e vc's?
Parcialmente.
Eu sou a favor de conhecer um pouco mais do que ele menciona e também
um pouco a menos...
Exemplo de conhecimento a mais: ao meu ver você tem que conhecer todo
o funcionamento de um computador se quer fazer algo em computação.
Desde o funcionamento do mais baixo nível de hardware até o mais alto
nível de software. Claro, não precisa ser profundo, mas ao menos saber
como fazem as coisas pois se você souber o baixo nível vai conseguir
tomar decisões de alto nível conscientes. Se souber o alto nível
consegue saber quão granular precisa ser o baixo nível para atender ao
seu projeto.
Pense por exemplo em alguém que sabe J2EE e não sabe como o Java
implementa seus componentes ou como a plataforma J2EE (ié: JBoss)
implementa a persistência de objetos, consultas, redundância, ... o
cara vai usar e no primeiro problema ele vai se ferrar... a coisa vai
consumir muita memória, ou vai ser lenta... se ele soubesse como
funciona sistemas distribuídos, a serialização e etc ele conseguiria
saber o que fez de errado, estudar mais sobre o assunto e vir com uma
solução boa.
Um exemplo concreto disso em python é um projeto em que participo,
nele fazíamos umas páginas HTML que com o tempo começaram a crescer...
fazíamos utilizando "resultado = str1 + str2" e assim crescíamos nosso
html até alguns megabytes... bem, ficou lento o sistema e utilizando
nosso conhecimento sobre python, a sua implementação em C e a alocação
de memória do sistema percebemos que o problema era devido à alocação
e liberação de memória, trocamos por um "resultado = [ str1, ... strn
]; resultado = ''.join( resultado )" e a coisa passou de 50s para 1s.
Sobre saber de menos, não acredito que saber OO ou UML seja essencial.
Existem áreas que OO não ajuda em nada... Ok, é bom saber o conceito,
mas é tão essencial quanto saber programação funcional e até lógica.
Sobre UML, qual é a vantagem (além de curricular) em saber esta
porcaria? Ok, você arruma um emprego pois sabe algo que está na moda,
porém notações existem várias e saber uma não vai te ajudar em muita
coisa. Mesma coisa se você achar que saber RUP é essencial... por que
não XP?
Acho que este pensamento aí foi meio tendencioso para o que estão usando _hoje_.
--
Gustavo Sverzut Barbieri
---------------------------------------
Computer Engineer 2001 - UNICAMP
GPSL - Grupo Pro Software Livre
Cell..: +55 (19) 9165 8010
Jabber: gsbarbieri@...
ICQ#: 17249123
GPG: 0xB640E1A2 @ wwwkeys.pgp.net