Alguém sabe alguma técnica milenar p/ entender um sistema sem doc

Pessoal entrei numa empresa que me ofereceu um salário bom…o problema é que tenho que entender o sistema, os códigos e etc…o problema é que o sistema não tem documentação nenhuma…alguém tem alguma técnica milenar neste caso?

Abs
Rodrigo

Blz?

Engenharia reversa do código para diagramas UML podem ser um início.

Mas não tem jeito. Vai ter que ralar muito no código para entender a estrutura do sistema e regras de negócio.

Boa sorte!

Primeiramente chama-se oxin dos codigos fontes, reza 3x, oferece sua alma, e pronto, você entenderá os codigos, mas somente desse sistema, para outro terá de repetir o ritual.

Brincadeiras a parte, não tem jeito não, o negocio é rala e adivinha, o pior e se o sistema não seguir nenhum padrão, ai sim vc está ferrado ehhehe.

abraços

Nessas ocasiões eu tento seguir o caminho de um evento no sistema. Desde o momento que o “ator” clica em um botão, ou coisa parecida, até o resultado retornar.

Tambem é util fazer um tipo de log conforme voce vai indo, que classe chama qual, essas coisas, pra tentar ter uma visão geral.

Olá,

Bom poderia ir inicialmente tentando entender a lógica de/do negocio. (crie alguns fluxos de como deveria ser.)
Tente seguir os fluxos enquanto “debuga” o código… é árduo, mas você começa a compreender melhor o sistema todo( por mais que não conheça tudo plenamente, começará ter noção de onde certas “coisas”, códigos, properties, etc, se encaixam no sistema ) .

Começa criando um diagrama de classes,
tentando montar um modelo de domínio,
editando classe por classe.
Se você conseguir, mesmo que seja
meio nebuloso a princípio, vai começar
a entender o sistema.
Vai ralar muito, infelizmente.
Boa sorte.

Se você achar resposta para isso, você pode escrever um livro e ganhar muita grana, pois tem muito projeto assim por aí. Você não tem noção da infinidade de projetos que não possuem uma linha sequer de Javadoc.

Sinceramente programador que não documenta seus códigos nem sequer merecia ser chamado de programador.

Por mais que o código fale por si só, o que não é muito que se vê por ai, porem seria o ideal. Mesmo assim, pelo menos, deveria haver um documento para dar o “ponta-pé” inicial. Porem sinceramente é muito chato ficar documentando coisas, eu tento criar código simples (seguindo os princípios do “ema ema ema”) e comentar pontos importantes da aplicações. Alguem tem algumas dicas legais ,de fácil “usabilidade” ?.

obs.: Mas o problema em tudo isso é que é muito complexo ser simples. (Pelo menos tentar criar coisas simples é complexo. :D)

Documentação de código deve possuir um formato pré-definido. No minimo ela deve ser clara e concisa e principalmente ser uma informacao útil. Uma equipe deve entrar em acordo sobre o que documentar e o que não documentar.

Olá!

Pra mim uma das últimas coisas que você deve fazer é diagrama de classe, pq vc já está começando pelo fim. Primeiro e mais importante: faça Diagramas de Casos de Uso para que saiba o que o seu sistema faz. Segundo: Mapeie processos usando BPMN, a partir daí vc já será capaz de ter um entendimento completo do código. Se usa jdbc, hibernate ou wherever isso são apenas detalhes de implementação, sem contar que o resultado do mapeamento com BPMN é algo “apresentavel” aos gestores.

O que aconteceu com quem desenvolveu o sistema? Se ele esta na empresa, exija algum tempo com ele para dar seus primeiros passos. Se nao, desconfie que voce pode estar se metendo numa fria…

Tem sim… uma tecnica chamada Debug frenetico…
so assim pra entender a bagaça…
ja passei por isto amigo… e complicado porem nada que um bom debug e verificação de pilha de chamadas resolva

É isso aí…infelizmente essa situação é bem comum mesmo, a parte boa é que geralmente oferecem mais dinheiro nestes tipos de oportunidades.

