Thiago Cantero

Tecnologia e Entretenimento

Arquitetura de SoftwareBanco de DadosLiteraturaProgramaçãoSistemas Operacionais

Referências Literárias para aprofundar melhor os conceitos.

Olá, mundo!
Tudo bem?

Hoje eu darei menos atenção aos códigos e falarei sobre referências que usei, e uso durante os mais de vinte anos que dedico para a área de Desenvolvimento, Informática em geral. A leitura é de suma importância para o aprendizado, seja for qualquer a área de sua atuação.

“Seu cérebro seu maravilhoso cérebro, é capaz de se tornar cada vez mais inteligente, desenvolvendo cada vez mais habilidades e conhecimentos. Porém, o processo é lento e nada no mundo pode acelerá-lo”

Professor Pierluigi Piazzi

Sim, Mestre Pier tinha toda a razão, grande referência (diga-se de passagem), e com a excelente e verdadeira assertiva do nosso saudoso Professor, vamos adiante em busca do nosso aprendizado constante. Farei um breve catado das Principais Obras logo abaixo:

 

Sistemas Operacionais Modernos – Andrew S. Tanenbaum

Livro importante não só para Desenvolvedores, e sim para quem de fato quer entender as funções e os desafios que tem um Sistema Operacional moderno, como funcionam a Systems Calls, Gerenciamento de Memória, a manipulação dos Dispositivos de Entrada e Saída, dentre outros pormenores que deixarão você muito mais munido para a implementação de uma projeto de software, e até mesmo na Gestão de Processos de sua rede corporativa ou até mesmo em sua residência, por que não?
Aconselho, caso desconheça noções de programação e até mesmo o que é uma linguagem de programação, que tenha um breve estudo, principalmente em C, pois lhe dará mais segurança para entendimento da obra.

The Programming Language C – Dennis Ritchie e Brian W. Kernighan

A mãe de todas as linguagens modernas, a Linguagem C, até os dias de hoje presente em grande parte do Kernel Linux, Windows e MacOS, além de ter contribuído para a evolução e surgimento de outras linguagens como PHP, Go, Rust, Java, C#, Pascal, C++, LUA, enfim, uma infinidade de linguagens no mundo afora. Esta obra foi escrita por nada mais, nada menos do que Dennis Ritchie o criador da Linguagem, juntamente com Brian W. Kernighan, outro gênio da Informática que nos contribuiu com o excelente Unix. Certamente esta Obra é de suma importância para entendermos melhor os conceitos da informática moderna.

Compiladores – Princípios, Técnicas e Ferramentas – Alfred V. Aho, Ravi Sethi e Jeffrey D. Ullman

Obra essencial para o entendimento da Programação no ambiente computacional, expondo como como funcionam as estruturas envolvidas no processo de compilação, interpretação, dentre outros assuntos de suma importância, aplicáveis até os dias atuais. Ela dá uma boa aprofundada nas Árvores de Abstração de Síntaxe, por exemplo, isto fica mais evidente para o melhor entendimento de estruturas de dados. Aconselho esta referência.

PHP Programando com Orientação a Objetos – Pablo Dall’Oglio

Esta, na minha humilde opinião, é a Obra definitiva para programação para Web com a adoção de Design Patterns e outras boas práticas, como Clean Code, Domain Driven Design. O Autor Pablo Dall´Oglio detém uma boa e larga experiência em desenvolvimento PHP, desde os idos dos anos 2000, e eu o acompanho desde 2005, com a utilização da excelente ferramenta Agata Report. Neste livro ele traz uma introdução no paradigma estruturado, até os conceitos de Orientação a Objetos mais avançados, inclusive com a criação de um Framework que pode ser melhorado através de suas pesquisas.
Para mim, um dos livros mais incríveis que tive acesso, elevando a qualidade do seu código, bem como de sua produtividade, através de exemplos práticos e úteis.

