JBoss Seam, Stripes and Hibernate: An Irreverent Look at Java Software Frameworks & RoR JBoss Seam, Stripes e Hibernate: Uma irreverente Olhe para Java Software Frameworks & RoR
What is it with all these frameworks? O que é que com todos estes quadros? Why can’t JBoss Seam or even good ‘ol Hibernate give me a simple HelloWorld example anymore? Por que não JBoss Seam, ou mesmo boa "ol Hibernate me dar um exemplo simples HelloWorld anymore?
Also have you noticed how complex it is to setup the whole JBoss Seam in the first place? Além disso você tem notado como complexa que é a configuração de todo o JBoss Seam, em primeiro lugar?
I am a simple person and Stripes looks much simpler. Eu sou uma pessoa simples e Stripes parece muito mais simples. They also have a HelloWorld or Calculator, an absolutely simple example which you can build upon and play with. Eles também têm uma calculadora ou HelloWorld, absolutamente um exemplo simples que você pode criar em cima e jogar. Also note how the examples are built without database requirement to setup. Observe também a forma como os exemplos dados são construídos sem exigência de configuração. It took me about 5 minutes to setup and run the first example. Levei cerca de 5 minutos para configuração e execute o primeiro exemplo. If I were to judge a software solely by its documentation, JBoss Seam fails. Se eu fosse julgar um software unicamente por sua documentação, JBoss Seam falhar.
I dabbled with Hibernate before. Eu dabbled com Hibernate antes. Now I need to wet my feet again and I remembered an old question. Agora eu preciso me meus pés molhados novamente e eu lembrar uma velha questão. Why in the world did they have to develop a query language like SQL? Porque no mundo que eles têm de desenvolver uma consulta como a linguagem SQL? Why not SQL? Porque não SQL?
The problem with Seam or Hibernate type documentation is that they are not organized with readers in mind, they don’t take the readers step by step into the labyrinth of the mess they have created wonderful software they have created. O problema com Seam tipo de documentação ou Hibernate é que eles não estão organizados com leitores em mente, eles não levam o leitor passo a passo para o labirinto da bagunça que têm criado maravilhoso software eles próprios criaram.
Reading each paragraph convinces you that the author was in real hurry , like in the last throes of death, while he was writing these chapters. Leitura cada parágrafo convence-lo de que o autor estava em reais pressa, como na última vias de morte, enquanto ele estava escrevendo estes capítulos. It makes such chapters almost humanly impossible to understand without feeling absolute disgust and revulsion about software development in general. Isso torna esses capítulos quase humanamente impossível de compreender, sem sentimento absoluta repulsa e revolta sobre desenvolvimento de software em geral. They make development a chore, a never-ending horror story. Eles fazem um desenvolvimento chore, uma história de horror não ter fim. Everything and their great-anchestors are crammed into these chapters. Tudo e sua grande-anchestors estão cheios para estes capítulos.
The only purpose they serve is to convince the readers to cough up and buy their books. O único objectivo é que elas servem para convencer os leitores a tosse e até comprar os seus livros.
Do you know why RoR flourish? Sabe por RoR prosperar? Not because they have something great or convoluted. Não porque eles têm algo grande ou complexa. It is because one fine guy has taken the time to create a framework which makes it simpler to develop applications and not make it even more complex than the problem it solves. É pois uma multa cara tem tomado o tempo para criar um quadro que torna mais simples para desenvolver aplicações e não torná-la ainda mais complexa do que resolve o problema.
Hibernate and Seams team should read RoR and Stripes documentation before they embark on a massive rewrite of their tomes. Hibernate equipa Seams e devem ler e RoR Stripes documentação antes de ela embarcar em um maciço de reescrever sua tomes.
Even PHP Manual is a tome but a very readable tome. Mesmo PHP Manual é uma forma muito legível mas tomo tomo. Tomes don’t have to be PITA. Tomes não têm de ser Pita.
One drawback with Stripes documentation is that it is still minimal. Um inconveniente é que a documentação Stripes ainda é mínima. Tag library javadoc doesn’t substitute for documentation. Tag biblioteca javadoc não substitui a documentação.
All in all I highly recommend Stripes framework. Todos em tudo que eu recomendo altamente Stripes quadro. It solves only half of the puzzle which RoR solves fully. Ela resolve apenas metade do puzzle que RoR resolve totalmente. However it does it very well, even better than RoR. No entanto ela faz isso muito bem, até melhor do que RoR.
With the other half completed, RoR will finally stop roaring so much Com a outra metade concluída, RoR vai finalmente parar tão exuberantes ![]()
To All Framework Authors: Please for the love of whoever you love take the effort to make something simple and elegant. Autores-Quadro para Todos: Por favor, por amor de quem você gosta assumir o esforço de fazer algo simples e elegante. And please spend twice as much time writing documentation which are for human consumption. E, por favor gastam duas vezes mais tempo escrevendo documentação que são para o consumo humano. Please read K&R, PHP Manual etc. to get a hang on writing easy to understand and interesting documents. Por favor, leia K & R, etc PHP Manual para obter uma pendurar na escrita de fácil compreensão e documentos interessantes.
BTW: Hibernate with Annotation has a nice thing going, if only they knew how to document clearly. BTW: Hibernate com Anotação tem uma coisa boa acontecendo, se só eles sabiam claramente a forma de documento.
If there is one thing I really hate about today’s java software frameworks, it is their documentation. Se há uma coisa que eu realmente detesto cerca de hoje java software quadros, é sua documentação. The bottomline is framework must make our life simpler. O quadro bottomline é preciso tornar a nossa vida mais simples.
To summarize the points that can be addressed while documenting frameworks are. Para resumir os pontos que podem ser abordadas ao mesmo tempo que documentam quadros são.
- Start with a simple example; very simple one Comece com um exemplo simples, muito simples um
- Say a simple story and carry it through the spectrum of broad capabilities Digamos que uma simples história e proceder-lo através do amplo espectro de capacidades
- Now delve in the complex details and exceptions and overrides. Agora mergulhar no complexo detalhes e excepções e se sobrepõe.
- Stop flaunting your expertise. Parar flaunting sua especialização.
In times such as this I head over to bile blog. Em tempos como este eu cabeça durante a bílis blog. He knows the pain which most framework developers (with the exception of Stripes and RoR) don’t. Ele sabe a dor que mais desenvolvedores quadro (com excepção das Fitas e RoR) não.
Update: An article without an example is bland. Update: Um artigo sem um exemplo é branda. So let me illustrate with a simple example from Seam. Por isso, deixem-me ilustrar com um exemplo simples de Seam.
The heading of the chapter is: Chapter 2. O título do capítulo é: Capítulo 2. Seam concepts Seam conceitos
The two core concepts in Seam are the notion of a context and the notion of a component. Os dois conceitos fundamentais na Seam estão a noção de um contexto e na noção de um componente. Components are stateful objects, usually EJBs, and an instance of a component is associated with a context, and given a name in that context. Os componentes são stateful objetos, geralmente EJBs, e um exemplo de um componente está associada a um contexto, e dado um nome nesse contexto. Bijection provides a mechanism for aliasing internal component names (instance variables) to contextual names, allowing component trees to be dynamically assembled, and reassembled by Seam. Bijection prevê um mecanismo para aliasing componente interno nomes (exemplo variáveis) para contextual nomes, permitindo que compõem árvores a serem montados dinamicamente, e reagrupados por Seam.
Read it once, twice and then tell me if you understand what they are talking about. Lê-lo uma vez, duas vezes e, depois, me diga se você entender o que eles estão a falar. To me it reads like incoherent rambling of technical jargon, not a documentation. Para mim lê-lo como incoerente caminhadas de jargão técnico, e não uma documentação.
First “context” in this context is not defined despite being mentioned. Em primeiro lugar "contexto" neste contexto não é definido apesar de ser mencionado. Then they simply include it in a sentence. Em seguida, eles simplesmente incluí-lo em uma frase.
“Components are stateful objects, usually EJBs, and an instance of a component is associated with a context, and given a name in that context.” "Componentes são stateful objetos, geralmente EJBs, e um exemplo de um componente está associada a um contexto, e dado um nome nesse contexto."
I don’t know where to begin. Eu não sei por onde começar. Is it too much to expect a proper and meaningful yet simple sentence? É muito bom a esperar uma frase simples e significativa ainda?
“Bijection provides a mechanism for aliasing internal component names (instance variables) to contextual names, allowing component trees to be dynamically assembled, and reassembled by Seam.” "Bijection prevê um mecanismo para aliasing componente interno nomes (exemplo variáveis) para contextual nomes, permitindo que compõem árvores a serem montados dinamicamente, e reagrupados por Seam".
Why wasn’t “bijection” introduced earlier? Por que não foi "bijection" introduzida mais cedo? What is the context? Qual é o contexto?
This strange sentence probably makes sense only to a Seams developer. Esta estranha frase provavelmente só faz sentido para uma Seams desenvolvedor.
Are they being penalized to write simple meaningful sentences? Eles estão sendo penalizado a escrever frases simples significativa? Have they read their own documentation ever? Acaso, ler os seus próprios documentos nunca? Or have their brain become soft working on frameworks so as not to be able to comprehend the problem? Ou têm seu cérebro se tornar suave a trabalhar em quadros, de modo a não ser capaz de compreender o problema?
This is merely the tip of iceberg. Esta é apenas a ponta do iceberg. Such haphazard, poor quality documentation is all throughout. Tais casual, de má qualidade em toda a documentação é tudo.
Filed under Arquivado em Headline News Headline News , De Java Software Java Software , De PHP , De Web | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | este artigo |
Email this Article E-mail este artigo
You may also like to read Você pode também gosta de ler |




