优化代码和增加单元测试用例