[I.3] 个人作业:结课总结
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2025年春季软件工程(罗杰、任健) (北京航空航天大学 - 计算机学院) |
| 这个作业的要求在哪里 | [P] 结对项目:影蛇舞 |
| 我在这个课程的目标是 | 掌握更多技术,在实践中提升自身能力 |
| 这个作业在哪个具体方面帮助我实现目标 | 总结开发各个阶段的收获 |
一、提问博客链接
二、对之前提问的解答
问题一:
在资源有限的情况下,如何平衡有限资源与低概率用户复杂需求实现这两者之间的矛盾?
看需求价值、实现成本和发生概率。如果成本高、概率极低(比如百万分之一),通常不做,优先保证核心功能。像“吴石头”案例,开发前就该确认用户是否能独立使用,避免浪费。但如果是涉及安全、法律等底线问题,即使概率低也得做。决策时要结合数据(如果有)和团队判断,别死守一个概率数字。
在本次我们的项目中,比如回收站功能,我们就在实现过程中新加了这个功能。对于实时协作,我们在综合考虑了实验难度和有限资源的情况下舍弃。需求分析中,要根据实现成本和需求价值综合考虑。
问题二:
如何有效减少开发过程中的非开发时间干扰?
关键在沟通和设置边界。跟经理明确你的开发专注时间段(比如上午2-3小时),沟通时用业务影响解释技术难度(比如“做这个需要X天,会延迟Y功能上线”)。非紧急沟通(如邮件、IM)集中处理(比如每小时看一次),紧急问题快速响应。小公司更需主动管理预期,定期同步进度减少临时询问。
在本次项目中,我们主要通过线上沟通。对于需要沟通的部分,线上沟通及时也沟通得很清楚。定期开会,我们也能总结自己的工作以及未来需要干的工作。
问题三:
结对编程中驾驶员和领航员的角色如何有效协作?
重点是让双方都有参与感。水平弱的可以先尝试讲解思路或写测试用例,强的负责核心代码但要解释思路。可以缩短轮换时间(比如半小时),或者让弱的先写简单部分,强的边Review边指导。目标是共同学习和产出,避免一人干一人看。
问题四:如何在实际学生项目中避免需求分析失真的问题?
关键是找“真”用户并看“做”而非“说”。10个用户里至少找几个陌生人(比如外校同学、目标用户群),让他们实际操作,观察行为而不是只听承诺。故意设计点小麻烦,看他们是否还愿意用。别只问朋友同学,容易得到礼貌性支持。
避免熟人社交压力、观察真实行为比口头调研更重要。
问题五:
在应用NABCD模型进行项目规划时,如何有效验证用户的真实需求?
深入聊,找痛点背后的原因。多问“为什么”,观察用户现有的解决方式(可能很土但有效)。找那些不用你产品的人聊聊,他们的意见往往更犀利。需求是动态的,别指望一次调研搞定,小步快跑做原型测试最靠谱(比如做个简单登陆页看点击)。警惕样本偏差,多找不同类型用户。验证需求需要深度访谈、观察行为、找反面意见和快速原型测试结合。
三、各个阶段中学到的知识点
需求阶段
通过我们队内部的总结,学生群体对文献管理的核心诉求并非复杂功能,而是跨平台同步速度和PDF批注便捷性。我们舍弃了初期设想的社交分享模块,聚焦文献解析与笔记联动功能。在这个过程中我也明白了需求收集需辨别"痛点",资源应倾斜于高频核心场景。
设计阶段
在设计阶段,因为我主要负责前端的设计,主要是内容的展示。除此之外与后端同学共同确认响应格式(如文献列表的字段结构、错误码规范)
以及根据模块划分结果,将前端界面拆解为文献管理、笔记编辑、组织协作等一些组件区。这些设计讨论确保了我后续开发时,页面功能能与后端服务精准对接。
实现阶段
我学习到了敏捷开发的大致流程。敏捷开发迭代:先搭起文献管理页面框架,在第一个版本的基础上新增功能。用飞书跟踪每日任务,明确自己要完成的任务。
β阶段每日任务

测试阶段
杨可清同学承担了系统测试的主要工作,他通过构建自动化测试脚本和设计测试用例,全面验证了我们开发模块的功能稳定性。此外在每次提交pr时都构建了自动化测试,只有通过自动化测试才能合并。团队还组织真实用户操作验证,依据反馈持续调优交互设计。这一阶段让我切实认识到测试环节的关键价值,并掌握了测试用例编写及自动化测试的基本方法。
发布阶段
项目上线时遭遇一次意外:因协作疏忽,包含敏感密钥的配置文件被误传到GitHub。团队第一时间完成以下前端紧急处理:在登录页面添加密码强度实时检测
此次事件让我意识到,发布不仅是功能交付,更是安全责任的开始。特别感谢学长协助排查隐患。
维护阶段
当前系统运行时间还不长,我们主要通过微信群里的即时问题反馈持续优化体验,根据这些反馈进行后续的迭代和优化——这些优化方向完全来自用户的实际使用痕迹,而非团队主观猜测。
四、心得体会
在本学期的软件工程实践中,我作为前端开发者参与了JieNote项目的全流程开发。通过这次团队项目,我不仅提升了编码能力,也对软件开发有了更实际的理解,主要收获有三方面:
1、技术能力的提升
我主要负责文献管理页面和组织协作页面的开发。在文献管理模块中,掌握了复杂页面的组件化设计与状态管理;在组织协作部分,深入理解了跨组件通信机制。虽然专注前端开发,但通过与后端同学的交流,也提升了全栈技术认知。
2、团队协作的重要性
和总需求对齐:学会根据需求写页面,明白这个页面需要哪些功能,以及怎么把这个页面做的和其他页面的风格一致。
和后端联调:通过API接口的对接,明白字段含义必须双方确认清楚(比如"create_time"是时间戳还是字符串)。
和测试协作:不能全部依靠测试模块发现问题,在编写代码的阶段就应该边写便测试,提前发现样式问题。
3、用户体验要落到实处
前端开发需平衡功能实现与用户体验。
例如:高频操作(如文献管理)优先保证效率;展示性页面侧重视觉清晰度和总体风格的一致性;交互细节需符合用户直觉(如按钮位置、反馈提示)

浙公网安备 33010602011771号