October 25th, 2005 at 10:47 am Outubro 25o, 2005 em 10:47
Interesting, that’s the first time so far I read a global negative feedback on Hibernate Annotations documentation. Interessante, essa é a primeira vez que leio uma medida global feedback negativo sobre Hibernate Anotações documentação. This is usually the opposite, and the opposite on the Hibernate doc as a whole. Este é geralmente o contrário, e ao contrário do Hibernate em doc como um todo. So maybe that’s just you esp since you had to use more than 500 words to express this idea Então, talvez isso é só você esp desde que você tinha que usar mais de 500 palavras para expressar essa idéia
BTW, you should now that writing a book is a real PITA and don’t really feed you. BTW, agora que você deve escrever um livro é um verdadeiro PITA e realmente não se alimentam. So such evil plan just does not make sense. Portanto, tal plano mal apenas não faz sentido.
October 25th, 2005 at 11:58 am Outubro 25o, 2005 em 11:58 am
@Emmanuel @ Emmanuel
It would be great if it is only me, but I seriously doubt it. Seria ótimo se ela é apenas eu, mas estou seriamente dúvidas. The documentation may look great to you as you are possibly immersed in hibernate. A documentação pode olhar muito para você como você é possivelmente imersos em hibernate. But look at it, or ask someone to, from the perspective of an outsider wishing to learn this framework (possibly on a deadline). Mas olhar para ela, ou pedir a alguém, a partir da perspectiva de um outsider que queiram aprender esse quadro (possivelmente em um prazo).
> So maybe that’s just you esp since you had to use more than 500 words to express this idea > Então, talvez isso é só você esp desde que você tinha que usar mais de 500 palavras para expressar essa idéia
I used 500 words that to cover Hibernate (with/without) annotations, Stripes and Seams 500 palavras que eu usei para cobrir Hibernate (com / sem) anotações, Fitas e Seams
I do know Hibernate. Eu sei Hibernate. It is Hibernate with Annotations which is new to me. É Hibernate com anotações que é novo para mim.
> you should now that writing a book is a real PITA and don’t really feed you. > Agora que você deve escrever um livro é um verdadeiro PITA e realmente não se alimentam. So such evil plan just does not make sense. Portanto, tal plano mal apenas não faz sentido.
I am running out of ideas to explain such painfully hard-to-read docs. Estou a ficar sem ideias para explicar essa dolorosa difíceis de ler docs. You can possibly help me to understand why it is so. Você pode eventualmente ajudar-me a compreender porque é que é assim.
The problem is not that they do not contain information. O problema não é que eles não contenham informações. They do. Eles fazem. However it is not clearly presented in a phased manner. No entanto, não é claramente apresentada de forma faseada. They are just crammed haphazardly. Eles são apenas cheios forma anárquica. Please consider revising the docs with some professional technical writers. Por favor, considere a revisão da docs técnico profissional com alguns escritores.
I tried to summarize at the end how I think the docs can be improved. Eu tentei resumir no final docs Penso que a forma como pode ser melhorada. You can probably take a leaf out of Picocontainer’s idea of 1-minute introduction, 2-minute introduction and 5-minute tutorial etc. Você provavelmente pode ter uma folha de Picocontainer ideia da introdução de 1 hora, 2 minutos de introdução e 5 minutos de tutorial etc
Look at it this way. Olhe-se desta forma. You guys have spent lots of time in creating a good framework which have own critical acclaim. Vocês têm lotes de tempo gasto na criação de um quadro positivo que têm própria aclamação crítica. Would’t you like to make it easier for people to understand? Would't você gostaria de tornar mais fácil para as pessoas a compreender?
October 26th, 2005 at 1:03 pm Outubro 26o, 2005 em 1:03 pm
Quality of documentation is something I’ve spend quite a bit of time thinking about over the years, and I think it boils down to something very simple. Qualidade da documentação é algo que eu gastar um bocado de tempo pensando, ao longo dos anos, e eu penso que resume-se a algo muito simples. You have to write documentation that is structured in the manner your reader needs it. Você tem que escrever documentação que está estruturado de forma a que o seu leitor precisa. The easiest way to write documentation is to write it in a structure parallel to your software. A maneira mais fácil de escrever documentação é a escrevê-la em uma estrutura paralela para o seu software. That leads to more of a reference, which is only useful once you already know your way around. Isso conduz a mais de uma referência, o que só é útil quando você já sabe o seu caminho ao redor. And you still have to piece lots of things together when you want to get something done. E você ainda tem a peça lotes de coisas juntos quando você deseja receber algo feito.
My approach these days is to think through the question “what are my users going to be trying to do” and then write documents about that. A minha abordagem destes dias é a pensar através da pergunta "quais são os meus usuários vai ser tentar fazer" e, em seguida, escrever documentos sobre isso. I’m glad you like the results Estou contente por ter gosto de resultados
-Tim Fennell - Tim Fennell
stripes: listras: http://stripes.mc4j.org
October 26th, 2005 at 11:37 pm Oct 26, 2005, 11:37 pm
@Tim @ Tim
> You have to write documentation that is structured in the manner your reader needs it. > Você tem que escrever documentação que está estruturado de forma a que o seu leitor precisa.
I fully agree with you. Concordo plenamente com você. This is also the reason why documentation shouldn’t be created by developers in the first place. Esta é também a razão pela qual documentação não deveriam ser criados por desenvolvedores em primeiro lugar.
Writing good documentation is art. Escrevendo boa documentação é arte. Who are my readers? Que são os meus leitores? What are their use cases? Quais são os seus utilização casos? How easy can I make it for them. Como eu posso fazer isso fácil para elas. As we write use cases for development, I think we should write use cases for documentation too. À medida que vamos escrever uso casos para o desenvolvimento, penso que deveríamos escrever uso casos de documentação também.
@Emmanuel @ Emmanuel
> BTW, you should now that writing a book is a real PITA and don’t really feed you. > BTW, agora que você deve escrever um livro é um verdadeiro PITA e realmente não se alimentam.
Unless you are Mrs. Rowling or Vikram Seth A menos que você seja a Sra. Rowling ou Vikram Seth
February 19th, 2006 at 8:06 pm 19 de fevereiro de 2006 em 8:06 pm
Testimonials Depoimentos
Introduction Since Stripes was released in September 2005 people have been saying a lot of nice things about it. Introdução Desde Stripes foi libertado em setembro de 2005 pessoas foram dizendo um monte de coisas agradáveis sobre isso. This page pulls together some quotes from people who have found Stripes one way or another and, unsolicited,… Esta página reúne algumas citações de pessoas que têm encontrado Stripes uma forma ou de outra, e, não solicitados,…
June 29th, 2006 at 3:47 am 29 de junho de 2006 em 3:47 am
There are some bugs in the Stripes Framework. Existem alguns bugs no Stripes-Quadro.
(i) I have given (i) me deram
@Id SetId(){} and getId(){} methods in Entity Class and extended the in my POJO. SetId @ Id () () e getId () () métodos de Entidade de Classe e ampliou o meu POJO. Stripes is not accessing the methods of its superclass of POJO. Fitas não está acessando os métodos de sua superclasse de POJO.
(ii) I am putting a object in memory using wizard forms. (ii) estou colocando um objeto na memória usando o assistente formas. But it is retaining the values across the pages. Mas está retendo os valores em toda a páginas.
Hope someone give some solution to these problems. Espero que alguém dê alguma solução para estes problemas.
thank, agradeço,
prasd
September 13th, 2006 at 7:02 am 13 de setembro de 2006 em 7:02 am
Stripes Around The Web Fitas em torno da web
Libraries Built With Stripes Reflection Facets Bibliotecas construídas com listras reflexão facetas
November 2nd, 2006 at 6:04 am 2 de novembro, 2006 em 6:04 am
Nice article. Nice artigo. the only thing that i can do is just agree with you. a única coisa que eu posso fazer é só concordo com você. Just read the seam documentation for setting up a simple project. Basta ler a documentação costura para a criação de um projeto simples. Or just test their examples and try to debug them if something goes wrong. Ou apenas testar os seus exemplos e tentam depurar-los, se algo correr mal. Bad documentation is not better than no documentation. Bad documentação não é melhor do que nenhuma documentação. I believe the best way to document a framework is to provide really stupid samples and example projects. Creio que a melhor forma de um documento-quadro é o de fornecer amostras e realmente estúpido exemplo projectos.
December 4th, 2006 at 9:59 am 4 de dezembro de 2006 em 9:59 am
I agree with you on “The problem with Seam or Hibernate type documentation is that they are not organized with readers in mind, they don’t take the readers step by step into the labyrinth of the mess they have created wonderful software they have created.” Concordo com você sobre "O problema com Seam tipo de documentação ou Hibernate é que eles não estão organizados com leitores em mente, eles não levam o leitor passo a passo para o labirinto da bagunça que têm criado maravilhoso software eles próprios criaram. "