Minhas dicas:

  1. Se houver algume que participou do projeto no local, pergunte a ele/ela; esta é a maneira mais rápida de aprender sobre o sistema. Se não houver ninguem (como ocorreu comigo), relaxe e vai devagar porque vai ficar realmente mais difícil porem a culpa não é sua, é mais de quem deixou todo mundo “voar” sem deixar nenhuma dica.

  2. Se já houver usuários para o sistema eles poderão ser seus aliados, poderão lhe ajudar a entender os casos uso, instalação, regras de negócio e etc… enfim a parte externa da coisa.

  3. Tente perceber o nível do desenvolvedor anterior verificando a codificação, se houver um método que começa com letra maiúscula, nome de classe com letra minuscula você já pode se preparar para problemas sérios de arquitura, perfomance, fluxos confusos e falta de verificações nas entradas de dados. Neste caso não tem jeito tambem, relaxe e vai aprendendo / arrumando a medida que os problemas vão surgindo.

  4. Tente varificar quais componentes foram utilizados no sistema (hibernate, spring, jsf, struts, etc…) se você não souber com funciona algum deles comece a estudar imediatamente, caso contrario vc não irá entender a parte do código que envolve o componente desconhecido. Vc terá pontos cegos no código.

  5. Se o desenvolvedor anterior for de nível médio para cima, você irá constatar uma especie de “modus operandis” expresso no código. Nestes casos selecione uma funcionalidade bem simples e percorra seu código do inicio ao fim depois disto pegue uma de nível médio e faça a mesma coisa.

  6. Muitas vezes é possível encontrar alguns arquivos .docs na rede sobre o projeto; os caras as vezes fazem durante/após as reuniões e deixam espalhados se encontrar dá uma lida. Ao menos vc terá uma leve idéia do que eles queriam antes da crise chegar no seu ponto máximo.

  7. Navegue nas janelas no sistema até ficar de “saco cheio” mesmo sem saber para que servem. Assim quando vc estiver no meio do código vc poderá fazer uma rápida associação.

  8. Aproveite seu tempo livre (se houver) para aprender mais sobre a arquitetura (se houver) do sistema, assim você será mais àgil quando ocorrer algum problema, poderá até causar uma boa impressão nos seus usuários.

  9. Tente perceber se foi utilizado patterns, se foi estude os que vc não conhecer. Com isto você já irá dominar boa parte do código escrito.

Espero ter ajudado.

flws

Não tem testes?

Pessoal vejo que o negócio é colocar a mão na massa mesmo!!!

Pelo jeito vou fazer um pouco de cada coisa que vocês falaram!!!

Olha que não é nada mal pensar em montar livro com uma técnica para entender projetos sem documentação!!

Será que daria grana? hahahhaha

Obrigado pessoal…o que vcs disseram pra mim nesse forúm…já me deixa tranquilizado diante do que tenho que passar!!

Abraços e obrigado por tudo!!
Rodrigo Santik

Se precisa de técnica milenar use:
The Tao of programming

Uma boa maneira de entender a bagunça é refatorando o código. Mas muitas vezes você precisará sentar por horas e horas até dominar bem o que o código faz.

Apenas mais duas opiniões sobre isso:

  • eu tentaria ir refatorando o código a medida que fosse lendo, ir retirando as 200 linhas do método monolítico e passando para objetos coesos, etc. O Eclipse é uma ótima ferramenta para refatoração, com diversos mecanismos próprios pra isso (pull up, push down, extract to local method, etc);

  • sobre comentários nos métodos, eu também não costumo colocar muito comentário no código - às vezes nenhum! Há uma recomendação do Extreme Programmig que diz ser melhor tornar o código legível ao invés de escrever linhas e mais linhas de comentários.

Tipo, é melhor ter um método getSituacaoDoPagamento() do que ter um método getStPgm() com um comentário “retorna a situação do pagamento”…

Abraço,
Marcone - http://marconems.blogspot.com

Olá caro colega rsantik!

Fique sabendo que vc estava me procurando, então resolvi aparecer, da minha melhor forma: de surpresa!  :twisted: 


Os outros colegas já te deram dicas boas, realmente "técnica milenar" não existe.

