我们进行的是对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阶段是否会爆发出致命的错误就不得而知了,希望注意。