terça-feira, 12 de junho de 2012

MVC vs Padrão 3 camadas

Eu tive várias pessoas me perguntam qual é a diferença entre MVC (Model View Controller) e três camadas padrões arquitetônicos. É minha intenção de esclarecer a confusão, comparando os dois modelos lado a lado. Pelo menos em parte, creio que a fonte de algumas das confusões é que ambos têm três camadas distintas ou nódulos em seus respectivos diagramas.Se você olhar cuidadosamente para cada diagrama você verá as associações (conectores de seta) entre as caixas são criados um pouco diferente.
3 Camadas
MVC

3 Camadas

Um sistema de três camadas realmente é constituído por camadas (pensar em camadas do bolo). A camada de interface do usuário tem acesso para a camada de lógica de negócios e a camada de negócios tem acesso à camada de dados. Mas a camada de interface do usuário não pode acessar diretamente a camada de dados. Para que a camada de interface do usuário para acessar os dados, ele deve atravessar a camada de lógica de negócios através de algum tipo de interface. Se ajudar, você poderia pensar de cada camada como um componente grande de baixo acoplamento com regras de projeto rigorosas de acesso entre as camadas.

MVC (Model View Controller)

Em contraste, o padrão MVC, obviamente, não manter um sistema de camadas. O Contoller acessa o Modelo (um repositório de dados em tempo de execução) eo View. The View, em seguida, acessa o Model. Exatamente como faz esse trabalho? O controlador, em última análise é o ponto de decisão lógica. Que tipo de lógica? Normalmente, o controlador irá recuperar, construir ou modificar uma base modelo em alguma ação desencadeada. O controlador, então, decide que é apropriado Ver via alguma lógica interna. Nesse ponto, o controlador vai empurrar o modelo para visualizar.

