Code review(自己的)

以下是原代码:

  1 import android.app.ProgressDialog;
  2 import android.graphics.Bitmap;
  3 import android.graphics.BitmapFactory;
  4 import android.os.AsyncTask;
  5 import android.support.v7.app.AppCompatActivity;
  6 import android.os.Bundle;
  7 import android.view.View;
  8 import android.widget.Button;
  9 import android.widget.ImageView;
 10
 11 import java.io.ByteArrayInputStream;
 12 import java.io.ByteArrayOutputStream;
 13 import java.io.IOException;
 14 import java.io.InputStream;
 15 import java.net.HttpURLConnection;
 16 import java.net.MalformedURLException;
 17 import java.net.URL;
 18
 19 public class MainActivity extends AppCompatActivity {
 20     private Button btn;
 21     private ImageView imageView;
 22     private ProgressDialog progressDialog;
 23     private final String IMAGE_PATH = "http://www.baidu.com/img/bd_logo1.png";
 24
 25     @Override
 26     protected void onCreate(Bundle savedInstanceState) {
 27         super.onCreate(savedInstanceState);
 28         setContentView(R.layout.activity_main);
 29         btn = (Button) findViewById(R.id.btn);
 30         imageView = (ImageView) findViewById(R.id.imageView);
 31         progressDialog = new ProgressDialog(MainActivity.this);
 32         progressDialog.setTitle("提示信息");
 33         progressDialog.setCancelable(false);
 34         progressDialog.setMessage("正在下载,请稍候。。。");
 35 //        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
 36         progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
 37
 38         btn.setOnClickListener(new View.OnClickListener() {
 39             @Override
 40             public void onClick(View v) {
 41                 new MyAsyncTask().execute(IMAGE_PATH);
 42             }
 43         });
 44
 45     }
 46
 47     public class MyAsyncTask extends AsyncTask<String, Integer, byte[]> {
 48         @Override
 49         protected void onPreExecute() {
 50             super.onPreExecute();
 51             progressDialog.show();
 52         }
 53
 54         @Override
 55         protected byte[] doInBackground(String... strings) {
 56             byte[] image = new byte[] {};
 57             HttpURLConnection conn = null;
 58             InputStream inputStream = null;
 59             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
 60
 61             try {
 62                 URL url = new URL(strings[0]);
 63                 conn = (HttpURLConnection)url.openConnection();
 64                 if (conn.getResponseCode() == 200) {
 65                     long file_length = conn.getContentLength();
 66                     long total_length = 0;
 67                     int length = 0;
 68                     byte[] data = new byte[1024];
 69                     inputStream = conn.getInputStream();
 70                     while (-1 != (length = inputStream.read(data))) {
 71                         total_length += length;
 72                         byteArrayOutputStream.write(data, 0, length);
 73                         int progress = ((int) (total_length*100/(float)file_length));
 74                         publishProgress(progress);
 75
 76                         try {
 77                             Thread.sleep(1000);
 78                         } catch (InterruptedException e) {
 79                             e.printStackTrace();
 80                         }
 81                     }
 82                     image = byteArrayOutputStream.toByteArray();
 83                     inputStream.close();
 84                     byteArrayOutputStream.close();
 85                 }
 86             } catch (MalformedURLException e) {
 87                 e.printStackTrace();
 88             } catch (IOException e) {
 89                 e.printStackTrace();
 90             }finally {
 91                 conn.disconnect();
 92             }
 93             return image;
 94         }
 95
 96         @Override
 97         protected void onProgressUpdate(Integer... values) {
 98             super.onProgressUpdate(values);
 99             progressDialog.setProgress(values[0]);
100         }
101
102         @Override
103         protected void onPostExecute(byte[] bytes) {
104             super.onPostExecute(bytes);
105             Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
106             imageView.setImageBitmap(bitmap);
107             progressDialog.dismiss();
108         }
109     }
110 }

代码审查结果:

  1、缺少注释

  2、对非常规行为和边界值情况处理没有描述

  3、存在部分重复的代码

时间: 2024-12-28 20:31:18

Code review(自己的)的相关文章

后端code review finished 12-28

今天只有天赋和士杰有相应的后端代码的code review工作,因为并没有召开daily scrum.只是天赋和士杰对后端所有的代码进行了review,对代码进行了整理并删除了一些残留的0 refrence的代码.

