大家好,我是一个刚入行的程序员。我现在在工作中遇到了一些问题。我所写的代码可以满足客户的需求,客户对我开发的功能也验收通过了。但是与我一组的同事总是喜欢重构我的代码,他总是感觉我的代码有问题,感觉我的代码不够简洁。下面是我的代码,与他的代码的对比。
这些代码是我们项目中的一些实体类。此处的情景是,用户会根据业务需要生成邮件。并在需要发送时,用户发送已生成的邮件,同时在系统中会生成相应的历史记录。
我对此功能的设计是,在数据库中放着名为email和emailhistory的两个表,分别用于存放生成了但还没发送的邮件以及已经发送的邮件的历史记录。邮件生成后会存储在email数据表中,在邮件被发送后,会从email数据表中将相应的数据删除,并将之前的数据重新存储在emailhistory数据表中。(我这样设计的原因是,Email数据表在我接手这个项目之前就已经存在了,是我们组里别的同事写的,而我在接手了这个功能之后,客户提出了一些新的业务需求。原来在发送信件时,就是将email数据表中的相应数据给删掉。我在编程时一向希望尽可能的减少对原来程序结构的改动,所以我新增了一张表,进行了上述的设计。)
重构我代码的那位同事的设计是对原有的email数据表进行修改,他将我两张数据表中的所有的列全都整合到email数据表中了,同时,还将原有的程序改为在发送信件之后不删除相应的数据,而是改变其processStatus属性,设置其值为未发送,发送失败,已发送。
针对这两种设计,我有以下问题,:
1.大家感觉我的同事对此功能的设计和我对此功能的设计哪个更好呢?哪个更能被大家所接受呢?
2.我同事的设计会不会导致随着使用时间的增加,Email数据表的数据内容变得越来越多,到时候再需要从email数据表中取数据去对未发送的邮件以及邮件的历史记录进行操作时,导致相应的操作变得很慢进而影响性能呢?我的设计虽然让数据库中多了一个数据表,让后端代码多了一系列的程序文件,但是我觉得我的设计可以使上述操作变得更加快,而且也方便程序员对这两部分的数据进行管理。
3.我在编程时总是希望能够尽可能的减少对原来的程序结构的改动。请问我这种思想是一种对的思想吗?我在接手别人写过的程序代码时,我怕我的改动会导致别人不高兴。请问我在后续的工作中是否还应该保持着这种思想呢?还是说我在编程时要尽可能的以代码的简洁,和系统的运行效率为主导呢?
希望大家们可以不吝赐教
以下是我编写的代码
publie class Email{
private int Id;
private String senderId;
private String mailType;
private String title;
private String to;
private String cc;
private String bcc;
private String body;
private String creationDate;
}
publie class EmailHistory (
private int Id:
private String senderId;
private String mailType;
private String title;
private String to;
private String cc;
private String bcc;
private String body;
private String creationDate;
private String processStatus;
private String sentDate
}
以下是我的同事重构的代码
publie class EmailFinalVersion{
private int Id;
private String senderId;
private String mailType;
private String title;
private String to;
private String cc;
private String bcc;
private String body;
private String creationDate;
private String processStatus;
private String sentDate;
}