domingo, 24 de julho de 2011

Propondo Interfaces

Gustavo Crivelli
(17/07/2011)

Boa tarde!

Hoje gostaria de compartilhar com vocês os protótipos de interface que desenvolvi no bimestre passado. Depois de analisar diversos sites já existentes, e levando em consideração os seus pontos bons e ruins, eis o que desenvolvi:



Vocês podem notar uma certa semelhança do segundo design com a interface já postada pelo Henrique algum tempo atrás: este é o design escolhido como base para o site da nossa empresa. Já é possível vizualisá-lo aqui.

Isto dito, vamos para a programação!

Agora que todos já sabem o que são e pra que servem as propriedades de acesso básicas do PHP, está na hora de partir para algo ligeiramente mais avançado. Quebrando um pouco a promessa do meu último post, vou explicar aqui o funcionamento das propriedades interface e abstract. Static e final ficam para próxima.

Abstract: Este modificador pode ser utilizado em classes ou métodos, com algumas diferenças. Usando-o em um método, indicamos que este não será desenvolvido na classe em que foi criado; poderemos apenas declarar o seu cabeçalho, e nada mais, pois o resto terá de ser implementado em uma classe herdeira. Um exemplo para ajudar a visualização: em uma classe Animal, temos o método abstract function falar(); Esta classe é então herdada pelas classes Cachorro, Gato e Girafa. Cada uma dessas classes poderá (e precisará) desenvolver dentro de si mesma o método falar. Assim, com o mesmo comando, conseguiremos fazer o cachorro latir, o gato miar e a girafa... fazer seja lá qual for o som que uma girafa faz.

Quando usamos o abstract na declaração de uma classe, o resultado é que não podemos fazer uma instância direta da classe. Ainda podemos declarar métodos, abstratos ou não, e ainda podemos declarar variáveis (na verdade só variáveis do tipo constante), mas tudo isso só verá a luz do dia quando for herdado por outra classe. No exemplo acima, a classe Animal, independentemente dos métodos que contém, deveria ser abstrata: afinal, não é possível criar um "animal" sem que este seja de alguma espécie.

Interface: uma interface é basicamente uma classe que pode conter apenas constantes e cabeçalhos de funções, e nada mais. Desta maneira, uma classe que implemente uma interface terá que desenvolver todos os métodos nela declarados. Pode não parecer muito útil, mas imagine que seja preciso padronizar as chamadas dos métodos de diversas classes distintas, como ocorreu no exemplo acima. Como na classe Animal há apenas métodos abstratos e variáveis constantes, e a própria classe já é abstrata e não pode ser instanciada, podemos muito bem retirar os abstracts e transformá-la de uma vez em uma interface.

Para aqueles que realmente leram esta verdadeira parede de texto, espero que tenham compreendido o que são os atributos abstract e interface e entendido as suas semelhanças e diferenças. Se tudo der certo, na semana que vem terminarei este guia falando sobre as propriedades Final e Static. Não percam!


Gustavo Crivelli
(24/07/2011)

sexta-feira, 22 de julho de 2011

Volta às aulas, com estudo de interfaces.

Henrique Guimarães
(22/07/2011)

Boa tarde,


A folga está acabando, e daqui a pouco já estamos de volta às aulas. O mesmo pode se dizer ao projeto, já que nessas férias só foram feitos detalhes de design, nesses bimestres que se seguem a programação será o foco do desenvolvimento, não podendo esquecer é claro, da criação das pastas, que consome uma boa parte do nosso tempo.
Mas existe algo que devíamos ter postado antes, porém nos esquecemos do estudo das interfaces de outros sites parecidos com o nosso. Então colocar algumas imagens de sites e as suas características para explicarmos melhor, o porque desenvolvemos o EscamboNet, do jeito que ele é.


trocajogo.uol.com.br
Prós:
  • Design simples, com pouco texto e bastante imagem, sendo assim, se torna direto na apresentação dos produtos;
  • Cores bem definidas e não cansativas, que facilitam a leitura do texto;
  • Fácil acesso a sua conta, com um sistema simples de cadastro;
  • Excelente sistema de busca de usuário.

Contras:
Prós:
  • Design simples, sem muitas cores ou imagens grandes;
  • Fácil acesso ao cadastro de um produto ou usuário;
  • Produtos com várias imagens e descrições já na página de pesquisa.

Contras:
  • Texto substitui botões, o que deixa o layout um pouco “pesado” e confuso;
  • Diversas classificações para diferentes produtos, o que dificulta na busca de certos produtos;
  • Produtos com várias imagens e descrições já na página de pesquisa.

segunda-feira, 18 de julho de 2011

De volta ao trabalho...

