Objota O mundo orientado a objetos

Ferramentas de Desenvolvimento Web

Posted on janeiro 24, 2011

Posted by Rodrigo Ireno

Olá desenvolvedores! Neste artigo vou abordar um assunto que é de grande interesse para quem está começando. Com tantas opções, variações e versões ( :S quanto “ões”! ). Em fim. É exatamente isso que deixa muita gente confusa na hora de escolher uma IDE.

Vou listar aqui algumas IDE’s que usei e dizer algumas vantagens e desvangens. Não pretendo fazer um a análise profunda, por tanto se tiver algo a acrescentar fique a vontade, comente sua experiência!

Vamos começar!

EditPlus


Este cara é um editor peso pena. Ele é bem simples não possui recursos de auto-completar, é praticamente um bloco de notas coloridos. Porém se você tem pressa com projetos online, creio que não exista mais rápido para salvar via ftp, já testei e é muito veloz. Mas tome cuidado, já ouvi alguns relatos de amigos que perderão arquivos inteiros por causa de alguns bugs. Isso porque (não sei se exatamente a versão) ele não cria um arquivo temporário para salvar via FTP (o que deveria ser de praxe), ele vai direto no arquivo. Então já sabe, se ele começar a ficar lento ou der algum pau no meio do processo de salvamento do seu arquivo, seja precavido e faça você mesmo uma cópia local do arquivo pode ser no bloco de notas mesmo.

NuSphere – PhpED


Esta é com certeza uma das melhores, para desenvolvimento web. É veloz para trabalhos via ftp, e possui uma vasta biblioteca com funções de auto-completar. Até hoje não encontrei grandes problemas nesta IDE, além do fato de ser pago L, mas fazer o que. Com relação à velocidade da troca via FTP, digamos que é um pouco mais lento que o EditPlus. Outra coisa muito bacana a se destacar é que ela dá suporte nativo ao Smarty Template.

PHP Eclipse


Um eclipse para edição de html, css, javascript, etc. Porém o que me deixa intrigado é que nem se quer as funções nativas do php ele destaca no código L. Totalmente sem noção! Tem suporte nativo para FTP. Auto-completa classes que você já criou, e uma grande vantagem, ele pode ser estendido com o uso de plugins e isso pode desbancar muita gente.

ZendStudio


Um eclipse super tunado, feito pela própria empresa que mantém o projeto PHP. É uma ótima IDE para os mais diversos projetos. Com o maravilhoso comando Generate Getters and Setters. Uma vez que você abriu um arquivo de uma classe e trabalhou nela, ele reconhece seus métodos e atributos e completa quando você está digitando. Claro que dá suporte a seu próprio framework zend. Porém é feito em java, por tanto é um pouco lento trabalhar com ele em projetos online via FTP. E quanto à licença, é gratuito para testar por cerca de um mês ou dois, depois deste prazo algumas funcionalidades são bloqueadas.

Aptana Studio


Quanto a esta IDE, não tenho tanto a dizer, pois comecei a utilizá-la recentemente. Então aqui vai um trecho de um artigo sobre Aptana escrito pelo Rodrigo Araújo do site codigofonte:

(...) Aptana Studio é um IDE de desenvolvimento para aplicações da web 2.0, gratuito, código livre, com suporte Ajax, PHP, Ruby on Rails, Adobe Air, iPhone, etc. Com Aptana se facilita em desenvolvimento integrado de Ajax com as tecnologías emergentes. (...)

Resumindo, estas são algumas das características principais de Aptana Studio:

  • Ajudas visuais para a escritura de scripts em diversos linguagens, como colorido e auto-escritura do código, ajudas contextuais de referência à medida que se escreve, etc.
  • Visualização de erros de sintaxe à medida que se escreve.
  • Suporte para fazer FTP a servidores remotos, com ferramentas para sincronização.
  • Debug em Firefox (Debug Internet Explorer também com a versão Profissional)
  • Bibliotecas de funções em Javascript populares em Ajax/Javascript para utilizar nos projetos.
  • Exemplos já criados para começar a conhecer as possibilidades de desenvolvimento rapidamente.
  • Pré-visualização de estilos CSS com o editor CSS.
  • Extensível a partir de plug-ins que pode criar Aptana ou outras empresas e ferramentas para estar a par de qualquer nova adição.
  • Extensível por Javascript. Os usuários podem escrever scripts para realizar ações e macros.
  • Os Snippets permitem inserir fragmentos de texto que se utilizam muitas vezes.

(...)

Então é isso! Espero que eu tenha ajudado um pouco você a se decidir a qual IDE utilizar. Pois há quem diga que quem é bom faz no bloco de notas. E é mesmo isso é verdade, o cara realmente pode fazer. Porém quando ele tiver uma classe com 50 atributos e tiver que fazer métodos get e set para cada um... vamos ver quem vai ser o doido de fazer num bloco de notas rs...

Se estiverem de bom humor comente um pouco de sua experiência. Pois eu mesmo até hoje não utilizei todos os recursos destas IDE’s, somente o essencial.

Construindo uma classe

Posted on junho 29, 2010

Posted by Rodrigo Ireno

Vamos iniciar este artigo fazendo um link com o anterior que falava sobre abstração e modularização.  Pois bem, quanto à modularização podemos dizer que a idéia é transformar um problema “grande” em vários pequenos. Assim fica mais fácil você se concentrar em um problema de cada vez...  E uma vez resolvidos passo a passo, os pequenos, você irá sanar o problema maior. Já quando se fala de abstração, estamos falando do “ato” que se realiza para construir uma classe. Vamos construir uma classe simples neste artigo, pode até ser com o bloco de notas. Porém, se quiserem já começar a utilizar uma IDE, dou todo o apoio. Aconselho a começar pela IDE JGrasp. Para os interessados segue:

