Tenho uma observação a fazer sobre o capítulo “Entendendo o NoSuchMethodError e o ClassLoader hell”.
Às vezes utilizo isso na prática. Algumas versões de biblioteca ficam no lib (comum a todos os projetos), porém de repente algum projeto precisa de uma versão diferente da biblioteca, daí nesse projeto vai a versão que ele precisa pra funcionar. Pelo que entendi lendo o capítulo do livro isso não seria possível, ou pelo menos seria muito arriscado, mas na prática (pelo menos nos containers Web que conheço) não é assim que funciona. O Classloader da aplicação sempre irá procurar a classe nos repositórios locais, com algumas exceções como na citação acima, e somente depois delegará para os outros classloaders.
Infelizmente o problema com a variavel de ambiente CLASSPATH é independente do container e de qual versao do container. Sem duvida é bom deixar isso claro, e talvez entao so deixar o exemplo da variavel de ambiente, ja que os containers atuais devem todos estar aginda da maneira "correta" (valeria pesquisar). O que acha? Mesmo que todos estejam ok, é bom deixar o alerta.
Fico muito agradecido por um comentario tao detalhado e oportuno como este!
[quote=Paulo Silveira][quote=ranophoenix]
Às vezes utilizo isso na prática. Algumas versões de biblioteca ficam no lib (comum a todos os projetos), porém de repente algum projeto precisa de uma versão diferente da biblioteca, daí nesse projeto vai a versão que ele precisa pra funcionar. Pelo que entendi lendo o capítulo do livro isso não seria possível, ou pelo menos seria muito arriscado, mas na prática (pelo menos nos containers Web que conheço) não é assim que funciona. O Classloader da aplicação sempre irá procurar a classe nos repositórios locais, com algumas exceções como na citação acima, e somente depois delegará para os outros classloaders.
[/quote]
Infelizmente o problema com a variavel de ambiente CLASSPATH é independente do container e de qual versao do container. Sem duvida é bom deixar isso claro, e talvez entao so deixar o exemplo da variavel de ambiente, ja que os containers atuais devem todos estar aginda da maneira "correta" (valeria pesquisar). O que acha? Mesmo que todos estejam ok, é bom deixar o alerta.
Fico muito agradecido por um comentario tao detalhado e oportuno como este![/quote]
Opa, Paulo! É um prazer enorme poder contribuir de alguma forma com um livro que está sendo feito por profissionais tão gabaritados e comprometidos. Em relação ao CLASSPATH ainda não fiz o teste e nem pesquisei para ver como os “novos” containers se comportam, mas vou fazer essa experiência assim que tiver um tempinho.
[quote=Paulo Silveira]
Nao se esqueca que o titulo do livro possui a palavra design, nao só arquitetura, e damos bastante atencao a isso tambem. Bem que “GUJ 10 anos” tambem seria bom ;).
Pessoal, fica aqui tambem o agradecimento a todos que tem enviado email pro autores@arquiteturajava.com.br com as correções, sugestões e idéias para outros tópicos. O feedback tem sido grande.[/quote]
Apesar de estar aqui a mais ou menos 1 ano, eu diria que esse livro é um grande Trunfo aqui para todos, e é uma iniciativa da mais colaboradora que já se pensou em fazer, ao tema tanto concordo com o Sergio Taborda quanto Concordo com a equipa da Caelum, em tese todos aqui contribuimos para esse fruto que na certa e uma observação todos aqui.Espero que atenda as expectativas e seja um sucesso em vendas também.
Primeiramente gostaria de parabenizá-los pela iniciativa. É sempre bom ver que existem pessoas dispostas e principalmente interessadas a ajudar a comunidade.
Não sou nenhum expert da língua portuguesa, muito menos um chato que reclama de tudo, mas, como vocês pediram por sugestões e críticas, me achei no direito de lhes informar que seria interessante dar uma boa revisão no texto, pois existem alguns errinhos de concordância e de pontuação em algumas frases. Nada de grave, mas como é um livro que com certeza será de grande valia para a comunidade, acredito que seja algo que mereça ser revisto.
O fim dos capítulos parece coito interrompido, “Vamos falar mais disso nos próximos capítulos”.
A bibliografia tem um monte de links, e como sou preguiçoso, é chato copiar e colar eles Poderia deixá-los vivos na versão online, ou deixá-los em html em alguma parte do site?
Primeiramente gostaria de parabenizá-los pela iniciativa. É sempre bom ver que existem pessoas dispostas e principalmente interessadas a ajudar a comunidade.
Não sou nenhum expert da língua portuguesa, muito menos um chato que reclama de tudo, mas, como vocês pediram por sugestões e críticas, me achei no direito de lhes informar que seria interessante dar uma boa revisão no texto, pois existem alguns errinhos de concordância e de pontuação em algumas frases. Nada de grave, mas como é um livro que com certeza será de grande valia para a comunidade, acredito que seja algo que mereça ser revisto.
Até mais e continuem com o bom trabalho![/quote]
Concordo. Vejam essa frase no mínimo “estranha”:
“Para evitar esse problema, você pode usar um retorno mais genérico para o método,
que contemple diversas implementações possíveis e que force os usuários do método não
dependerem em nada de uma implementação específica.”
Outra:
“Usar interfaces Java é um grande benéfico”. Benéfico é adjetivo (e só). Nesse caso a palavra benefício (substantivo) deveria ser usada.
Outra:
"Se ele usa algum método específico de FileInputStream que
não esteja definido em InputStream, não há o que fazer para desacoplar esse código."
Se ele chegar a um trecho do método que precise chamar um método específico de FileInputStream, isso quer dizer que nesse trecho o programador sabe que o objeto que veio realmente é um FileInputStream, então ele pode fazer o casting. Acho que isso poderia ser mencionado de alguma forma nesse trecho.
sobre os erros de portugues: essa previa a gente lancou por conta mesmo, sem passar pela editora. para versao final do livro a editora tem um revisor que ajudara a gente a atingir uma boa qualidade final nos textos (realmente esses drafts ainda estao com errinhos bobos)
bruno,
a bibliografia precisa ser mais facil de acessar, realmente. a sua ideia de colocar online (e ate colocar o link pra bibliografia online no proprio livro) eh realmente bem interessante, acho que vamos adota-la
e o fim do capitulo referenciando outros capitulos realmente deixa no ar qdo nao tem o livro inteiro
tomara a sensacao de interrupcao passe com o lancamento do livro completo
rod.attack, realmente o maior trabalho nosso esta sendo em resolver essas frases que faltam mais fundamentacao. como estamos mto acostumados com aula (e nada com livro ainda, esse eh o 1o), acabamos resolvendo essas fundamentacoes nas proprias discussoes em aula.
no livro essa fundamentacao precisa ser mais minuciosa mesmo. obrigado pelas dicas, se achar mais coisas, pode mandar!
Gerenciar memória não é simples - Arquitetura e Design de Software Caelum ? 2009/7/17
“Pode-se pensar que o generational copying é ruim porque copia objetos na memóriaao invés de liberá-la, afinal é muito mais rápido liberar um endereço de memóriado que copiar vários bytes entre lugares diferentes”, [color=red]“muito complexo de se entender”
[/color]
Isso só pode ser um conceito novo “Objetos em Nuvens”
Seria engraçado se um dia o pessoal dos EUA tivesse que aprender português (ou requisitassem versões traduzidas, “cheia de erros”) para ler materiais desse tipo :lol:
Imagina um tópico no Java Ranch com o seguinte título: “O’Reilly’s brazilian traductions it’s a crap”… continuando assim, não será muito difícil ehehheeh
Me interessei pelo livro e dei uma olhada no capítulo de IoC (mais tarde olharei os outros).
Achei bacana, só um trecho que eu complementaria:
[quote]Os primeiros frameworks a trabalharem com inversão de controle usavam essas diferentes
táticas para trabalhar com as dependências: Apache Avalon através de service
locators, Spring Framework e XWork através de injeção por setters e Pico Container
através de injeção por construtor.[/quote]
Eu citaria o fato de, hoje em dia, a maioria dos frameworks oferecerem ambas as opções de injeção de dependências (por setters e por construtor). A maneira que está pode levar pessoas que não conhecem os frameworks a escolher um deles sem saber disso.
Gostei da abordagem de utilizar exemplos, acho muito didático. Acho que seria legal também um ou outro diagrama pra ilustrar os exemplos. IoC particularmente fica muito claro se explicado com um diagrama de classes.
Outros Drafts serão lançados antes da versão final do livro? Tenho atenção especial ao tópicos:
Evite herança, favoreça composição.
Prefira a imutabilidade.
Modelo anêmico.
Domain-Driven Design.
Fábricas e o mito do baixo acoplamento.
Camadas e Camadas: a confusão de tiers e layers.
Nem preciso falar que vamos comprar o livro, excelente iniciativa, ficamos na espera.
Paulo, parece que tá bacana.
Uma perguntinha: que software vc usa para montar o livro?Aliás que software vc usa para montar as apostilas da Caelum?Eu tenho um livro aqui que eu comecei a escrever há um tempão, mas nunca terminei principalmente por causa da formatação.Tá tudo em word… :lol:
[quote=Ironlynx]Paulo, parece que tá bacana.
Uma perguntinha: que software vc usa para montar o livro?Aliás que software vc usa para montar as apostilas da Caelum?Eu tenho um livro aqui que eu comecei a escrever há um tempão, mas nunca terminei principalmente por causa da formatação.Tá tudo em word… :lol:[/quote]
Para o livro não sei te informar (que acredito ser escrito através de algum template da editora), mas as apostilas são geradas com o Tubaina.
Ronildo, Pretendemos abrir outros drafts sim antes do lançamento final, só não sabemos ainda quando e quais.
E estamos usando o Tubaina no livro também, só que com um template em latex que nos foi enviado pela editora.
O Tubaina é um projeto que fizémos aqui dentro para nos ajudar a escrever as apostilas. Tem uma sintaxe bem simples mas é baseado em texto puro o que é fenomenal para várias pessoas editarem ao mesmo tempo como é nosso caso. Com o Tubaina comitamos tudo no github e vamos fazendo o merge. Temos até um servidor de integração contínua que monta o pdf pra gente a cada commit.
O Tubaina foi aberto e pode ser usado livremente (embora o maior interesse nele acabe sendo nosso mesmo):
[quote=Daniel Augusto]Bem, novembro já está “aí na esquina”.
Há alguma novidade sobre o lançamento do livro? Acredito que ele está sendo aguardado com ansiedade por muitos desenvolvedores java.
Quando será o lançamento oficial, onde comprar, valor, etc.[/quote]
Oi Daniel!
Estamos trabalhando forte pra lançar logo! Tivémos alguns problemas e acho que vai acabar passando de novembro, mas damos notícias.
Pra “compensar”, vamos abrir mais uns capítulos do livro essa semana