作业集4~6 阶段性学习总结Blog

一、前言

本次阶段性学习对应作业集4、作业集5、作业集6三次课后编程与理论练习,是课程从基础语法、逻辑模拟逐步过渡到结构化建模、逻辑运算、数据处理、规范编码的关键阶段。三次作业整体题量适中、梯度清晰:基础送分题占比约60%,中档逻辑应用题占比30%,少量综合性建模题目占比10%。整体难度循序渐进,从单一功能编码逐步过渡到多方法、多分支、结构化设计与逻辑推导。

作业集4主要聚焦基础逻辑运算、分支判断、简单循环模拟;作业集5侧重结构化代码设计、功能拆分、输入校验与边界测试;作业集6偏向综合性建模、多场景测试、逻辑范式转化与规范化代码实现。三次作业整体难度由浅入深,帮助我完成了从“会写代码”到“写规范代码、会分析、会排错、会优化”的过渡,也暴露了我在程序结构设计、异常处理、边界测试、代码复用等方面的诸多问题。

二、设计与分析(含源码、类结构、工具分析)

1. 整体代码结构设计思路

三次作业我均采用单一职责、功能拆分的编码思想,将输入处理、核心逻辑、结果输出、异常校验分别封装为独立方法,避免主方法代码臃肿、逻辑混乱。相较于前期作业全部写在主函数内的写法,4~6作业的代码结构性、可读性、可维护性明显提升。

通过 SourceMonitor 代码报表分析:三次作业整体代码行数逐级递增,平均圈复杂度维持在较低水平,大部分方法圈复杂度1~3,无超高复杂度方法,说明功能拆分有效、分支逻辑清晰。但仍存在部分方法耦合度偏高、重复代码较多、注释不完善等问题。

2. PowerDesigner 类图结构分析

本次三次作业整体采用工具类+核心业务方法的极简类结构:自定义工具类统一封装计算、判断、转换逻辑,主类仅负责调用与输出。类图结构清晰,无冗余类、无多余继承与依赖,符合小型作业程序的设计规范。

结构优势:

  • 功能高度解耦,新增测试场景无需改动核心逻辑

  • 方法复用性强,相同判断逻辑可多次调用

  • 代码层级清晰,便于查错、调试与后期优化

结构不足:未设计独立实体类与异常处理类,整体偏过程式编码,面向对象封装性不足。

3. 三次作业源码专项分析

作业集4:以基础逻辑判断、循环模拟为主,代码结构简单,分支少、圈复杂度低。主要实现基础逻辑运算、条件筛选与简单输出,整体通过率高,无结构性BUG,但缺少输入合法性校验。

作业集5:开始出现多分支嵌套、多条件组合判断,我主动拆分了输入校验方法和核心计算方法,有效降低了嵌套层级。SourceMonitor报表显示该次作业方法拆分合理,冗余代码较少,但存在部分重复判断语句。

作业集6:综合性最强,涉及多场景逻辑转换、边界值判断、多组测试用例适配。我采用“先校验、再计算、后输出”的固定编码流程,整体运行稳定,但对极端边界用例考虑不全,部分特殊输入会出现逻辑疏漏。

三、采坑心得(详实、数据化、落地、不空话)

结合三次作业的提交记录、测试结果、报错日志与代码结构,我总结出本次阶段最典型的几类真实踩坑问题,全部结合实际测试结果与代码结构分析:

1. 边界测试用例缺失导致隐性错误(高频问题)

数据反馈:三次作业共有4次局部测试不通过,其中3次全部源于边界值未考虑,而非核心逻辑错误。例如空输入、极值输入、0值、重复值、临界区间等场景,代码未做拦截判断,导致正常用例全过、特殊用例报错。

根源:前期编码只关注题目样例,未自主设计边界测试用例,测试覆盖率不足。

2. 代码复用性差、重复代码过多

SourceMonitor 统计显示:作业集5、6存在多处高度相似的判断代码,重复率偏高。同一类条件判断在多个方法中重复书写,不仅代码臃肿,且后期修改需要多处改动,极易出现改漏、改错的情况。

根源:编码习惯偏向“写完即过”,缺少提前抽象、统一封装的思维。

3. 异常处理机制缺失,鲁棒性不足

三次作业均未设计完善的输入异常捕获,当输入非规定格式、空值、非法字符时,程序会直接报错终止,无法友好提示与重试,程序容错能力弱。

4. 注释不规范,后期复盘可读性差

核心算法、关键判断逻辑无单行注释,仅依靠变量命名表意。时隔一周复盘代码,需要重新梳理逻辑,极大降低了调试与复盘效率,不符合规范化编码要求。

5. 流程设计不严谨,部分逻辑顺序颠倒

部分题目出现“先计算、后校验”的错误流程,正确流程应为先校验输入合法性,再执行核心计算,顺序颠倒导致部分非法输入参与运算,产生异常结果。

四、改进建议(可持续、可落地、可迭代)

1. 统一代码架构,标准化编码流程

后续所有编码统一固定流程:输入接收 → 合法性校验 → 核心逻辑计算 → 结果处理 → 异常兜底输出,彻底杜绝逻辑顺序颠倒、非法数据参与运算的问题,提升代码稳定性。

2. 抽象公共方法,降低代码冗余

将重复的判断、校验、转换逻辑统一封装为工具方法,一次编写、多处调用。有效降低代码重复率,简化代码结构,提升可维护性,后续迭代修改只需改动一处。

3. 完善异常处理与输入校验体系

针对空输入、非法字符、数值越界、格式错误等场景统一增加校验与异常捕获,添加友好提示与重试机制,提升程序鲁棒性与用户体验。

4. 强制自测边界用例,提升测试覆盖率

每次编码完成后,自主设计四类测试用例:正常用例、边界用例、极值用例、非法用例,全覆盖自测,杜绝隐性BUG。

5. 规范注释与文档,养成工程化习惯

所有自定义方法添加功能说明、参数说明、返回值说明,关键逻辑添加单行注释,保证代码可读性、可复盘、可交接,贴合软件工程规范化要求。

五、阶段性综合总结

通过作业集4~6三次阶段性训练,我系统掌握了基础逻辑编码、结构化程序设计、多条件分支处理、简单建模与测试复盘能力。相较于前期作业,我的代码规范性、逻辑严谨性、问题排查能力、结构化设计思维都有明显提升,能够独立完成中等难度的综合编程题型,能够自主拆分功能、梳理流程、排查简单BUG。

同时我也清晰认识到自身存在的诸多短板:代码复用思维不足、异常处理薄弱、边界测试意识欠缺、工程化编码习惯尚未完全养成,代码仍偏向过程式、轻量化,缺少面向对象的封装与设计思想。

后续我将重点精进:结构化代码设计、面向对象封装、算法优化、测试用例设计、异常机制处理,持续规范编码风格,逐步从“实现功能”向“高质量、可维护、可扩展、高鲁棒性”的工程化代码过渡,为后续复杂建模、算法、大型程序开发打下扎实基础。

posted @ 2026-06-24 21:13  wlblblb  阅读(2)  评论(0)    收藏  举报