Universidade Federal de Goiás - Engenharia de Software (2018/1)
Samuel Rocha Costa - 201508744
i-2018's Introduction
i-2018's People
i-2018's Issues
Testes
O código produzido não é acompanhado de testes e, em decorrência destes, muitas mudanças são necessárias. Para os próximos exercícios, por favor, não esqueça dos testes de unidade.
Melhorias
- (método gravaImagem) Um buffer de 1MB para a entrada, neste caso a Internet, talvez seja muito, dado que estará guardando isso em um arquivo local (muito mais eficiente), ou seja, você provavelmente está esperdiçando memória. Também observe que o método Files.copy realiza operação semelhante, ou seja, substitui o seu método. Também houve toda um esforço técnico para ler o conteúdo JSON. Acredito que a biblioteca que está usando deve ter recurso similar ao Jackson e também ao Gson, no qual obtém-se o JSON de um InputStream (o que eliminaria o esforço citado).
- No mesmo método citado acima, você não estabeleceu o tamanho para o buffer de saída. Por que o de entrada e não o de saída?
- Na mesma classe, a URL está hard-wired no código. Melhor seria montá-la a partir do nome do usuário (login).
- Nomes de packages sempre em letras minúsculas.
- Melhorar a documentação. Por exemplo, "Esta classe implementa o exercício 6" não é tão adequada quanto, "Classe que persiste imagem do avatar associado a uma conta do Github", certo?
- Acrescente nota de copyright no início do seu código. Antes do package.
- Fique atento aos nomes, por exemplo, "gravaClasse" não é classe, também não apenas grava, mas também serializa. Observe que há pouca coesão no método. Em uma outra estratégia você poderia serializar, gerar saída em um ByteArrayOutputStream e então persistir o byte array em um arquivo, ou seja, teríamos pelo menos dois métodos aqui.
- AS1.Exercicio8.Exercicio8 documenta linhas do código, sem necessidade. O que deveria estar documentado é o formato do índice, parte da documentação da classe. Novamente, lerArquivoBinario apresenta baixíssima coesão.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.