Nota:. Porque eu principalmente desenvolver com a NET, a Microsoft adotou o padrão MVC para ASP.NET com sua própria plataforma (ver http://www.asp.net/mvc). Você pode certamente utilizar o padrão MVC sem plataforma da Microsoft, mas por que reinventar a roda? Tenho sido muito feliz com ele até agora.

Quando posso escolher qual padrão?

Primeiro que tudo, estes dois padrões são definitivamente não se excluem mutuamente. De fato, em minha experiência, eles são bastante harmonioso. Muitas vezes eu uso uma arquitetura multi-camadas, como uma arquitetura de três camadas, para a estrutura global arquitetônica. Então, dentro da camada de interface do usuário, eu uso MVC. Algo como o diagrama abaixo.



Traduzido de: http://allthingscs.blogspot.com.br/2011/03/mvc-vs-3-tier-pattern.html

quarta-feira, 16 de maio de 2012

Jogando a Bessa #002

Ei pessoal!

Depois de algum tempo volta o #JogandoaBessa, com novidade dos games! E o dessa semana é o Forsaken.

Forsaken é um game de MMORPG (Massively ou Massive Multiplayer Online Role-Playing Game ou Multi massive online Role-Playing Game) traduzindo jogo de interpretação de personagens online e em massa para múltiplos jogadores. São vários pessoas online jogando o mesmo game para evoluir seu personagem.

O jogo foi lançado oficialmente no Brasil dia 15/04 e já possui vários adeptos, inclusive eu. Os requisitos de sistema para rodar o game são básicos.
Retirado de http://levelupgames.uol.com.br/forsaken/guia-do-jogo/requisitos-do-sistema.lhtml
Requisitos de sistema - Forsaken
Eu rodo ele no meu notebook, com as configurações gráficas reduzidas por não possuir placa de video dedicada.
Para quem gosta de joguinhos viciantes Forsaken é um prato cheio, ele tem várias quests (missões) principais, secundárias e especiais e eventos que não deixa o jogo ficar cansativo, o que acontece na maioria dos jogos de MMORPG. Outro ponto interessante é que em Forsaken não é muito difícil de upar (evoluir), porque constantemente você recebe pergaminhos de xp (experiência), que possibilita a evolução do personagem mais rápido. Também tem algumas salas com missões que dão um valor alto de xp.
Além disso tudo, Forsaken tem uma ótima jogabilidade, bons gráficos e diversos mapas que são abertos conforme o personagem vai evoluindo. Já estou no level 42 e até agora só liberaram 3 mapas.


Para começar a jogar basta fazer o download no site do Forsaken.

Resumindo é um ótimo passatempo pra quem gosta do estilo MMORPG.
Então vamos ao jogo!

terça-feira, 24 de abril de 2012

Programas de TV

Ei pessoal!
Como a descrição do blog diz: "Tecnologia e algo mais", hoje vou falar um pouco sobre esse "algo mais".



Muita gente reclama da programação da tv nacional, contudo muitos desses que reclamam não tem curiosidade de mudar de canal. Eu sou daqueles que adoram mudar de canal o tempo todo.
O que acontece bastante na timeline (linha do tempo) do meu facebook é grande número de pessoas que compartilham e curtem criticando o BBB, mas não perde a final!

Há algum tempo venho acompanhando a programação alguns programas da Band e vejo como alternativa para quem critica essa programação, vale ressaltar que grande parte das pessoas que falam sobre a programação costumam assistir geralmente a mesma emissora Globo.
Alguns dos programas que ando assistindo são CQC (não perco um), Pânico na Band (é bom um humor trash de vez enquando) apesar de que em alguns casos acho que eles pegam pesado, e o meu preferido A Liga.

O CQC (Custe o que custar) é um formato muito interessante que trata de diversos assuntos como política, economia, cultura, esporte ou celebridades com humor inteligente. Acho bastante divertido e uma forma atrativa de falar sobre assuntos polêmicos no "tubo infecto de elétrons" ou simplesmente televisão.
Nessa temporada a bagaça, como diria Marcelo Tas, vem alertando constantemente sobre os políticos em que você votará nas próximas eleições e sobre a rigidez da lei seca.
O "pograminha" é exibido todas as segundas às 22:15 e com reprise aos sábados às 23:50. No site (http://cqc.band.com.br/) tem alguns videos e mais sobre o programa.

 
Quadro sobre jogo do bicho


Agora o que eu gosto mesmo é do programa A Liga que passa as terças a partir das 22:15. Recomendo o programa principalmente por tratar de diversos assuntos desde homofobia ao simples sertanejo, com diversos pontos de vista. A liga atualmente possui 5 integrantes: Thaide, Débora Villalba, Lobão, Cazé e Sophia Reis, que vão atrás de várias pessoas diferentes, questionando e domonstrando assuntos do cotidiano.
Resumindo pra mim é o melhor programa da tv aberta nacional.

Programa sobre Tabus

Vocês até pensar que está parecendo propagando para a Band, mas são recomendações, alternativas de programas de tv.
Como sempre aberto a críticas e sugestões.


segunda-feira, 2 de abril de 2012

Padrões de Projeto

Ei pessoal!
Como estou estudando sobre padrões de projetos resolvi fazer um post com uma breve explicação de o que é e como funciona os padrões.
E para descontrair uma tirinha do site Vida de Programador



O que são padrões de projetos?

Os padrões de projeto segundo o Wikipédia
Um Padrão de Projeto de Software ou Padrão de Desenho de Software, também muito conhecido pelo termo original em inglês, Design Pattern, descreve uma solução geral reutilizável para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos. Não é um código final, é uma descrição ou modelo de como resolver o problema do qual trata, que pode ser usada em muitas situações diferentes. Os Padrões de Desenho normalmente definem as relações e interações entre as classes ou objetos, sem especificar os detalhes das classes ou objetos envolvidos, ou seja, estão num nível de generalidade mais alto.

 Um padrão de projeto nomeia, abstrai e identifica os aspectos-chave de uma estrutura de projeto comum para torná-la útil para a criação de um projeto orientado a objetos reutilizável. O padrão de projeto identifica as classes e instâncias participantes, seus papéis, colaborações e a distribuição de responsabilidades. Focaliza em um problema e descreve quando ser aplicado.
Acho que a escolha da linguagem de programação também influencia no uso dos padrões de projetos.
Além disso os padrões de projetos tem as seguintes características:

  • Nome: é usado para identificar o padrão;
  • Intenção: representa o propósito do padrão de projeto;
  • Motivação: descreve um cenário que contém um problema que o padrão irá resolver;
  • Aplicabilidade: descreve as situações nas quais os padrões podem ser aplicados;
  • Estrutura: representação gráfica através de diagramas de classe e seqüência para demonstrar as classes do padrão e a relação entre os objetos;
  • Participantes: entidades que participam do padrão;
  • Colaborações: descreve como as classes envolvidas colaboram para realizar suas tarefas;
  • Conseqüências: avaliação dos resultados que serão obtidos com a aplicação do padrão;
  • Implementação: como o padrão deve ser implementado;
  • Exemplo de código: códigos que ilustram a implementação do padrão;
  • Usos conhecidos: demonstração de casos de sistemas reais em que os padrões foram utilizados;
  • Padrões relacionados: descreve o relacionamento existente entre os padrões.

quarta-feira, 21 de março de 2012

Entrevista Rio de Janeiro!



Ei pessoal!

Como alguns já sabem estive no Rio de Janeiro entre os dias 13 e 18 para fazer uma entrevista de emprego para a vaga de desenvolvedor.net.

Gostaria de compartilhar algumas coisas que ocorreram na entrevista. A entrevista foi dividida em 3 partes classificatórias.

A primeira parte foi uma prova aberta onde com algumas das seguintes questões (não necessariamente nessa ordem)

1- Explique a diferença entre dataset e datareader.
2- Explique a diferença entre thread e process.
3- Qual a saída do código
        static void Main()
        {
            try
            {
                Console.WriteLine("executa try");
                return;
            }
            finally
            {
                Console.WriteLine("executa finaly");
            }
        }


4- Porque a tampa do boeiro é redonda? (quando vi essa até assustei! Sera que isso ta certo mesmo?)

5- Cite 3 padrões de projetos e explique 2.
6- O que é WCF?

e mais 3 perguntas que não me lembro detalhadamente, (tinha mais uma sobre padrões de projeto). Não achei a prova difícil, porém tinha estudado bastante sobre as linguagens de programação html, css, javascript, jquery, C#, ADO.NET.
Não imaginei que teria questões de padrões de projetos e pensei que teria alguma questão para criar um trecho de código.

A segunda parte da entrevista foi realizada com um gestor onde me passou a seguinte questão para ser resolvida.

Tenho 2 salas. Na 1ª sala tenho 3 interruptores e na 2ª tenho uma lâmpada. Você deve me dizer qual interruptor ascende a lâmpada, entretanto, você poderá ir na 2ª sala somente 1 vez e na volta terá que me dizer qual interruptor ascende a lâmpada. Você deve resolver em 5min.

Infelizmente não consegui resolver, então pedi que me desse a resposta.

Você teria que ligar a 1ª lâmpada e esperar 10 min, depois apague a 1ª e ligue a segunda. Agora se você for na 2ª sala você conseguirá responder. Se for o 2º interruptor a lâmpada estará acesa, se estiver apagada e você colocar a mão na lâmpada e ela estiver quente será o 1º interruptor se estiver fria será o 3º.

Depois disso conversamos sobre conhecimentos da linguagem e pretensão salarial e terminamos.
Hoje recebi a resposta de que não fui aprovado no processo seletivo, porém meu currículo fica cadastrado na empresa para vagas futuras.

Conclusão


Tiro de conclusão dessa viagem que as empresas não procuram pessoas que sejam feras na linguagem e sim no processo de criação, ferramentas utilizadas para o seu desenvolvimento, e principalmente na capacidade de entendimento e resolução de problemas.

Agradeço a empresa pela oportunidade. E vamos estudar né!
Se alguem tiver sugestões de livros e material para estudar .NET, WCF e padrões de projeto me envie por e-mail.

quarta-feira, 7 de março de 2012

1ª impressão - windows 8

Olá pessoal!

Entre tantas especulações dessa semana (iPad 3 ou iPad HD, Windows 8, Google play) resolvi falar de uma que está acessível e disponível a todos.

Há alguns dias a microsoft liberou uma previa do que será o windows 8. Essa previa se chama Windows 8 Consumer Preview que pode ser baixada no site da própria microsoft. Entretanto fui fazer o download e percebi que tinha somente um instalador de 5MB, e como não queria fazer alterações no meu windows 7, resolvi procurar a .iso (imagem do dvd de instalação) para poder usar em uma maquina virtual (VirtualBox).


Então encontrei no site da microsoft as .iso's para download nas versões x64 e x86 nos idiomas inglês, chinês, francês, alemão, japonês. Fiz o download da versão x64 inglês, e surpreendentemente, apesar da fraca conexão da minha casa (500k) foi rápido, com médias de velocidade de 68kb/s.


Instalação

 A instalação é bastante semelhante ao do windows 7 e as configurações iniciais bastante simples (mesmo estando em inglês). A primeira surpresa é um peixinho no lugar da velha logo da microsoft.



Outro ponto importante e bastante curioso é a criação de um usuário para logar no windows. Quem já possui uma conta na microsoft, seja ela hotmail, live, bing, pode fazer login com sua conta e a foto já é colocada para seu usuário. Quem não possui pode fazer o cadastro nesta etapa!
Depois de entrar no sistema vem a principal surpresa!


Desapareceu barra de ferramentas, botão iniciar entre outras coisas.
Minha primeira reação foi "Como vou mexer nesse sistema??", a segunda "Esse é um sistema operacional é para tablet" e a terceira "Todo canto que levo o mouse aparece uma função diferente!"

Ainda vou fuçar bastante, instalar alguns aplicativos, mexer um pouco mais no internet explorer 10. Não posso tirar conclusões, ainda mais de uma versão de teste!

O que eu posso adiantar é que são várias mudanças!

quarta-feira, 29 de fevereiro de 2012

1 Ano do #BlogdoBessa


Olá leitores!

Ontem o Blog do Bessa completou 1 ano! Uma data especial 28/02/2011
Quando criei o Blog não imaginei que manteria o blog por 1 ano e também não imaginava a repercussão que ele traria.

Nesse ano foram mais de 15 postagens (um número pequeno, e pretendo que seja maior este ano) mais de 2500 visualizações e alguns comentários, que fizeram o blog evoluir e melhorar a cada dia.

Gostaria de agradecer a todos que leram meus posts, agradecer aos comentários e o auxilio na divulgação do #BlogdoBessa.

Este ano o #BlogdoBessa passará por uma reformulação e terá grandes novidades para os leitores! Aguardem...

Obrigado a todos!

terça-feira, 14 de fevereiro de 2012

Adeus solicitações de aplicativos do facebook!

Olá leitores!!!

Depois de muitos pedidos e de muita gente ajoelhar pra pedindo um novo post do Blog do Bessa (sera?). Vamos ao post!
Já vi muita gente reclamando das malditas solicitações de aplicativos do facebook. Todo dia tem uma pessoal postando: "- Pelo amor de Deus! Parem de me mandar convites do CityVille, FarmVille, tudo Ville e do Meu Calendário" 

Então vamos ver como desativar estas solicitações.
Clique na opção Aplicativos e jogos que fica do lado esquerdo!

Ao entrar, aparecerá todas as solicitações enviadas para você! Então clique no botão fechar.



A opção de fechar só oculta a solicitação. Podemos perceber que o facebook já pergunta o que você quer fazer (esperto esse Zuckerberg!) .  Estou usando como exemplo a solicitação do meu calendário porque é a que recebo todo dia, mas funciona com todos os jogos e aplicativos do face!

A opção Bloquer MeuCalendário - Aniversários? Vai bloquear todas as solicitações enviadas para aquele aplicativo. Então se bloquear o MeuCalendário - Aniversários nunca mais vou receber solicitações DESSE APLICATIVO.

A segunda opção Ignorar todas as solicitações de "nome do infeliz que te mandou a solicitação" irá bloquear as solicitações que aquele pessoa te fizer. Isso só vale apenas para aplicativos e jogos, não interfere em solicitações de amizade, marcações de fotos, entre outras coisas.

Viu como é simples acabar com as chatas solicitações de aplicativos e jogos!
Então vamos parar de reclamar no face e mãos a obra!

quinta-feira, 19 de janeiro de 2012

Formatura Sistemas de Informação

Olá pessoal!!
Desculpem a demora, mas me dei umas férias do blog do bessa
Agora eu volto a postar sobre a minha colação de grau, que acontece hoje (19/01) ás 20h no ginásio do unipam.



Quem não puder comparecer poderá acompanhar pela NTV para quem está em patos de minas ou quem está em outra cidade tem o site que transmite ao vivo as colações no site http://www.ntvnet.com.br/

Ja deixo meus agradecimentos a minha família, amigos, alunos e principalmente os colegas do curso de sistemas de informação que me ajudaram a crescer tanto pessoalmente quanto profissionalmente!


Obrigado!

quinta-feira, 1 de dezembro de 2011

Como explicar o que é programação para sua mãe

Olá pessoal! Encontrei esse artigo no iMasters e achei bem interessante!
É uma forma de explicar aos leigos o que é programação!

Tradutor

Uma maneira de explicar o que fazemos dia sim, dia não, é pensar em nós como tradutores entre o mundo humano e o mundo dos computadores. Como programadores, temos a habilidade duramente conquistada de pegar um problema do espaço humano e traduzi-lo para o espaço computacional. Não somente isso, mas o computador com o qual estamos falando é brilhante, mas também muito, muito pedante. Temos que remover toda a imprecisão do problema humano e deixá-lo extremamente claro para o computador. É como a diferença entre um mapa e um conjunto de direções. Com um mapa, você pode achar seu caminho e precisa somente de um. Um conjunto de direções é bem claro, mas bastante específico, e, se você cometer um erro, o resto das instruções se torna uma bela porcaria. Lidar com um computador é como lidar apenas com conjuntos de direções.
Às vezes, essa tradução é fácil, como pedir para um computador para realizar somas; muitas vezes, muitas e muitas somas complicadas. Mas, em grande parte do tempo, a tradução é muito difícil.
Infelizmente, as coisas que geralmente são difíceis para os computadores (por exemplo, processamento de linguagem natural, reconhecimento de rosto) são aspectos que as pessoas consideram muito fáceis. Uma maneira interessante de ajudar as pessoas a começar a ver a grande diferença entre pessoas e computadores é pedir a uma pessoa para juntar um bilhão de números aleatórios em menos de um minuto. Ela irá dizer que é impossível. Então pergunte a ela por que ela não consegue fazer, mas seu computador consegue. Da mesma maneira, os humanos acham muito fácil reconhecer pessoas, falar com várias pessoas diferentes, ler todos os tipos de letras cursivas (mas não de médicos) e outras coisas que são muito difíceis para computadores.

Designer/arquiteto

Como programadores, nós também somos designers e arquitetos (mas raramente algum de nós consegue de fato desenhar). Depois de termos traduzido um problema do espaço humano para o do computador, nós temos que quebrá-lo em vários conjuntos de direções específicas. Isso é ok se você quiser que um programa faça apenas uma coisa, mas nós queremos que nossos programas tenham um pouco (ou muita) de flexibilidade.
Essa flexibilidade adiciona complexidade, e essa complexidade precisa ser gerenciada. Faça bem o seu design e seu programa será flexível e poderá ser modificado. Faça isso errado, e você deixará sua vida bem difícil.
A analogia do arquiteto é boa quando as pessoas continuam querendo mudar seu programa quando você já está no meio do caminho. As pessoas não pedem para os arquitetos construírem um arranha-céu e então voltam seis meses depois e pedem que ele também voe, mas isso parece normal com computadores. O problema é que a arquitetura está escondida por trás da interface, e o custo de modificá-la não é visto pelo usuário. É como ir ao teatro, na frente o cenário é lindo e fabuloso, mas assim que você chega por trás das cenas é tudo industrial. O perigo é que se você não mantém o cenário, um dia ele pode cair ou pegar fogo. Mesmo sendo improvável que seu código irá pegar fogo, ter seu código entrando em colapso (travando) muito é um sinal de que ele precisa de um trabalho de manutenção.

Sumário

Tradutor, artesão, arquiteto, designer, criador de direções. Podemos usar todas essas analogias para tentar explicar o que fazemos como programadores. Cada uma delas toca uma parte do que fazemos, mas sem ser um é difícil saber de fato o que significa ser um programador.
Quais analogias, metáforas ou histórias você usa para explicar o que você faz?


Texto original disponível em http://www.programming4scientists.com/2009/08/18/how-to-explain-programming-to-your-mum/