Boas Práticas para Desenvolvimento Sistemas

Utilizar boas práticas de programação é um item básico para quem planeja ou já atua na área, trata -se de tudo que pode tornar o código melhor, ou seja  mais legível, veloz, econômico e de fácil manutenção.Um programador que usa boas práticas facilita o entendimento do seu código para seus colegas, e para si mesmo, poupando seu tempo e o da empresa.

Novas boas práticas podem ser criadas todos os dias, já que programadores sempre se deparam com novas situações, por isso todo desenvolvimento exige acima de tudo bom senso,  o ideal é programar visando sempre a melhor performance, o entendimento do código.
Alguns exemplos práticos: Continue lendo “Boas Práticas para Desenvolvimento Sistemas”

TDD (Test Driven Development) e a batalha das opiniões

Uma técnica ágil pouco usada e proporcionalmente conhecida, o TDD(Test Driven Development) ou Desenvolvimento orientado a testes, pode ser enxergado como um vilão aos olhos de algumas empresas, mas para outras esta técnica veio como um heroi. Descubra lendo esse artigo o porquê dessa guerra de opiniões e também um pouco de sua história. Continue lendo “TDD (Test Driven Development) e a batalha das opiniões”

Coding Dojo: Treinamento e transferência de conhecimento tecnológico

Segundo o http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”

Na Wikipédia encontramos: “Dojo (em japonês: 道場 sítio do caminho?, Dōjō) é o local onde se treinam artes marciais japonesas. Muito mais do que uma simples área, o dojo deve ser respeitado como se fosse a casa dos praticantes”. Mas no nosso contexto, o treinamento é da arte da construção de software e codificação. Continue lendo “Coding Dojo: Treinamento e transferência de conhecimento tecnológico”

Modelos de ciclo de vida: Cada empresa deve descobrir qual é o melhor para o seu processo

Os ciclos de vida definem basicamente como um software deve ser desenvolvido, e descrevem com detalhes as etapas e atividades a serem executadas. O modelo adotado pode determinar o sucesso da produção de um projeto, pois ajuda a melhorar o andamento do projeto e garantir que os objetivos sejam alcançados.

Definindo claramente essas etapas, torna-se possível o controle e avaliação da qualidade de cada etapa, ou atividade. Continue lendo “Modelos de ciclo de vida: Cada empresa deve descobrir qual é o melhor para o seu processo”

Refactoring: Re-escrevendo código fonte para ganhar qualidade e performance

“Refatoração é uma técnica elaborada para reestruturar um código fonte existente, alterando sua estrutura interna sem mudar o seu comportamento final, anda junto com a manutenção de software.

A idéia principal de refatorar está em uma série de pequenas melhorias que mantém a estrutura inicial da regra de negócio realizando a manutenção do código. Cada refatoração faz pouca coisa, mas uma seqüência de pequenas refatorações pode fazer uma diferença significativa. Uma vez que cada refatoração tem um escopo pequeno e é localizada existe um baixo risco associado. O sistema se mantém funcionando normalmente após cada refatoração, reduzindo as chances de o sistema sofrer um grande erro durante sua reestruturação. Continue lendo “Refactoring: Re-escrevendo código fonte para ganhar qualidade e performance”

Modelagem de software baseada em análise de vulnerabilidades

Modelagem de software baseada em análise de vulnerabilidades é um processo de análise feita durante o desenvolvimento de uma aplicação, onde devemos identificar os bens ou recursos que aplicação deve proteger e avaliar a necessidade de proteção em relação aos acessos de usuários aos recursos do sistema e sua possibilidade de ação/interação na aplicação.

Devemos ter em mente o ativo que pretendemos proteger e como desenvolvedores podem simular invasões na aplicação e exploração dos pontos de coleta de informações. Este processo deve ser repetido durante a análise, construção, teste e manutenção da aplicação. Continue lendo “Modelagem de software baseada em análise de vulnerabilidades”

Teste de Software: Investimento necessário.

O mundo está aderindo ao software por vontade própria ou impropria. A necessidade da utilização de sistemas esta cada vez maior pela obrigatoriedade do mercado. É uma realidade presente em nossas vidas desde uma aplicação para celular até para controle de uma nave espacial. Cada vez mais os sistemas estão se tornando complexos, com isso vem à necessidade de se investir em teste de forma profissional e com qualidade para garantir o desenvolvimento de software seguro.

Investir para reduzir falhas, erros ou defeitos aumenta a reputação da empresa que desenvolve o software, testar corretamente diminui a exploração de vulnerabilidades de segurança. Continue lendo “Teste de Software: Investimento necessário.”

Boas Práticas para Desenvolvimento de Softwares seguros

Segurança no desenvolvimento de software
À medida que as aplicações passaram a ser baseadas na Web, a segurança de software foi ganhando força. Com a constante atividade de invasores, desenvolver um software seguro se tornou fundamental. Este artigo apresenta boas práticas e recomendações de segurança para o desenvolvimento de software.

A segurança em aplicações visa manter a confidencialidade, integridade e disponibilidade dos recursos de informação a fim de permitir que as operações de negócios sejam bem sucedidas. Geralmente é mais barato construir software seguro do que corrigir as vulnerabilidades de segurança após a entrega do software. Continue lendo “Boas Práticas para Desenvolvimento de Softwares seguros”

Como montar um ambiente de teste para cluster

Por muitas vezes precisamos testar aplicações em ambientes de alta disponibilidade e não temos hardware dedicado para realizar tais testes. Assim podemos utilizar virtualização, tanto de servidores quando de discos. O arranjo sugerido serve para vários tipos de cluster.

Segue abaixo uma breve descrição de como montar um laboratório para testes com um cluster de Windows 2008 R2 utilizando discos iSCSI para compartilhar informações.

Continue lendo “Como montar um ambiente de teste para cluster”