Patterns of Enterprise Application Architecture – Martin Fowler

Martin Fowler, além de Eric Evans são grandes exponenciais nas boas práticas de aplicabilidade de Arquitetura de Software. Nesta Obra ele expõe de maneira muito didática, os padrões de códigos que usamos em Aplicações Corporativas, aqui você encontrará a dissertação de padrões como Active Record, Data Mapper, Repository, Model-View-Controller, dentre outros padrões já consagrados que são amplamente utilizados na elaboração de Softwares Corporativos modernos e seguros. Sem dúvidas, tem sido uma grande referência para os estudos.

Domain-Driven Design – Atacando as Complexidades no Coração do Software – Eric Evans

1

Este foi um divisor de águas para mim, para a elaboração de uma Arquitetura de Software sólida e de código limpo e de fácil manutenção. O Autor Eric Evans traz conceitos, que pode parecer óbvios para algumas pessoas, no entanto traz um arcabouço para a condução de projetos complexos, com mais rapidez, agilidade e documentação facilitada, vez que o Domínio ou Domínios podem ser devidamente evidenciados e isolados em suas respectivas realidades, através do conceito de bounded-context, além das estratégias adotadas para cada realidade que por ventura venha surgir.

Clean Code: A Handbook of Agile Software Craftsmanship – Robert C. Martin

Outra excelente referência é o Clean Code do Uncle Bob, traz para nós uma metodologia de escrita de código mais limpo e de fácil entendimento, aliado as demais referências já citadas, você ao ler este Livro entenderá aplicar não só um código melhor escrito, e sim um código que possui uma métrica perfeitamente mensurável, levando ao entendimento claro de suas bibliotecas de uma aplicação, seja qual for o tamanho dela.

Design Patterns: Elements of Reusable Object-Oriented Software – Gang of Four

Um Padrão pode ser adotado por qualquer linguagem que tem o paradigma de Orientação a Objetos, nesta Obra os Autores demonstram de maneira bem esmiuçada, exemplos que podem ser aplicados para uma melhor refatoração de código legado, e além do mais serve como referência para acrescentar e otimizar sua produtividade com um código eficiente e análogo ao mundo real.

Programação Avançada em Linux – Gleicon da Silveira Moraes

Este livro é interessante, mesmo ele sendo de 2005, pois traz conceitos de programação baixo nível em Linux, como interação de dispositivos de entrada/saída, customização de Distro, manipulação de recursos de pilha TCP/IP, dentre outros conceitos importantes que também é pormenorizado na primeira dica de Tanenbaum, no entanto esta tem um viés mais prático e assertivo, e que possui até uma forma de manipular API de um Kernel Linux.

Hardware II: Guia Definitivo – Carlos E. Morimoto

O grande e excelente Carlos Eduardo Morimoto, que lá pelos idos de 1999 criou o Excelente Portal “Guia do Hardware”, e também difundiu no Brasil a cultura do Software Livre, através da Customização do Knoppix, na Distro Kurumin. Traz assuntos importantes para Arquitetura de Hardware, sua organização, Padrão de Arquitetura, entre outros conceitos que também são atuais. Recomendo se você quer ser um Desenvolvedor/Administrador de Sistemas, pois os conceitos são bem aplicáveis e de fácil entendimento.

Estas são algumas de umas referências, que adotei nesta escala evolutiva do aprendizado, são literaturas que dispõe de tempo e estudos profundos para seu aprendizado, e por sua vez, seu aprimoramento. A leitura é a melhor forma de aprendermos algo, busque ler em ambiente silencioso, reflita sobre o tema que lhe esteja sendo objeto de estudos e se aprimore! ; )

 

Ser homem é ser responsável. É conhecer a humilhação diante de uma miséria que não parecia depender de nós. É orgulhar-se de uma vitória obtida pelos companheiros. É sentir, ao colocar nossa pedra, que contribuímos para a construção do mundo.