Boa noite,


   As férias estão acabando, isso significa que o Grupo Emporos vai retomar suas atividades com força total. A programação finalmente será começada e o sistema passará a ganhar um novo aspecto.
   Fora isso, esta semana analisei o DFD e fiz algumas propostas de alterações no nível de administradores, a qual irei propor aos outros membros do grupo segunda-feira que vem. Enquanto isso estou testando novas IDEs de PHP para agilizar ainda mais nossa programação.
    Pra quem não conhece uma IDE é um ambiente de desenvolvimento integrado, que apresenta geralmente as funções de compilação, debug e sintaxe da linguagem (destaque dos comandos, exemplos de funções...). No caso do PHP, como é uma linguagem interpretada pelo servidor, sua IDE não tem compilador, o que pode ser resolvido facilmente utilizando-se um programa para emular este servidor. Nós do Grupo Emporos utilizamos o BitNami WAPPStack que facilita bastante nosso trabalho, evitando toda vez ter que colocar alguma página para teste no servidor.
    Por enquanto é isto. Você já puderam perceber que o assunto do blog passou de um tanto burocrático para a parte prática, onde as coisas realmente começam a tomar forma. Fiquem atentos para novos posts e novidades em relação ao EscamboNet.

Luiz Felix
(18/07/2011)

PHP, Cyber-cafés, Imprevistos

Boa noite,

   Como dito no post anterior, eu estou na Estância Turística de Piraju. Logo ao chegar aqui, estava ocorrendo uma festa. Sim, festa. Como toda festa, havia motoristas bebâdos. Ok, vamos ao fato.
   Estava eu andando até a casa do meu avô, quando um destes motoristas, andando a uma alta velocidade, passou por uma poça d'agua. E me encharcou, com a apostila na mão. A apostila ficou imprestável.
   Bom, outro porém é que onde estou não há internet e também não há computadores, ficando impossibilitado de estudar a linguagem a hora que eu quiser.
   O lado bom da história: Há um cyber-café aqui! Tirando segunda-feira, que seria hoje, eles abrem todas as manhãs! Assim eu vou conseguir estudar a linguagem PHP e finalmente, depois de uma impressão em vão, imprimir e estudar onde estou hospedando.
   Ah, e claro. Segunda-feira é o retorno das aulas, onde retomaremos as principais atividades do projeto.
   
Caio Cáceres
(18/07/11) 

domingo, 17 de julho de 2011

Interpretando Interfaces, parte II

Gustavo Crivelli
(17/07/2011)

Boa tarde!

Dando continuação ao meu último post, aqui está o outro site analisado: www.useieenjoei.com.br.


Pontos positivos:
  • O blog em geral possui cores suaves;
  • Os produtos recebem bastante destaque individualmente;
  • Todas as imagens possuem uma tag “alt” (legenda de imagens) com o nome do produto.
Pontos negativos:
  • Banner no cabeçalho ocupa muito espaço;
Agora que isto está fora do caminho, vou, extendendo o post do Leão, falar um pouco sobre propriedades de restrição de acesso. São palavras-chave que, inseridas no contexto da declaração de uma classe, método ou um objeto, irão especificar de que partes do programa estes serão visíveis.
Em PHP, temos três modificadores: public, protected e private.

Public
: a palavra-chave mais aberta. Membros com esta restrição podem ser acessados tanto dentro quanto fora da classe em que são declarados.

Protected: palavra-chave de restrição média. Membros com esta restrição não podem ser acessados livremente fora da classe onde foram criados, exceto por classes herdeiras.

Private: palavra-chave de maior proteção. Membros com esta restrição não podem ser acessados fora da classe em que foram criados, nem mesmo por classes herdeiras. Assim, qualquer membro private de uma classe só poderá ser manipulado através de algum método que o utilize.


Só não me perguntem o que aquele cara dormindo no banco representa.

Espero que tenham consseguido captar a essência destas propriedades. Fiquem ligados para a continuação deste mini-guia, onde explicaremos mais alguns conceitos essenciais como Abstract, Final e Static. Imperdível!

Gustavo Crivelli
(17/07/2011)


sexta-feira, 15 de julho de 2011

Estudo PHP

Bom dia,

Escolhemos PHP, porque além de ter a possibilidade de ser utilizada em Programação Orientada a Objetos, possui atualmente grande poder e abrangência na área de informática, oferecendo enorme riqueza de recursos e trabalhando com facilidade no banco de dados PostgreSQL (banco que utilizaremos no nosso projeto escambonet)
Conceitos essenciais de POO:
   Uma classe é basicamente um pedaço de software que contem:
     -----Atributos (dados)
     -----Métodos (funções)
   Um Objeto representa uma coisa física, tangível, uma idéia ou conceito. Um objeto é uma instância de uma classe.
   Para utilizarmos uma classe, usamos uma estrutura similar a: CaixaEletronico::limiteDeSaques() por exemplo. Nesse caso entramos na classe CaixaEletronico e utilizamos o método limiteDeSaques.


Guilherme Leão
(15/07/2011)

quarta-feira, 13 de julho de 2011

Um post não relacionado com nossas férias

Boa tarde,

Vocês já devem ter percebido que estamos de férias e que o desenvolvimento do projeto deu uma diminuída, pois toda semana quase todos os integrantes falam sobre a mesma coisa: férias. Então hoje tenho uma notícia diferente: o nosso site continua sendo desenvolvido. Enquanto os outros estudam PHP, eu, responsável pelo design, voltei a desenvolver o nosso site, por enquanto apenas a tela de login.
Agora sobre o site da nossa empresa que eu falei no último post: o Guilherme havia falado de problemas com a pasta do bimestre passado, mas eu e o Gustavo conseguimos encontrá-la, e já está a disposição para download no nosso site, que por sinal, já está terminado e online no mesmo endereço (www.grupoemporos.com.br).


Henrique
(13/07/2011)