Programação
-
-
Este é um espaço para discussão geral sobre Java e OO. Vocês podem também tirar dúvidas aqui sobre os exercícios de entrega obrigatória ou qualquer outra atividade da disciplina. Fique à vontade para responder a dúvidas de seus colegas também (não só os monitores e professor podem responder, os alunos podem e devem também).
-
Nesta semana, temos 4 vídeos importantes que vocês devem assistir, uma pequena lista de leituras e, finalmente, um exercício para ser entregue até a próxima semana.
Todo o material já está disponível aqui abaixo.Por favor, tirem qualquer dúvida que vocês tenham no Fórum. Fiquem também à vontade para responder a dúvidas de seus colegas no Fórum se você souber a resposta.Abraço,
Fabio. -
Oi gente boa,
Nesta semana, temos 2 vídeos opcionais para quem quiser ver como alguns conceitos de OO funcionam numa linguagem dinâmica (Python). Depois, 2 vídeos bem importantes para nós que estamos aprendendo OO em Java: Linguagens interpretadas vs. compiladas e Polimorfismo. Se for o caso, assista os vídeos mais de uma vez se for necessário para você consolidar os conceitos.
Eu criei também um repositório de código no GitLab, onde guardaremos exemplos de código-fonte interessante para vocês consultarem ou baixarem para os seus computadores. Ele fica em https://gitlab.com/fabio.kon/labpoo-em-java. Você pode olhar o código na Web ou importar no seu Eclipse conforme explicado nos comentários do vídeo final.
Finalmente, você deverá, obrigatoriamente, responder a uma enquete até o dia 3/abril para compartilhar conosco se está acompanhando bem a disciplina ou não e se tem alguma sugestão de melhoria.Abraço e bom estudo!!!
-
Para quem quiser ver uma forma diferente de se fazer programação orientada a objetos, assistam esses dois vídeos sobre POO em Python.
Vocês vão ver que, por Python ser uma linguagem dinâmica, o modo de se fazer as coisas é um pouco diferente de Java, em particular, você pode ir alterando uma classe aos poucos e acrescentando novos atributos a um objeto, o que não é permitido em uma linguagem estática como Java, onde tudo tem que ser definido antes do programa ser compilado.
Mas os conceitos por trás da parte OO das duas linguagens são bem semelhantes.
e, se quiser, .
-
Os 3 principais tipos de polimorfismo em Java:
- Polimorfismo paramétrico (programação genérica ou generics)
- Sobrecarga de métodos (method overloading)
- Sopreposição ou sobreescrita de métodos (method overriding)
O código-fonte dos exemplos mostrados no vídeo está disponível em https://gitlab.com/fabio.kon/labpoo-em-javaVocê pode navegar pelo código-fonte na Web ou então fazer o seguinte para importar os projetos no Eclipse:- File -> Import -> Git -> Projects from Git -> Clone URI ->
- URI: git@gitlab.com:fabio.kon/labpoo-em-java.git
- master
- Import existing Eclipse projects
- escolha um ou mais projetos a importar
-
-
-
O Dr. Higor Amário, Doutor em Ciência da Computação pelo IME/USP na área de Localização de Defeitos em Engenharia de Software, nos apresenta o conceito de Depuração e como funciona o depurador do Eclipse.
-
Nesta semana não teremos aula formal mas eu gostaria que vocês investissem em consolidar os seus conhecimentos de git pois isso será útil no projeto em grupo que nós iniciaremos daqui a algumas semanas na disciplina. Para tanto, estou disponibilizando um link para um tutorial de git disponível na Web.
No dia 9 de abril às 11:00 nós teremos uma sessão online no Google Meet para tirar dúvidas sobre o Exercício 3.
Aproveite a semana santa para avançar bastante no Exercício 3.
Abraço!
Fabio.
-
Nesta semana, teremos 3 vídeos e o Exercício 4.
Começamos agora a aprender Padrões de Projeto de Software, que é o que diferencia programadores-crianças de desenvolvedores adultos reais :-)
-
Nesta semana, enquanto vocês dão um gás no Exercício 4, nós teremos 2 vídeos de 2 padrões de projeto simples: Adapter e Singleton.
Aproveito a oportunidade para indicar um site interessante sobre todos os padrões GoF: http://www.w3sdesign.com
-
Nesta semana, temos 3 vídeos, sobre o padrão Método Fábrica, o padrão Fábrica Abstrata e o padrão Prototype.
Além disso, estou disponibilizando agora o enunciado do GRANDE PROJETO FINAL. Vocês terão 2 meses para implementá-lo e o trabalho deve ser dividido entre os 4 membros do grupo. Vocês poderão escolher entre dois tipos diferentes de projetos, ambos bastante interessantes e com os quais vocês irão aprender bastante. Teremos uma restrição de que cada um dos projetos deverá ter pelo menos 3 grupos o implementando. Dêem uma olhada no enunciado dos projetos e comecem a formar os quartetos. Assim que tiver definido o seu grupo, coloque o nome do grupo e dos membros nesta planilha (não se preocupe com alguém apagar o seu nome pois eu tenho o log de tudo :-)
Abraço,
Fabio.
-
Nesta semana, aprenderemos o padrão de projeto State, e o padrão arquitetural MVC.
-
Teremos uma excelente palestra do CTO da empresa Pravaler, Daniel Cukier, que é um excelente desenvolvedor de software com experiência em várias linguagens. Ele vai falar para nós sobre Injeção de Dependências e o arcabouço (framework) Spring para Java.
Será na 5a feira às 11:00 via Google Meet. Não deixe de assistir, marque em sua agenda.
-
Nesta semana, vamos aprender dois padrões novos: Template Method e Façade e vamos consolidar nosso aprendizado do Decorator.
-
Dado que vocês terminaram a Fase 1 do projeto, é hora de espairecer.Para isso, recomendo a excelente palestra do Dylan Beattie.Dura 1 hora mas vale cada minuto. É fascinante!!!Abraço,Fabio.
-
Teremos uma excelente palestra na 5a feira às 11:00 do Leonardo Leite, Desenvolvedor Sênior do SERPRO, que possui bastante experiência no desenvolvimento de sistemas tanto para pesquisa científica quanto para o governo.
Leonardo vai falar sobre sistemas Java desenvolvidos pelo SERPRO e apontar como OO e padrões são empregados para melhorar a qualidade do software desenvolvido.
Estajam pontualmente às 11:00 em: https://meet.google.com/cyz-zgfy-dtr
Observação: Quem não puder assistir à palestra sincronamente, poderá assisti-la na semana seguinte com calma e, para receber presença, fazer um pequeno trabalinho curto que eu vou passar sobre a palestra.
-
Nesta semana, iniciamos vendo o padrão Mediator e como é possível usá-lo para separar o sistema em duas camadas: camada de objetos de domínio e camada de processos do negócio.
Em seguida, veremos algo bastante importante que todo bom desenvolvedor deve conhecer:
- Os Princípios SOLID do bom projeto orientado a objetos
São 5 princípios básicos que definem o que é uma boa arquitetura OO conforme compilado pelo especialista em software de alta qualidade Robert Martin.
- Os Princípios SOLID do bom projeto orientado a objetos
-
-
Nesta provinha, iremos avaliar se os importantes conceitos de Arcabouços e os princípios SOLID do bom software orientado a objetos foram bem compreendidos.
-
-
Para se tornar um excelente desenvolvedor de software, você vai obrigatoriamente ter que escrever muito código, trabalhar em vários projetos e interagir com outros bons desenvolvedores. Mas um uma forma de aprender muito com a experiência acumulada por alguns dos melhores desenvolvedores do planeta é ler alguns dos excelentes livros que existem sobre o assunto. Neste vídeo, eu apresento 10 Livros que você PRECISA ler para se tornar um excelente desenvolvedor de software!
-