Академический Документы
Профессиональный Документы
Культура Документы
A seguir temos algumas das caractersticas que um cdigo ruim possui para ser classificado dessa forma: 1. Rigidez Se mudar um trecho de cdigo vai exigir mudanas em outras partes do cdigo, que por sua vez vai exigir mudanas em um outras partes, que...etc. O cdigo pode ser considerado rgido e malcheiroso. 2. Fragilidade Programadores cnicos costumam dizer que existem sempre trs erros em qualquer aplicao: o que voc sabe que existe, o que voc no conhece, e o que voc vai criar quando for corrigir o que voc conhece. Um cdigo frgil quebra o cdigo de maneiras inesperadas, em reas que no parecem estar relacionadas ao que voc est trabalhando. 3. Imobilidade Uma situao comum: voc est modificando uma aplicao, e, voc quer reutilizar o que se supunha ser um cdigo de propsito geral. Mas o trecho de cdigo que voc precisa est to arraigado que a nica maneira de reutiliz-lo vai te obrigar a cortar e colar. Voc est se deparando com um cdigo que imvel.
www.macoratti.net/12/10/net_ppg1.htm 1/5
03/06/13
Isso um desperdcio de tempo e um mau cheiro. 4. Redundncia Um cdigo imvel a causa primria de um cdigo mal cheiroso; a redundncia outro fator que contribui para isso. Se houver qualquer trecho de cdigo que aparece em mais de um lugar, voc tem um problema de mau cheiro, porque se o trecho precisar ser alterado (e vai), voc precisar alter-lo em todos os lugares. 5. Opacidade Se voc j se deparou com uma situao onde precisa dizer : "No sei como isso funciona, mas funciona..." Voc tem um problema, e eu no preciso de lhe dizer que isto inaceitvel, certo ? Se voc no compreende o cdigo como voc vai saber alter-lo ? Se voc precisa de comentrios no cdigo para entender o que ele faz ento o seu cdigo opaco e cheira mal. Obs: Acrescente aos sintomas acima as seguintes caractersticas de um cdigo que cheira: Cdigo duplicado, mtodos e classes gigantescas, a utilizao de muitos parmetros, classes que usam mtodos de outras classes em demasia, classes que possuem dependncia em detalhes de implementao de outras classes. Ento o que um bom programador pode fazer para escapar de ter o seu cdigo/projeto classificado como mal cheiroso ? Quando voc estiver avaliando seu projeto/cdigo faa duas perguntas:
1- Este projeto realmente necessrio ? 2- O cdigo usado viola de qualquer forma os princpios bsicos de projeto relacionados com as boas prticas ?
Se voc suspeitar que uma dessas perguntas obteve um sim como resposta, ento voc deve revisar o seu projeto ou o seu cdigo luz dos princpios bsicos das boas prticas de projetos. Se um cdigo violar quaisquer um destes princpios considere o custo de corrigir o seu cdigo agora. Se a mudana for simples ento voc pode implement-lo caso contrrio considere reescrever tudo novamente adotando as boas prticas. Se para tornar o seu cdigo ou o seu projeto aderente s boas prticas de projeto voc tiver que adicionar um complexidade maior ainda considere reescrever tudo novamente luz das boas prticas. Mas de quais princpios estamos falando ? Quais so eles ? Na verdade existem muitos princpios que podem ser adotados, e, voc vai encontrar muitos princpios distintos mencionados por diversos autores mas neste artigo eu vou me ater a 4 princpios bsicos. Estes quatro princpios so geralmente considerados os mais importantes, e muitos dos outros princpios so variaes ou aperfeioamentos desses princpios. Vejamos um resumo sobre cada um deles:
03/06/13
4- A Lei de Demter
A Lei de Demter, tambm conhecido como o Princpio do Conhecimento Mnimo, afirma que qualquer objeto dado s deve referenciar diretamente seus prprios membros e os membros dos objetos que ele instncia. Alm desse princpios voc deve considerar tambm os padres de arquitetura e os padres de projeto de software de forma ter o seu projeto classificado como um projeto aderente s boas prticas e um cdigo que no cheira mal. Um padro de arquitetura de software bsico que prega a separao das responsabilidades geralmente divide um projeto de software em camadas: Camada Camada Camada Camada Camada de de de de de Apresentao Servio Negcio Dados Persistncia
Alm deste padro podemos citar o padro MVC (usado pelo ASP .NET MVC): Model View Controller
Padres de Projeto
E os padres de projeto que so solues j encontradas, testadas e certificadas e que podemos aplicar aos nossos projetos e no ter que reinventar a roda... Os padres de projeto foram catalogados e compem o que podemos chamar de uma espcie de manual de boas prticas a serem seguidas e utilizadas em projetos de software orientados a objetos. Dos catlogos mais conhecidos e usados destaca-se o primeiro e considerado mais importante, escrito em 1995 pela Gang of Four ou GoF. O catlogo original apresentou algo em torno de 23 padres de projetos descritos e implementados na linguagem C++ ou SmallTalk. Veremos neste artigo os principais padres, um resumo bsico e sua implementao na linguagem C#.
www.macoratti.net/12/10/net_ppg1.htm 3/5
03/06/13
Vamos iniciar com uma classificao dos padres quanto a sua finalidade. Nesse quesito podemos ter os padres classificados como: 1. Criacionais - criao de objetos 2. Estruturais - composio de classes e objetos 3. Comportamentais - interao entre classes e objetos O catlogo Gof tambm classifica os padres de projeto quanto ao propsito e ao escopo da seguinte forma:
Na continuao deste artigo irei abordar o padro Factory dando um breve resumo sobre o padro e sua implementao na linguagem C#.
Slm 130:1 Das profundezas clamo a ti, Senhor. Slm 130:2 Senhor, escuta a minha voz; estejam os teus ouvidos atentos voz das minhas splicas. Slm 130:3 Se tu, Senhor, observares as iniqidades, Senhor, quem subsistir? Slm 130:4 Mas contigo est o perdo, para que sejas temido. Slm 130:5 Aguardo ao Senhor; a minha alma o aguarda, e espero na sua palavra. Slm 130:6 A minha alma anseia pelo Senhor, mais do que os guardas pelo romper da manh, sim, mais do que os guardas pela manh. Slm 130:7 Espera, Israel, no Senhor! pois com o Senhor h benignidade, e com ele h copiosa redeno; Slm 130:8 e ele remir a Israel de todas as suas iniqidades.
Seo VB .NET do Site Macoratti.net Super DVD .NET - A sua porta de entrada na plataforma .NET Super DVD Vdeo Aulas - Vdeo Aula sobre VB .NET, ASP .NET e C# Seo C# do site Macoratti.net Seo Padres de Projetos do site - Macoratti.net Padres de Projeto - Macoratti.net Padres de Projeto - O modelo MVC - Model View ... - Macoratti.net VB .NET - Usando Padres de Projetos na prtica - Macoratti.net Os 7 Principios do desenvolvimento de software - Macoratti.net
www.macoratti.net/12/10/net_ppg1.htm 4/5
03/06/13
.NET - AntiPatterns - Macoratti.net Code Smells Padres de Projeto - O modelo MVC - Model View Controller
Jos Carlos Macoratti
www.macoratti.net/12/10/net_ppg1.htm
5/5