Tag Archive for 'j2ee'

Desenvolver… mas com quê ?

Sou programador, atualmente de Java EE, e gosto muito de desenvolver em java. Tanto Web quanto Swing.
Já programei Visual Basic, já me aventurei, de leve, no C/C++, Ruby (on Rails), Python, e até mesmo a antiga PL1 e Cobol….
Cada linguagem me levou a um estilo de programar diferente. Cada linguagem com suas caratrísticas, prós e contras…
Por exemplo:
VB: Programação visual, de janelas, orientado a eventos e somente Windows, cheio de DLLs para cá, ActiveX para lá, milhares de OCX.. etc…
PL1/Cobol: Programação estrutural, onde o programa começa e termina e deu. Você controla tudo o que deve ser feito, e da maneira como deve ser feito… deve ser bem escrito e formatado para que possa ser compilado.
C/C++: Nao preciso falar muito neh, bela linguagem de alto nivel, mas que pode nos levar à imensidão dos 0/1 da nossa maquina …
Ruby/Python: Linguagens mais novas, e de mais alto nivel, com muitos facilitadores para tudo, python ainda tem escopo definido por identação de código (Pode?). Pode ser feito muita coisa boa com elas também… São Orientadas a Objeto.
Java: Linguagem que nos dá segurança, está fortemente ativa no mercado de Web e é fraca para programação visual, tem muitos frameworks prontos, e acho ela bem flexivel, é Orientada a Objetos.

Mas diferenças entra linguagens não é o foco do post, mas sim como escolher com o que programar para resolver o meu problema.

Acho que cada um sabe do seu problema melhor do que ninguém. Por exemplo, no foco da web ( que é onde estou neste momento ): devo utilizar uma linguagem/framework que me dê mais agilidade mas que me deixe muito fixo em uma linha de programação, ou uma linguagem/framework que me deixe livre para criar da maneira que quero, mas porém isto vai custar um tempo…

Bom, o que eu gosto de fazer, é seguir alguns padrões de desenvolvimento, que sempre é muito bom, pois facilita o entendimento da infraestrutura do aplicativo, e depois do ponta-pé inicial, torna-se mais fácil a manutenção do software, justamente popr seguir um padrão. Gosto de utilizar frameworks, pois também seguem algum tipo de padrão, assim , procuro definir com que frameworks meu software será desenvolvido, antes mesmo de iniciar a produzí-lo, e traçar uma linha de raciocínio, desenvolvendo-a até criar uma gama de processos mais maduros.

Mas qual framework utilizar ?
Escolha o fm que lhe dê as features necessárias, sem degringolar demais seu aplicativo. Ou seja, um fm que não tenha milhões de coisas a mais do que você precisa, honerando assim o poder de processamente, nem um fm que tenha somente a metade das coisas ou que gere muito trabalho a mais para conseguir montar o processo que você necessita. Ou seja, você deve avaliar os vários fm que tem para cada tipo de software e para cada tipo de atividade, e ver qual mais se encaixa ajustadamente eu seu propósito. Lembre-se: A melhor ferramenta é aquela que faz o que você precisa !

Aqui cito alguns frameworks que conheço, tanto de ter trabalhado já ou só de ouvir falar pela internet, e aqui, estou falando somente os poucos que conheço para desenvolvimento web, mas existem milhares de fm para todos os fins.
PS: Caso queiram citar mais alguns, de qq linguagem, por favor, comemtem abaixo que completo o post…
Java:
Spring Framework – Framework Completo para uma aplicação Web e não Web. Todo modular.
Struts – Framwork MVC para web somente.
Ruby:
Ruby on Rails – Conhecidíssimo pela sua agilidade para desenvolver, e média curva de aprendizado.
Python
Django – Não sei se é somente um framework, acho que na realidade é mais do que isto, é todo um ambiente de desenvolvimento de execução que também gera muita agilidade.

