Programação de Sistemas com Go
Programação de Sistemas com Go
Resumo:
Introdução
O livro «Go Systems Programming» (autor — Mihalis Tsoukalos, 2017, 460 páginas) — não é apenas mais um guia sobre a linguagem Go. É um mergulho profundo no mundo da programação de sistemas, voltado para desenvolvedores que desejam escrever utilitários eficientes, confiáveis e de baixo nível para sistemas operacionais do tipo UNIX. O autor, conhecido por seus livros técnicos e artigos, oferece uma abordagem prática, combinando teoria com muitos exemplos de código.
Sobre o que é o livro
O livro cobre uma ampla gama de tópicos relacionados à interação de um programa em Go com o sistema operacional. O foco principal é Linux e macOS, mas a maioria dos exemplos é portável para outros sistemas UNIX. Você aprenderá a trabalhar com sistemas de arquivos, processos, sinais, sockets de rede, além de como criar seus próprios utilitários de sistema (por exemplo, análogos ao ps, ls ou netstat).
Para quem é este livro
O livro é voltado para programadores que já conhecem os fundamentos do Go (sintaxe, goroutines, canais). Será útil para:
- Desenvolvedores migrando de C/C++ para Go que desejam manter o controle sobre os recursos do sistema;
- Engenheiros DevOps e administradores que escrevem ferramentas para monitoramento e automação;
- Todos que desejam entender como o Go interage com o kernel do SO em baixo nível.
O que o leitor aprenderá
Após a leitura, você será capaz de:
- Trabalhar com descritores de arquivo e chamadas de sistema através dos pacotes
osesyscall; - Gerenciar processos (criação, término, espera, sinais);
- Criar servidores e clientes multithread usando sockets TCP/UDP;
- Escrever seus próprios utilitários de linha de comando com tratamento de argumentos e flags;
- Trabalhar com tempo, timers e sincronização em nível de SO;
- Usar o pacote
os/execpara executar programas externos; - Entender a estrutura dos sistemas de arquivos e trabalhar com inodes, permissões de acesso e links.
Pontos fortes
A principal vantagem do livro é a orientação prática. Cada capítulo contém muitas listagens de código que podem ser executadas e modificadas imediatamente. O autor não tem medo de mostrar detalhes "sujos": tratamento de erros, trabalho com dados binários, peculiaridades de diferentes SOs. O livro é escrito em linguagem viva, com exemplos da experiência real. Vale destacar especialmente os capítulos dedicados a sockets de rede e criação de servidores próprios — eles fornecem uma base sólida para escrever sistemas de alta carga.
A quem é recomendado
Recomendo este livro a todos que desejam ir além do desenvolvimento web em Go e aprender a escrever ferramentas de sistema que funcionam de forma rápida e confiável. Será útil tanto para desenvolvedores experientes quanto para aqueles que estão começando a estudar Go, mas já possuem conhecimentos básicos. Se você quer entender como o Go "se comunica" com o kernel do Linux — este livro é para você.
Recommendations
Python para tarefas complexas. Ciência de Dados e Aprendizado de Máquina
Desvendando Algoritmos
Rust para iniciantes: curso completo
Concorrência em C++: Guia Prático para Programação Multithread
Arquitetura de Aplicações Java: do Monólito aos Microsserviços
Testes de aplicações C++: de testes unitários à cobertura de integração