code review的目的

Code review 是系统的检查程序源码,目的是在初始开发阶段找到和修正错误,提高软件质量和开发人员的技术水平. Java源码的Code review包括哪些那: 1.编程规范 2.面向对象设计检查 3.性能检查 4.资源管理:内存泄露 5.线程安全:多线程,死锁 6.处理流程:条件语句,循环结构 7.异常处理 8.数据库 有许多帮忙我们检查代码的自动化工具:比如PMD工具,http://pmd.sourceforge.net/pmd-5.1.1/ PMD可以帮我做的: PMD scans

我是如何进行code review的

众所周知,代码审查是软件开发过程中十分重要的环节,楼主结合自己的实际工作经验,和大家分享一下在实际工作中代码审查是如何开展的, 笔者水平有限,若有错误和纰漏,还请大家指正. 代码审查的阻力 我想不通公司不同部门对代码审查这项工作的重视程度还是不一样的,对于代码审查的阻力总结了以下几点: 国内的整体环境,国内的公司,尤其是互联网公司,讲究速度致上,软件开发的迭代周期周期短,速度快,因为竞争太大,开发的产品要求快速上线,对代码审查不是很重视,先上线,出了问题再解决. 公司的规模,大公司重视流程,把代

使用RBTool自动提交code review请求

使用RBTool自动提交code review请求 前言 让我们回想一下手工提交review请求的过程: 首先得用 svn diff > filename.diff 生成diff文件. 然后输入review board的网址,可能是 rb.companyname.com 然后需要输入你的账号密码进行登录验证. 然后你需要填写你的svn repository 地址,然后上传diff文件. 然后你进到review请求的详细页面,填写summary, description, test-done, g

如何搭建gerrit开源code review工具

搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 安装:sudo tar zxvf ./jdk-7u79-linux-x64.tar.gz -C /opt 配置:vim ~/.bashrc export JAV

如何在python脚本开发做code review

在软件项目开发中,我们经常提到一个词"code review".code review中文翻译过来就是代码评审或复查,简而言之就是编码完成后由其他人通过阅读代码来检查代码的质量(可编译.可运行.可读.可维护.可复用),这些性质都比较抽象,但是一般都可以通过以下的检查点来实现: 检查代码的命名方式是否符合规范,代码的可读和可维护必须要求所有参与编码的同事使用的命名有统一的规范(注意每个人有自己的代码风格,但是要符合可读性的代码规范): 检查代码的注释,注释一般包括:1.类要有类用途和使用

iOS从零开始 Code Review

http://www.cocoachina.com/ios/20151117/14208.html 这篇帖子不是通篇介绍Code Review的方法论, 而是前大段记录了我们团队怎么从没有这个习惯到每天都进行review的过程, 后小段给出了我的一些建议. 希望能对诸位的团队有所帮助. 最初来到这个新组建的团队是木有code review的. 头说, 这个月你来搞吧. 当我第一次知道必须得搞review的时候, 其实我是拒绝的! 因为我觉得…呀…你不能叫我马上搞立马搞, 第一, 我要试一下, 我

Friend&#39;s Code Review

代码: ``` package lservice; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts

Code Review for SSIS package

以下是我对SSIS包进行code review的一些建议,如果有其他更好的方案欢迎拍砖. A. 查看是否使用了最优的解决方案 1. 最优的结构视图 2. 解决方案,包,任务,组建,参数的命名使用了易读的命名方式 3. 遵循了最优的设计,优化,调整方案 B. 配置 查看是否所有的配置已经成功,并且能够从外部和父包中获得正确的配置信息. C. 查看能否通过以下测试 1. 正常的场景 查看到所有的表数据/文件已经生成并且是正确的 查看所有的数据在表中没有被截断或有不需要的空格/字符 重新执行包,看是否

iOS 代码审查:宽松的指导方针(iOS Code Review: Loose Guidelines)

iOS 代码审查:宽松的指导方针 (iOS Code Review: Loose Guidelines) Jack Nutting February 19, 2014 IOS + From time to time I've been asked to do an independent code review, to determine the overall health of a client's code base. Unlike a code walkthrough, where so