Mas qual padrão seguir ?
Padrões de tracegp.com.br”target=”_blank”rel=”external”title=”Sistema executivo de governança e gestão de projetos” >projeto e de desenvolvimento são somente definições que nos ajudam a organizar melhor nosso projeto e nosso software ( neste caso ), sendo assim, se você for trabalhar com uma equipe média ou grande, e for desenvolver um software que vai ser necessário uma manutenção posterior, ou um contínuo desenvolvimento, é sempre bom seguir os padrões de dedsenvolvimento do mercado, onde temos muitos que são já bastante extressados e assim possuem uma maturidade importante em seus processos e definições. Agora, se você vai fazer um software pequeno, curto, com poucos pessoas ( você mais 2 ou 3 ) e que não tem tanta complexididade, talvez seja mais demorado aplicar todo um padrão de desenvolvimento de mercado emcima deste software, do que apenas definí-lo de uma forma clara, e desenvolve-lo assim que possivel, gerando assim mais produtividade.

Todas estas são opiniões pessoais.

Struts2

Muitos não gostam do Struts, têm falado mal dele e tal…

Eu , desde que comecei a trabalhar com Struts jah gostei do fluxo que ele gerava, do método de programação que é colocado, claro , contando que eu nao sou um programador especializado de verdade em Struts, tampouco em outros frameworks, mas sei com funcionam em geral.

Depois conheci o Spring, que vi o que realmente é um framework completo, com tudo necessário para se criar uma bela aplicação J2EE com segurança e robustez…

Mas a alguns dias dei uma lida no site so Struts 2, o que achei bem interessante. Sendo que nos últimos tempos, eu vinha trabalhando com o MVC Struts e por trás o Spring para gerenciamento. O que inclusive é colocado num tutorial “do yourself” da pagina do Struts2 mesmo, e isto eu achei muito bom.

Isto me levou a prestar mais atenção no Struts 2.
E Lendo  apagina inicial vi algumas características que achei realmente legais:

  • Build!
    • Flexible Cancel Buttons – Go directly to a different action on cancel.
    • First-class AJAX support – Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags.
    • Easy Spring integration – Inject dependencies into Actions using Spring without glue code or red tape. (Plexus support also available.)
    • Enhanced Results – Do more with speciality results for JasperReports, JFreeChart, Action chaining, and file downloading.
    • POJO forms – No more ActionForms! Use any JavaBean to capture form input or put properties directly on an Action class. Use both binary and String properties!
    • POJO Actions – Use any class as an Action class — even the interface is optional!
  • Deploy!
    • Easy plugins – Add framework extensions by dropping in a JAR. No manual configuration required! Bundled plugins add support for JavaServer Faces, JasperReports, JFreeChart, Tiles, and more …
  • Maintain!
    • Intelligent Defaults – Skip obvious and redundant settings. Most framework configuration elements have a default value that we can set and forget. Say it once!
    • Easy-to-customize controller – Customize the request handling per action, if desired. Struts2 only does what you want it to do!

Entre outras…

Mas como disse não sou especializado em Struts, entao nao sei se estas features jah existiam ( mesmo de outra forma ) no Struts 1, ou se realmente isto melhorou o framework, mas para mim isto ficou bem claro e me deixou mais livre para codificar, conforme desejo, meu fluxo de paginas/acions/ajax.

Tenho também utilizado bastante o Ext para desenvolvimento de interfaces, deixando o visual muito bonito, atraente e rápido, com várias intervenções Ajax pela tela, o que faz com que seja trazido somente o dado necessário no momento necessário, e me pareceu que será mais fácil com o Struts 2, sendo que eu tenho liberdade de definição de Actions (em qq classe), Forms (em qq pojo) e maior integração do fw MVC com o Ajax, e levando em consideração também todo meu conhecimento sobre Struts que já adquiri.

É isto ai, esta foi minha primeira impressão sobre o Struts 2, e agora estou desenvolvento um projeto, e postarei minhas experiências por aqui ..

Deixem seu comentário..

Um abraço !

Spring – applicationContext.xml / -servlet.xml

