Writing Quality Code – 4 Sintomas que podem revelar um código ruim
Robert C. Martin, popularmente conhecido como Uncle Bob, utilizando o conceito de Design Smells (Odores de Design) elencou quatro sintomas básicos que ajudar a descobrir se o nosso código não cheira bem – é pobre de Design. São eles:
- Rigidez: Rigidez é a tendência que o software tem a ser difícil de mudar, mesmo para mudanças simples. Qualquer mudança simples provoca subsequentes mudanças em módulos dependentes; uma cascata de mudanças. Dizemos que um sistema é rígido quando percebemos que para uma mudança simples precisamos alterar diversas outras partes do sistema. Quanto mais módulos precisam ser alterados, mais rígido é o sistema.
- Fragilidade: A fragilidade está intimamente ligada a rigidez. Podemos definir fragilidade como a tendência que o software tem em quebrar cada vez que é mudado. Ou seja, a resolução de um bug provoca vários outros bugs no sistemas. Muitas vezes em áreas que não tem relação conceitual com a que foi alterada. Um cenário muito comum ainda nos dias de hoje.
- Imobilidade: É a incapacidade de reutilizar componentes já desenvolvidos em outras partes do projeto atual. Muitas vezes descobrimos que precisamos desenvolver módulos que são muito semelhantes a outros já desenvolvidos e percebemos que estes módulos contém lógicas que os deixam muitos acoplados ao sistema. O esforço e os riscos de desacoplá-los tornam inviável a sua reutilização e acabamos decidindo reescrever nosso novo módulo do zero.
- Viscosidade: Existem 2(dois) tipos de viscosidade: de Software e de Ambiente.
- Software: Quando precisamos fazer uma mudança no sistema podemos encontrar mais de uma maneira de fazê-la. Algumas preservam o Design, outras não. Quando as que preservam são mais difíceis de implementar do que as que não dizemos que a viscosidade do sistema é alta.É mais fácil fazer a coisa errada do que fazer a certa.
- Ambiente: Viscosidade de ambiente surge quando o sistema é lento e ineficiente. Quando o tempo de compilação é muito alto, o sistema demora a fazer check-in, a dar o deploy, etc…
Evitando maus odores no código
Um das formas de evitar os maus cheiros no código é fazer uso dos princípios SOLID. SOLID é uma sigla mnemônica introduzido pelo Uncle Bob no início de 2000, que representa cinco princípios básicos da programação orientada a objetos e design. Estes princípios são orientações que podem ser aplicadas no desenvolvimento de software para remover o código que cheira mal, fazendo com que o programador crie o hábito de refatorar o código fonte para que este seja ao mesmo tempo legível e extensível.
Vejamos esses princípios representados em diagramas de classe.
- SRP — The Single Responsibility Principle
Uma classe deve ter uma, e apenas uma, razão para mudar
- OCP — The Open Closed Principle
Uma classe deve permitir estender seu comportamento, sem modificá-la.
- LSP — The Liskov Substitution Principle
Classes derivadas devem ser substituíveis por sua classe base.
- ISP — The Interface Segregation Principle
Implemente interfaces de granularidade ótima que são bem especificadas.
DIP — The Dependency Inversion Principle
Dependa sempre de abstrações, e nunca de coisas concretas.
Além desses princípios sobre design de classes, também introduziu os de coesão e acoplamento de pacotes:
- REP — The Reuse Release Equivalency Principle
- CCP — The Common Closure Principle Principle
- CRP — The Common Reuse Principle
- ADP — The Acyclic Dependencies Principle
- SDP — The Stable Dependencies Principle
- SAP — The Stable Abstractions Principle
Para mais informações
- http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod [Uncle Bob] PrinciplesOfOod
Keep Coding…
Listening to A Great Day For Freedom – Pink Floyd
Sharepoint – Diferenças entre grupos do AD e grupos do sharepoint

Não são raros os casos em que clientes querem aproveitar a estrutura de departamentos e usuários existentes no Active Directory da organização e integrá-la com o Sharepoint. Felizmente, essa integração é nativa do sharepoint e não precisaremos de customizações e/ou desenvolvimentos. Porém, para um bom planejamento da arquitetura sharepoint, precisamos diferenciar os Grupos de Domínio(AD) dos Grupos do Sharepoint. Grupos de domínio Vantagens: Normalmente são criados e mantidos pelo departamento…
Read more...Sharepoint e ALM – Tipos de Aplicativos

O sharepoint é uma plataforma que proporciona aos desenvolvedores de softwares ( foco deste artigo ) construir aplicativos para resolver as mais diversas necessidades de negócios. Com suas features OOB(Out of The Box) agrupadas nas suas 6(seis) capacidades - sites, comunidades, conteúdo, busca, composições e percepções – esta incrível plataforma acelera o processo de desenvolvimento de software, permitindo entregar soluções robustas, flexíveis e customizáveis em um período de tempo bem mais…
Read more...[Book] Código Limpo: Habilidades Práticas do Agile Software

Um programador que escreve um código limpo é um artista que pode pegar uma tela em branco e submetê-la a uma série de transformações até que se torne um sistema graciosamente programado. Título: Código Limpo: Habilidades Práticas do Agile Software Autor: Robert C. Martin (Uncle Bob) Editora: Alta Books Número de páginas: 440 Quando criança, lembro da professora passar uma atividade de pintura para a classe. Ela entregou uma folha em branco…
Read more...Quando usar o Dispose() do SPWeb?

Por que é importante chamar o Dispose()? Todos os objetos SPWeb e SPSite guardam uma referência para um objeto SPRequest e este por sua vez guarda uma referência para um objeto COM (Component Object Model) do SharePoint. Objetos COMs que são responsávies por fazer a comunicação com o SQL Server. Conforme ilustrado na figura abaixo. Ao chamar o Dispose() de um objeto SPWeb não estaremos efetivamente removendo-o da memória (O…
Read more...





Add One