(A ordem de instalação é importante, primeiro o JDK e depois a IDE)

1° - baixem o JDK – instalem. Não tem segredo o assistente de instalação fará tudo por vocês.

2º - baixem a IDE JGrasp – tem um link para download na barra lateral deste blog em “links úteis”. Esse também não tem segredo algum.

Bom para quem já tem tudo certinho funcionando, vamos começar a construção da classe. Primeiramente vamos lembrar o que é uma classe. Uma classe é uma entidade lógica que representa um objeto com suas ações e características, nem sempre um objeto é visível como em outras formas de desenvolvimento, como por exemplo ActionScript ou JavaScript.

Vamos então ao nosso objeto. É uma caneta. Quando se fala de caneta sei que existem vários tipos, porém me refiro a uma simples caneta esferográfica. Pois bem, vamos pensar que atributos uma caneta teria. Inicialmente eu diria de cara o atributo COR depois vem mais algum como tamanho: COMPRIMENTO e talvez um teste boleano (verdadeiro ou falso, no caso do Java usa-se as palavras chave true e false) para saber se existe tinta. Bem vamos então escrever a classe com estes atributos:

cor – da caneta
comprimento – em milímetros
temTinta  - verdadeiro ou falso, indica se há tinta na caneta.

Abaixo explicarei mais sobre esta estrutura.


public class Caneta{
private String cor;
private double comprimento;
private boolean temTinta;

// Construtor
public  Caneta(String novaCor, double novoComprimento, boolean novoValorTemTinta ){
cor = novaCor;
comprimento = novoComprimento;
temTinta = novoValorTemTinta;
}

// Métodos de acesso
public String getCor(){
return cor;
}
// (…)

// Métodos modificadores
public void setCor(String novaCor){
cor = novaCor;
}
//(...)
}

A estrutura: public class Caneta{  aqui vem o conteúdo da classe }

Indica que a classe é pública (outras classe podem usá-la) e que seu nome é “Caneta”, detalhe toda classe deve ser nomeada começando com uma letra maiúscula. Dentro das chaves, vai o conteúdo da classe.

Dentro dela são apresentados os seus atributos:


private String cor;
private double comprimento;
private boolean temTinta;

A palavra chave private indica que estes atributos só são visíveis dentro desta classe, e para que outra classe possa utilizar destes atributos é necessário implementar métodos específicos para isso. Veremos adiante. Em seguida vem o tipo do atributo, String indica que o atributo pode armazenar somente caracteres, ex: “ABCDabcd1234” – sempre dentro de aspas duplas. E por último vem o nome do atributo, que deve ser nomeado com letras minúsculas. Isso é considerado uma boa prática de programação.

Exemplo de boa prática de programação está na nomenclatura de seus atributos e variáveis

private String cor;    -    bom
private String Cor;    -   Não aconselhável
private String  nome;  -    bom
private String sobreNome;   -    bom, pois fica visualmente menos agrecivo.
private String SobreNome; - Não aconselhável

O método construtor


// Construtor

public  Caneta(String novaCor, double novoComprimento, boolean novoValorTemTinta ){
cor = novaCor;
comprimento = novoComprimento;
temTinta = novoValorTemTinta;
}

O método construtor é o responsável por inicializar um objeto com seu valor default. Um método construtor pode ter um conteúdo em seu bloco ou não. O bloco abriga as ações a serem executadas pelo método. O bloco é indicado abaixo:


public Caneta(){
//Aqui, entre as chaves,  vem o conteúdo do bloco.
}

O que vem entre seus parênteses, são os chamados parâmetros.
Parâmetros são valores que vem de fora do método para serem usados dentro do método. Neste caso eu estou atribuindo os valores dos parâmetros (valores que vem de fora) aos atributos: cor, comprimento,  temTinta.
veja:

cor = novaCor;

Se  a variável novaCor, que vem como parâmetro, armazena dentro dela o valor “amarelo” seria o mesmo que dizer:

cor  = “amarelo”;

Será mais fácil compreender estes conceitos quando instanciarmos objetos desta classe, porém vamos só tratar de entende-la, mesmo que superficialmente.

Métodos de acesso

// Métodos de acesso
public String getCor(){
return cor;
}

Métodos de acesso servem para acessar o valor de um atributo, por tanto cada atributo tem que ter um método de acesso. Vamos analisar a assinatura deste método. Ele inicia pela palavra chave public, que indica que ele é um método público, ou seja, visível tanto dentro da classe como foram dela. Em seguida vem a palavra String que indica o tipo de valor retornado pelo método. Por último vem o nome do método seguido de parênteses. O bloco é naturalmente indicado por um par de chaves {}. E dentro do bloco é utilizada a palavra chave return que no caso retorna o valor do atributo cor.

obs: Assinatura de um método indica entre outras coisas seu nome e parâmetros que recebe.
public void setCor()   // assinatura
{
//Aqui vem o bloco ou corpo do método
}
Métodos modificadores

// Métodos modificadores
public void setCor(String novaCor){
cor = novaCor;
}

O método modificador basicamente tem a função de modificar o valor de um atributo. Ele recebe um valor como parâmetro e atribui esse novo valor ao atributo. Note que na assinatura do método não é indicado um tipo de retorno, pois quando se usa a palavra chave void indica-se que não existe um valor a ser retornado. Visto que sua função é modificar e não retornar.

Bem caros leitores, por hora é somente isso. Nos próximos artigos veremos como instanciar objetos.