Achei a minha resposta tão esperada:

  • /WEB-INF/applicationContext.xml allows you to configure your beans, or to indicate the context of your application. This is the place where you define your business logic beans, resources, and all other beans that are not directly related to the web tier.
  • /WEB-INF/[servlet-name]-servlet.xml is used to configure the web tier and view resolvers, controllers, validators, and all other beans that you need in the MVC framework. The [servlet-name] refers to the name of the Spring’s dispatcher servlet defined in the web.xml deployment descriptor.

Ou seja:

  • /WEB-INF/applicationContext.xml permite a você configurar seus beans, especificar o contexto da aplicação. É o lugar onde você define seus beans lógicos, resources e todos os outros beans que nao estão diretamente relacionados à camada web.
  • /WEB-INF/[servlet-name]-servlet.xml é usado para configurar a camada web , view resolvers , controllers, validators e todos os outros beans que você precisa para o MVC. O [servlet-name] refere-se ao nome que do Spring Dispatcher Servlet definido no arquivo web.xml.

Spring Framework – A real framework !

Conversando com um colega de trabalho, obtive algumas informações sobre o Spring Framework.
Dentre estas informações, estavam uma que dizia que este fw era o que realmente podemos chamar de framework, onde o mesmo tinha tudo que
necessitávamos para construir uma aplicação do zero facil e rapidamente.
Ou seja, com o Spring fw, temos muitas facilidades, desde nossas classes de negocio, transações, classes de acesso a dados, model-view-controller, etc…
Podemos ler aqui (http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25) com mais detalhes o que o Spring tem a nos oferecer.

Eu sinceramente estou começando agora a aprender a trabalhar com Spring, mas já estou fascinado com tamanha produtividade oferecida por este fw.
E ainda mais quando entro no seu site, na seção de documentação e me deparo com uma documentação vasta, detalhada e muito bem organizada de
todas as suas funcionalidades e características ( http://static.springframework.org/spring/docs/2.5.x/reference/index.html ).

Na real, eu chequei até aqui através do aprendizado do JPA (Java Persistence API), e fiquei bem contente.

Agora, para complpetar o desenvolvimento de uma bela aplicação, basta aprender a programar o ext (http://www.extjs.com), uma biblioteca
java script que é muito completa, para objetos visuais, efeitos de páginas, ajax, e outras cositas mas !

Java j2ee – Teste de Performance

Na empresa onde trabalho, tem clientes que queram atualmente utilizar o Linux como servidor da aplicação J2EE que desenvolvemos, que
atualmente roda em Windows 2003 Server, e nisto acabou entrando a discussão sobre performance do sistema em diferentes SOs.
A aplicação roda sobre JBoss 4.05, acessando banco de dados Oracle XE atualmente, com JDK 1.5.07, JMS, EJB, DAO/DTO, e algumas outras coisas…

Mas me propronho o seguinte:
Criar uma aplicaçãozinha faça crie 10 threads, cada uma com um loop de 1000 escritas em um arquivo ( um arquivo para cada thread ).
Ao iniciar será monitorada a memória consumida, durante o processamento tb, e o tempo total de processamento de todas as thread.
Serão utilizados os SOs:
- Windows XP Professional
- Windows 2003 Server
- Debian Etch
- Suse Enterprise Server
Todos em Virtual Machines, em uma maquina igual , de repente na minha mesmo , um Pentium IV HT 2.8Ghrz com 1Gb de memoria RAM.
Postarei o resultado da 1º e da 2º execução da aplicação em todos os ambientes, todos com o mesmo pacote ( JBoss + Arquivo EAR ).
Aí tiraremos as duvidas quanto a performance de J2EE em Sistemas Operacionais diferente….

Manipulação de Datas em Java

Eu estava com duvidas quanto a isto, e buscando resolver minhas duvidas achei este belo tutorial no Guj sobre como trabalhar com datas no Java.

http://www.guj.com.br/java.tutorial.artigo.8.1.guj

Realmente vale a pena dar uma lida, pq desta maneira se consegue fazer praticamente tudo que é necessário com datas…




Better Tag Cloud