Concluí hoje a leitura deste livro:
- JAVA5 e Programação por Objectos
- Autor: Fernando Mário Martins
- Editora: FCA - Editora Informática
- Idioma: Português
- Páginas: 512
- Capa
Vou deixar então a minha opinião.
No geral, é um bom livro de introdução à programação orientada a objectos (POO) utilizando JAVA5. Preocupa-se em introduzir e cimentar os conceitos inerentes à POO, tendo em conta os princípios defendidos pela Engenharia de Software (reutilização, extensibilidade, manutenção, etc). Vai abordando progressivamente as diversas componentes do JAVA5, desde as noções básicas de objecto e classe e mecanismo de mensagens, passando pela definição de construtores e métodos, classes concretas e abstractas, interfaces, hierarquia de classes e herança, utilização das colecções de objectos presentes na Java Collections Framework, lançamento de excepções, utilização de streams para leitura/escrita em ficheiros, chegando a abordar temas mais avançados que estão inerentes à construção da linguagem JAVA como as classes génericas, type erasure, métodos bridge, wildcard capture, inner classes, reflexão e factory methods, sem descuidar uma abordagem inicial à tecnologia JAVA e também um capítulo dedicado a um IDE simplista de JAVA - BlueJ. Ao longo dos seus 11 extensos capítulos, preocupa-se em transmitir ao leitor os bons princípios de programação (encapsulamento, abstracção, generalização, etc) apresentado sempre contra-exemplos de modo a clarificar as ideias. Tudo isto com a vantagem de ser Português.
Agora os pontos a favor e contra:
-> A favor:
- Linguagem técnica e texto bem escrito
- Bastantes exemplos práticos e contra-exemplos, chegando até ao ponto de comparar a programação em JAVA2 com a programação em JAVA5, para mostrar todas as facilidades que esta trouxe ao programador
- Vasto leque de temas, desde os básicos aos mais avançados
- Preocupação na transmissão de boas práticas de programação tendo em vista os princípios da Engenharia de Software
- Os exemplos vão sendo apresentados no ambiente do IDE BlueJ, o qual é apresentado num capítulo único, de modo a permitir uma maior aproximação entre a teoria e a prática
- Excelente introdução à tecnologia JAVA e ao paradigma da POO, mostrando quais os motivos do seu surgimento e as lacunas que vieram suprimir
- Apresentação de diversas situações onde o tema do capítulo em questão já foi utilizado, por exemplo, na implementação de pormenores do JAVA,
não deixando o leitor com a questão: "Mas afinal isto só serve para este caso, ou tem uma utilização mais abrangente e real?"
- Preocupação do autor em confrontar diversos tipos de colecções de dados e de streams (no que toca à sua utilização em aninhamento) apresentando diversos testes onde mostra quais são mais rápidos e mais leves para determinados casos
- O último capítulo permite que o leitor possa perceber pormenores mais intrínsecos da linguagem JAVA5, como por exemplo, a forma como os diversos métodos das classes existentes estão codificados e porquê, é um capítulo que apesar de mais difícil de perceber, se torna interessante.
-> Contra:
- É um livro moroso de ler e não tão fácil de ler como, por exemplo, o livro do Damas. Isto deve-se em parte, não só ao facto da tal linguagem técnica já referida que obriga a que o leitor assimile os conceitos anteriores a um determinado capítulo para que possa perceber os futuros capítulos (o que me parece sensato), mas também se deve ao facto de que este paradigma implica uma forma de pensar diferente para quem vem habituado de outros paradigmas e com práticas de programação um pouco débeis, e porque o autor preocupa-se com que o leitor cimente bem os conhecimentos fundamentais para que não sejam cometidos erros básicos durante a programação e, como tal, refere bastantes vezes "o tal pormenor que já se referiu e que não pode ser esquecido!".
- Uma das principais dificuldades com que me deparei foi com a escrita de métodos de leitura/escrita em ficheiros usando streams. O capítulo dedicado às streams explica bastante bem o funcionamento destas e apresenta até uma listagem e explicação de diversos tipos de classes existentes, quer para escrita/leitura de caracteres quer de objectos. No entanto, e apesar de fazer bastante referência às excepções que devem ser tratadas nestes métodos, a meu ver, não deixa muito claro como deve ser codificado o lançamento e tratamento de excepções nestes casos, uma vez que apresenta métodos escritos de uma dada forma que, em caso de ocorrer uma excepção, deixam recursos pendentes. Apenas um pormenor que me levou a discutir o caso noutros fóruns.
- Apesar de apresentar bastantes exemplos práticos ao longo dos capítulos, que servem para explicar os temas abordados, não existe uma selecção de exercícios para resolução no fim de cada capítulo. Se por um lado esta tarefa pode revelar-se complicada, pois treinar
todos os aspectos apresentados num determinado capítulo é impossível bem como exige que os exercícios sejam de dimensão média/grande (nada comparado com o "Escreva uma função que inverte uma string"), por outro lado o leitor pode sentir-se um pouco "desamparado" no final de cada capítulo, pois falta-lhe um pouco de prática. No entanto, com os recursos que a Internet disponibiliza hoje em dia, este ponto praticamente não se faz sentir, tudo depende da vontade de aprender e da curiosidade do leitor. Aliás, o próprio autor faz referência ao facto de que a leitura do livro deve ser acompanhada da resolução de exercícios, tarefa deixada a cargo do leitor. De modo que não acho que isto seja uma falha no verdadeiro sentido da palavra, apenas quis registar este facto.
Em conclusão: É um livro bom para quem quer realmente perceber como funciona a
POO com
JAVA5 (e não apenas ver como se faz para colar a cuspe). Exige que o leitor mantenha a curiosidade e não desmotive (e que tenha paciência), pois os capítulos são extensos, facto originado pela diferente forma de pensar e organizar as coisas impostas pela POO (bem como os demais pormenores da linguagem JAVA5) aplicada de acordo com as boas regras da Engenharia de Software. Tudo isto com a vantagem de ser em Português. Por mim, é
recomendado.
Podem ler outras opiniões sobre o livro
aqui bem como ler uma outra análise feita a um livro semelhante escrito pelo mesmo autor, acerca da linguagem JAVA2 (ultrapassado portanto), que permite reter algumas ideias. Podem encontrá-la na página 30 da
4ª edição da Revista PROGRAMAR.