大家好,我是一个工作不到两年的程序员,我在项目的开发中遇到了一些问题,希望大家可以帮我解答一下。下面是两个与我问题相关的代码。
Public EmailTemplate editEmail ( EmailTemplate emailTemplate, Case case ) {
//the code replaces the words in the email template
Return emailTemplate;
}
Public EmailTemplate editEmailWithCorporateID ( EmailTemplate emailTemplate, Case case, String corporateId ) {
//the code replaces the words in the email template,same with the first function
List<Corporate> corList = corporateDao.getCorporateByCorporateName(case.getCorporateName()) ;
For( Corporate item : corList ){
If( item.getCorporateId()==corporateId ){
//replace some words
Break;
}
}
Return emailTemplate;
}
这两个函数的传入参数与内部逻辑大体相同,唯一不同的地方就是下面的函数的多了一个名为“相关企业ID”的参数,多了使用该参数在多条重名的企业数据当中寻找具体的某一个企业的信息的逻辑。
之前代码里面只有上面的那个函数,我后来新增了下面的函数是因为客户新增了需求,原来只要求对邮件模板中的替换关键字进行替换,而现在又要求在存在重名的企业时,可以根据相关企业ID进行进一步确认,确保不会把生成的信件搞错。我为了能够在我新写的代码出错时能够及时回滚到之前的状态,就没有在上面的函数的基础上添加新逻辑,而是将上面的函数重新复制了一次,在下面的复制出来的函数中进行添加逻辑的操作,在写完新的函数后,再在调用这两个函数的上级函数之中添加一些处理逻辑,确保在需要的时候调用需要的函数。
我的同事认为我的代码这么写不对,因为我的代码不够简洁。他认为我只要把下面的函数保留就可以了,上面的不用留着,即使有不用的参数,我们也可以设置其中一个参数为空。至于出错回滚,完全可以使用git进行相关操作。他说的东西我当时由于项目需求紧急而并未注意,只顾着完成功能了。在完成功能后在自己的开发环境上测试没问题了之后,就给客户进行部署,让客户进行测试,客户测试通过了,我就并没有再进行任何操作了,也没有对这里明显存在重复问题的代码进行相应的简化操作。因为我怕出错。
他还问我为什么在前端只是在出现有重名数据时,让客户输入一个企业的ID然后在后端与重名的那堆数据进行比对,而不是将这些数据直接传到前端并生成一个下拉框供客户挑选。我说客户就这么说的,他告诉我客户并不懂技术,所以他们所说的东西在运行效率上并不是最佳选择,这就需要你自己进行相应的设计。
问题:
1.在开发阶段,编写的代码完成了客户要求的功能之后,是否应该再重新看一遍新增的代码,看看有没有什么地方可以简化呢,还是说代码在确保可以运行之后就不要动了呢?如果简化修改的地方涉及到了之前写好的功能,进而导致之前的功能也出了一些问题怎么办呢,我很害怕出现这种情况,因为怕这会影响我在客户心中的形象。所以我一般能不修改团队中其他同事的代码就不修改其他同事的代码。
2.客户提出的需求,说他们要怎么样的,我们程序员是否有必要自己再进行相应的设计呢?我一直觉得客户要什么样我就做成什么样,不去管程序运行效率等东西很好。因为这样一方面可以很好的在后续防止客户给自己甩锅,另一方面可以让客户觉得我很厉害,可以把他们需要的东西完全地实现。