Programação orientada a objetos: Herança e polimorfismo – Parte 2

No primeiro artigo mostrei uma implementação de lista encadeada que explora o uso de herança e polimorfismo. Vimos como este recurso nos permite construir classes coesas e que colaboram entre si para realizar tarefas complexas. Nesta continuação trago a implementação do jogo da cobrinha utilizando os mesmos conceitos.

Continuar lendo

Anúncios

Caso Cinbesa – Implantação de Ágil em Empresas Públicas

Oi pessoal,

Eu sou Domingos Santos. Trabalho na Cinbesa, desenvolvendo e gerenciando projetos de software desde 2001. A Cinbesa é a empresa de TI da prefeitura de Belém. Pequena, menor até que muitos setores de TI de outros órgãos do governo federal ou estadual.

Por sermos pequenos precisamos a todo momento provar para a administração municipal que somos capazes porque a prefeitura carece de soluções robustas. Por isso, começamos a praticar desenvolvimento ágil em 2012 como maneira de responder os anseios do nosso cliente principal e gostaria de compartilhar com vocês a nossa experiência.

Tudo começou com um curso de Scrum Master que Alexandre Magno veio ministrar em Belém em meados de 2009. Participamos do curso mas não conseguimos colocar em prática. Porém, a semente foi plantada.

Continuar lendo

Programação orientada a objetos: Herança e polimorfismo – Parte 1

Quando cursei a disciplina de orientação a objetos na universidade já havia estudado alguma coisa em livros de C++ e Java. Tanto os livros quanto o professor da disciplina escolheram a abordagem clássica de ensino de programação orientada a objetos: a do reino animal. Esta abordagem é limitada, do meu ponto de vista, pelo fato de que não confronta o aluno com os problemas do mundo real, os quais este paradigma se predispõe a resolver. Ao aprender POO desta forma, o aluno não aprende a discernir as fronteiras de um sistema e não entende o propósito real de conceitos como a abstração e o encapsulamento. Existe o argumento de que a intenção é ser didático, e que para o iniciante é muito mais fácil aprender utilizando esta analogia. Porém, acredito que este argumento não seja válido uma vez que a disciplina de programação é pré-requisito para se aprender POO, e um aluno com este conhecimento tem capacidade de abstração suficiente para pensar em problemas na forma de entidades lógicas (variáveis, estruturas de dados e etc), sem precisar de exemplos lúdicos para entender os conceitos do paradigma.

Continuar lendo

Expressão Lambda no Java 8

Em março de 2014 a Oracle Corporation lançou, de maneira oficial, o Java 8. Uma das principais novidades da nova versão foi, sem dúvida nenhuma, o suporte a expressão lambda, característica marcante nas linguagens de programação dinâmicas como Java Script, Groovy, Ruby, etc.

A expressão lambda é natural da programação funcional, porém outras linguagens de programação, de  paradigma não funcional, introduziram o recurso para possibilitar um código mais conciso, compacto e fácil de entender.

Continuar lendo

10 erros que todo desenvolvedor Android deve evitar

Fala pessoal! Nesse post irei explicar alguns dos erros mais comuns cometidos por nós desenvolvedores Android, baseado em leituras e minha experiência em desenvolvimento com a plataforma. Em cada trecho, explico o erro e como devemos fazer para evitá-los.

#1: Utilizar experiencias de outras plataformas

Antes, era muito comum ver uma app Android imitando as experiencias de outras plataformas. Geralmente, por causa de um porting da mesma app existente em iOS ou Windows Phone; ou por exigência do cliente ou por utilizar algum framework cross-platform. Usuários Android querem e esperam experiencias da plataforma Android. Algo como adicionar um botão de voltar em sua app (existe um botão físico próprio para isso, sabia?), utilizar abas estáticas abaixo ou adaptar ícones retangulares com cantos arredondados (a menos que faça parte da sua logo) são apenas alguns exemplos de experiencias que se encaixam muito bem em outras plataformas, porém devem ser evitadas em Android. Aliás, há algum tempo, a Google desenvolveu guidelines que sugerem excelentes dicas e orientam como deve ser o desenvolvimento, design e distribuição de um aplicativo Android.

#2: Não investir em design / UX

Está comprovado que a maioria das pessoas, ao comprar um produto, levam em consideração vários fatores, dentre eles primeiramente está seu design, quer seja retrô ou futurista. Mas por quê isso? Por que chama atenção. É bonito de se ver. E assim deve ser a sua app. Os usuários devem ter prazer de utilizá-la. Como dizia o finado Steve Jobs, um bom produto é aquele que não precisa de manual para se utilizar. Ele deve ser tão intuitivo e minimalista para que as pessoas tenham facilidade de usá-lo. Então, invista em um bom design, desde o ícone da sua app, as imagens principais, secundárias, etc. Se você não tem expertise de design, então contrate um. Mesmo assim caso não conheça, existem sites como 99Designs, onde você informa sua ideia e vários designers projetam logos para o seu produto e você escolhe a que achar melhor!

Continuar lendo

Tá safo! no Belém Code 2015

belemcodein2015-b1O Belém Code 2015 é um evento de programação de computadores que tem como principal função desmistificar a ideia de que programação é algo difícil, pelo contrário, é fácil e possibilita a participação e integração de forma divertida descobrindo conceitos e técnicas de introdução à programação. Esperamos que esta iniciativa sirva como incentivo a inclusão digital, e mostre que todos somos capazes de programar, seja adultos, jovens ou crianças. (Fonte: site do evento)

O Tá safo! foi convidado para apoiar o evento na divulgação e agregar à programação com alguns palestrantes, de garbo e elegância, para mostrarem um pouco de sua vivência com desenvolvimento de software. Horários e a grade completa você pode ver clicando aqui. Seguem as palestras do pessoal do Tá safo! (olha o naipe da galera)

marcelo andrade Marcelo Andrade Desenvolvimento para Web com CakePHP
marcelosa Marcelo Sá MPS-BR em times ágeis
luiz sanches Luiz Sanches A Linguagem de Programação Ruby
ramon rabello Ramon Rabello O Caminho de um Desenvolvedor Android

O evento é pago, pois tem o objetivo de ajudar a entidade Ação Parceiros, capitaneada pelo Raimundo Xavier que, desde já, tem o nosso agradecimento pelo convite e esperamos que seja mais um evento de sucesso. Nos encontramos por lá para conversar sobre programação e nerdices afins.