302
社区成员
发帖
与我相关
我的任务
分享| WMC: Weighted Method Count | CBO: Coupling Between Objects | NOM: Number Of Methods | NOA: Number Of Attributes | TCC: Tight Class Cohesion | |
|---|---|---|---|---|---|
| Poly | 69 (high) | 14 (high) | 21 (high) | 1 | 0.5455 |
| MixedTerm | 52 (high) | 11 (high) | 21 (high) | 4 | 0.5167 |
| Parser | 51 (high) | 22 (high) | 19 (high) | 4 | 0.0074 (low) |
| FunctionRegistry | 39 (high) | 18 (high) | 14 (high) | 4 | 0.022 (low) |
| CC: Cyclomatic Complexity | CND: Condition Nestling Depth | |
|---|---|---|
| Poly.toString | 8 (high) | / |
| Poly.partialDeravtive | 8 (high) | / |
| Poly.needParentheses | 11 (high) | / |
| Poly.addMixedTerm | 6 (high) | / |
| Parser.parseFunctionCallFactor | 9 (high) | 4 (high) |
| Parser.parseFactor | 10 (high) | / |
| FunctionRegistry.evaluateRecursive | 7 (high) | / |
注意到,几个核心类与其核心函数全部过于复杂,但似乎没有优化空间,因为功能难以进一步拆分
为了更精简,实际上可以直接删除AST,让Parser直接产出Poly
假定新增三角函数sin, cos
exp丢双括号:情况考虑不全。没有明显复杂度问题
我使用递归toString将Poly转为字符串,但是没有遇到因此产生的bug
根据写自己代码时关注的要点看别人是否关注到:
唯一优化:若第一项是负项,将其与正项交换位置。exp拆分提因子有TLE风险,故舍弃
优化是付出100分的努力得到1分的回报
去除exp和f的双括号