Mas faltou vc falar informações importantes no seu post. Por ex, que vc está numa equipe e não sozinho e abandonado no escuro da noite...rs... que nós não somos tão terroristas e te passamos sempre as alterações mais simples, fora que estamos te explicando o tempo todo vai. Em resumo, tá exagerando!!! Desse jeito vc assusta o pessoal! Todo mundo vai acreditar que o sistema é tão trash qto vc tá falando! rs...

Bom, eu sou meio "velha de GUJ", tô sumida por falta de tempo... mas o povo mais antigo acho que lembra de mim.

Em resumo pra galera que não entendeu nada dessa história: o rsantik está trabalhando comigo agora!  :lol: 

Ah, e detalhe, que papo é esse de salário bom que eu não tô sabendo?! rs...  :shock: 

T+ pessoal
Renata

[quote=RenataFA]Olá caro colega rsantik!

Fique sabendo que vc estava me procurando, então resolvi aparecer, da minha melhor forma: de surpresa!  :twisted: 


Os outros colegas já te deram dicas boas, realmente "técnica milenar" não existe.

Mas faltou vc falar informações importantes no seu post. Por ex, que vc está numa equipe e não sozinho e abandonado no escuro da noite...rs... que nós não somos tão terroristas e te passamos sempre as alterações mais simples, fora que estamos te explicando o tempo todo vai. Em resumo, tá exagerando!!! Desse jeito vc assusta o pessoal! Todo mundo vai acreditar que o sistema é tão trash qto vc tá falando! rs...

Bom, eu sou meio "velha de GUJ", tô sumida por falta de tempo... mas o povo mais antigo acho que lembra de mim.

Em resumo pra galera que não entendeu nada dessa história: o rsantik está trabalhando comigo agora!  :lol: 

Ah, e detalhe, que papo é esse de salário bom que eu não tô sabendo?! rs...  :shock: 

T+ pessoal
Renata

[/quote]

Ainda bem que ele falou bem! :smiley:

Quando eu passo por isso eu vou pelo debug no eclipse mesmo, com um papel e uma caneta do lado pra ir escrevendo os passos executados.

Quando eu refatoro códigos, eu procuro tentar usar java code convention & kiss, e o mais importante, não custa abrir um:

/**
 * Meu breve comentario 
 * @author: seu nome aqui.
 */

[]'s

[quote=RenataFA]Olá caro colega rsantik!

Fique sabendo que vc estava me procurando, então resolvi aparecer, da minha melhor forma: de surpresa!  :twisted: 


Os outros colegas já te deram dicas boas, realmente "técnica milenar" não existe.

Mas faltou vc falar informações importantes no seu post. Por ex, que vc está numa equipe e não sozinho e abandonado no escuro da noite...rs... que nós não somos tão terroristas e te passamos sempre as alterações mais simples, fora que estamos te explicando o tempo todo vai. Em resumo, tá exagerando!!! Desse jeito vc assusta o pessoal! Todo mundo vai acreditar que o sistema é tão trash qto vc tá falando! rs...

Bom, eu sou meio "velha de GUJ", tô sumida por falta de tempo... mas o povo mais antigo acho que lembra de mim.

Em resumo pra galera que não entendeu nada dessa história: o rsantik está trabalhando comigo agora!  :lol: 

Ah, e detalhe, que papo é esse de salário bom que eu não tô sabendo?! rs...  :shock: 

T+ pessoal
Renata

[/quote]

Caro rsantik,

Só pelo bom salário acho que já vale a pena hein, num é não?
E como nossa colega Renata disse, é isso mesmo, cola nos mais antigos e vamos que vamos, será que os demais que fazem parte da equipe também já não passaram por isso? Enfim é tudo questão de tempo, qdo perceber, passaram alguns meses e vc já estará totalmente inteirado ao sistema, e verá que a documentação pode fazer falta, mas que não foi tão dificil assim…rsrs

Enfim sei que trabalhar com a Renata num é fácil, mas vc vai conseguir…relaxa…rs

QQ dúvida tamos ae, qdo precisar…
E só pra saber, qto tão te pagando nessa empresa ae hein!?..kkkkkk

Benvindo a equipe!!
Abraços, Léo.