代码复审结果

我们进行的是对76er的代码进行审核。

代码问题和优点有以下几点:

1、有无用类,在整个工程中Url类,没有被用到,所以是一个无用的类,存在于代码中。

public class Url {
    // 原始url的值,主机部分是域名
    private String oriUrl;
    // url的值,主机部分是IP
    private String url;
    //URL NUM
    private int urlNo;
    // 获取URL返回的结果码
    private int statusCode;
    // 此URL被别的文章引用的次数
    private int hitNum;
    // 此URL对应文章的汉字编码
    private String charSet;
    // 文章摘要
    private String abstractText;
    // 毛标签
    private String tag;
    // 文章的权重(包含导向词的信息)
    private int weight;
    // 文章的描述
    private String description;
    // 文章大小
    private int fileSize;
    // 最后修改时间
    private Timestamp lastUpdateTime;
    // 过期时间
    private Date timeToLive;
    // 文章名称
    private String title;
    // 文章类型
    private String type;
    // 引用的链接
    private String[] urlRefrences;
    //爬取的层次,从种子开始,依次为第0层,第1层...

 

2、在工程中没有使用MVC的编码风格,视图没有独立出来而是和控制部分交融在一起的,不方便最后的修改和维护。

class CraUi extends JFrame implements ActionListener, Runnable
{
    boolean isStart;
    public String Total="90000000";
    public int Tint;
    JLabel jl2=new JLabel("已访问URL个数     :    " + 0);
    JLabel jl00=new JLabel("要下载网页个数    :");
    JTextField jtf=new JTextField(10);
    JButton jb1=new JButton("打开");
    JButton jb2=new JButton("关闭");
    JPanel jp=new JPanel();
    JProgressBar jpb=new JProgressBar();
    public CraUi()
    {
        this.setTitle("界面");
        jp.setLayout(null);
        jl00.setBounds(30, 20, 280, 30);
        jp.add(jl00);
        jtf.setBounds(150, 20, 280, 30);
        jp.add(jtf);
        jl2.setBounds(30, 130, 280, 30);
        jp.add(jl2);
        jb1.setBounds(50, 180, 80, 30);
        jp.add(jb1);
        jb1.addActionListener(this);
        jb2.setBounds(250, 180, 80, 30);
        jp.add(jb2);
        jb2.addActionListener(this);
        jpb.setBounds(30, 300, 500, 50);
        jpb.setStringPainted(true);
        jpb.setMinimum(0);
        jpb.setValue(0);
        jpb.setIndeterminate(true);
        jp.add(jpb);
        this.add(jp);
        this.setBounds(300, 250, 600, 500);
        this.setVisible(true);
    }

界面类,在程序的主启动类中,没有独出来。

3、还有就是界面的制作使用的是绝对位置和大小,那么界面的大小不可调,不能给用户很好的使用感。

4、有很多地方的异常处理仅仅是形式化的存在而已,并没有对在抛出异常有做处理。这个一个很不好的编码风格

    } catch (HttpException e) {
            // 发生致命的异常,可能是协议不对或者返回的内容有问题
            e.printStackTrace();
        } catch (IOException e) {
            // 发生网络异常
            e.printStackTrace();
        } finally {
            // 释放连接
            getMethod.releaseConnection();

 

5、优点之一是函数都是功能尽量单一的小函数,可能重构过吧,这样会使程序的可修改性和可拓展性变得很强。

6、还有个优点是注释详细;基本重要过程和重要的数据结构都有详细的注释,易懂。

 

最后总体评价下,作为一个程序来说,尽管代码的风格和写法存在一些问题,但是整个程序成功了,那么应该给予肯定,但是存在的这些问题在M2阶段是否会爆发出致命的错误就不得而知了,希望注意。

posted on 2012-12-13 09:49  百年coding  阅读(388)  评论(0编辑  收藏  举报