Lab C++

Codificação Eficiente

Não basta conhecer a sintaxe, é preciso conhecer a linguagem, saber a melhor forma de fazer.

Tags: qualidade

KISS: Uma Grande Herança do Unix

O acrônimo KISS tem várias traduções mas um único significado: “Keep It Simple Stupid”, “Keep It Simple, Soldier”, “Keep It Simple, Sir”, etc. O significado é um só: Mantenha a solução simples, foco na simplicidade. A linguagem C está intimamente ligada com esse conceito, assim como o Unix. Não é a primeira vez que falamos sobre a simplicidade, o assunto já foi abordado no post sobre As Bases da Filosofia Unix, mas dessa vez vamos explorar mais este assunto.

(mais…)

lint – Avaliando a Qualidade do Código

lint, ou linter, é um software originalmente desenvolvido em 1978 com o intuito de apontar, através de análise estática do código, falhas que pudessem levar a problemas no software. Originalmente disponível somente para linguagem C, hoje em dia é sinônimo de analizador estático de código para qualquer linguagem.

(mais…)

As Bases da Filosofia Unix – Parte 4

Hoje a última das quatro partes sobre as bases da filosofia Unix, conforme Eric S. Raymond. E para fechar com chave de ouro cinco regras que vão auxiliar no desenvolvimento de sistemas mais robustos.

(mais…)

As Bases da Filosofia Unix – Parte 3

Dando continuidade ao último post, hoje vamos conhecer mais quatro, das dezessete, regras das bases da filosofia Unix, conforme Eric S. Raymond em seu livro The Art of Unix Programming.

(mais…)

As Bases da Filosofia Unix – Parte 2

Dando continuidade ao último post, hoje vamos conhecer mais quatro regras das bases da filosofia Unix, conforme Eric S. Raymond em seu livro The Art of Unix Programming.

(mais…)

Bases da Filosofia Unix – Parte 1

Um sistema operacional que se mantém vivo há quase 50 anos, se manteve firme e estável desde então, concorrendo com diversos sistemas operacionais. Iniciado em 1973, chegando ao mainstream do desktop em 2001 com o MacOS X; chegando aos smartphones em 2008, com o Android; e indicado por alguns especialistas como o futuro dos sistemas operacionais.

Com tantos atributos de sucesso, vale a pena estudar sua filosofia de desenvolvimento. O livro The Art of Unix Programming, de Eric S. Raymond (ESR), é um dos estudo mais completos sobre o assunto. Logo nos primeiros capítulos define 17 regras que resumem as bases da filosofia Unix.

Hoje vamos começar uma série de quatro posts diferentes aonde vamos abordar as bases da filosofia Unix, conforme ESR, em 17 regras.

(mais…)

Atenção à Documentação

Já trabalhei em equipes que eram extremamente detalhistas, mas também trabalhei em equipes que praticamente não tinham documentação, nem mesmo funcional, ou mesmo manuais. Mas a falta de atenção a documentação pode causar problemas de qualidade e estabilidade em um sistema.

(mais…)

A Importância das Estruturas de Dados

Qualquer curso de desenvolvimento, seja curso livre, técnico, ou superior, começa a ensinar desenvolvimento ensinando algoritmos. Natural, uma vez que a maioria das pessoas não conhece como funciona código estruturado.

O que raramente é ensinado é a importância das estruturas de dados para o desenvolvimento de software, isso reflete em muitos projetos, muitas vezes profissional, que sofrem pela falta de estruturação dos dados.

(mais…)

Retorno de Ponteiro para Variável Local

Tá aí uma falha que pode causar problemas intermitentes e consequentemente muitas horas de desenvolvimento para corrigi-la. Vamos aprender a identificá-la e como evitar esse problema.

Abertura de Escopo

Tem muito programador C/C++ por aí que não sabe como abrir um escopo novo. Basicamente qualquer par de chaves abre um novo escopo em C/C++, e as variáveis ali declaradas somente tem validade dentro desse escopo. Em tempo de compilação isso serve para determinar a validade de cada variável.

(mais…)

Vazamento de Memória

Já trabalhei em várias equipes, algumas tinham um cuidado extremo com a gestão da alocação de memória, outras não se preocupavam tanto assim. Independente da atitude da equipe é importante saber como evitar vazamentos, e quais as consequências.

Para quem não sabe o que é vazamento de memória: é a manutenção de memória alocada dinamicamente após seu uso de forma que não possa ser recuperada, utilizada ou desalocada. O mesmo pode-se dizer de outros recursos. O programa funciona perfeitamente, porém em algum momento a memória acaba, e aí começam os problemas.

(mais…)