122
社区成员




这个作业属于哪个课程 | 2302软件工程社区 |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
这个作业的目标 | 课程回顾与总结、个人技术总结 |
其他参考文献 | 《构建之法》 |
GPT-4等AI工具生成的文本通常具有高度的可预测性和相似性,教师可以比较同一班级不同学生的作业,如果有很多相似或完全一样的句子、段落,那么就应该怀疑有没有是ChatGPT生成的可能。并且现在的市面上的一些检测软件也很多,可以通过检测软件来甄别
教师可以采用多种策略来甄别学生是否使用GPT-4来完成作业。除了使用检测软件外,教师可以通过了解每个学生的写作风格和水平来进行判断。此外,可以增加面对面的讨论和即兴写作任务,从而更好地评估学生的真实能力。同时,鼓励学生在作业中加入自己的独特见解和实践经验,这有助于识别纯AI生成的文本。
具体问题应该具体分析,一个软件的诞生就是为了解决某些问题,具体来说,如果这些人提出的要求确实对于处理问题有更好的帮助,在开发成本允许的情况下,就应该满足这一小部分人的要求。如果提出的需求是吹毛求疵的,对于软件的使用体验没有很好的增加的,甚至开发这个功能所需要的成本远大于收益,那么开发团队就应该好好斟酌一下这个功能到底需不需要添加。
作为产品和项目的管理者,要做好需求分析,辨别是否为伪需求。对于真实需求,需要继续评估开发难度和投入产出比。最重要的是具体问题具体分析,保持敏锐的产品洞察力和用户思维。满足小部分人的需求有时可以提升产品的独特性和用户忠诚度,但需要确保开发成本与潜在收益之间的平衡。
传统的搜索引擎有着它的独特的优势,通过关键词匹配,搜索排名等技术也会用户带来大量的信息。而ChatGPT类应用为用户提供了智能且个性的服务,在我看来,未来这两个应用的定义边界会越来越模糊,它们会互为补充,为用户提供更好的服务。短时间内,肯定不会被完全替代,长远来看,随着技术发展,我觉得它们互相融合的可能性更大。
传统搜索引擎和GPT类应用各有其独特优势。搜索引擎能够快速提供大量信息和链接,而GPT类应用则提供详细的、上下文相关的回答。未来,两者可能会融合,结合搜索引擎的广泛信息获取能力和GPT的智能回答能力,为用户提供更全面的服务体验。短期内,它们会共存互补;长远来看,技术的融合将带来更多创新的使用场景。
虽然测试代码应该由最熟悉这个代码的人来写,但是写代码的人有着一种天然的局限性。可能会有着自己写的东西不会出错的心态,或者根本发现不了自己的错误。所以开发团队中应该由专门负责测试的人来写单元测试。至少不能全部都是开发者来写单元测试,这样子对于测试的有效性会大打折扣。
在实践中,单元测试的编写应当是开发者和测试人员共同的责任。开发者编写初步的单元测试可以确保代码的基本功能正常,而专门的测试人员则可以提供更全面、更有深度的测试覆盖,从而确保代码的健壮性。结合两者的优势,可以显著提升代码质量。
我觉得博客就是文档,用于记录开发过程中的心得体会,技术要点什么,多写写总是有好处的。写博客的过程就是对于开发过程的总结,自己会自发的进行思考。对于技能可以更好的理解,并且现在的博客有很多模版,可以通过利用模版来提高写作效率。当然了,学习工作中要分清轻重缓急,需要把任务完成了之后利用空闲时间多写写博客肯定比闷头写代码要好。
写博客不仅是记录和总结的过程,更是自我反思和知识沉淀的机会。通过写博客,我可以梳理思路,加深对技术的理解,同时为他人提供学习资源。虽然写代码是直接的生产活动,但写博客可以帮助我更好地理解和掌握所学知识,从而在长远上提高自己的编码效率和能力。因此,合理分配时间,既专注于代码开发,又积极记录和分享心得,是一种有效的学习和成长方式。
在这次课程中,我作为组长,主要负责产品和AI开发,在需求分析和沟通工作参与较多,这让我在需求分析和沟通能力上有了显著提升:
在设计阶段,我参与了前端设计,收获颇丰:
在实现阶段,我在技术和团队管理上都有很大收获:
在测试阶段,我对测试的重要性有了更深刻的认识,并学习了许多新的测试方法和工具:
发布阶段让我在生产环境部署上学到了很多:
通过这个项目,我复习并巩固了Java的相关语法,并掌握了如何从网络源获取数据。项目中,我对数据进行了深入的分析和处理,并进行了性能优化。同时,还熟悉了单元测试框架JUnit的使用。
项目的最具挑战性的部分在于:
这次实践不仅提升了我的API调用技巧和JSON数据处理能力,还强化了我在文件操作和项目规范方面的技能,使我在未来的项目中能更自信地应对类似的数据处理挑战。
结对编程环节很幸运组到了一个认真负责的大佬,我们一拍即合,在前期一起制定了项目的分工,各司其职,我们选用vue+springboot的主流前后端方案,共同学习,互相探讨,最终圆满地完成了任务。这次合作不仅提高了我的技术水平,也让我深刻体会到团队合作的重要性和乐趣。
这个项目我们前期构思了很久,进行了大量的需求分析和市场调研。不过,最初设想的项目有点过于庞大,包含了很多功能,以我们团队目前的规模和技术水平,短时间内很难实现一个比较精良的成品。所以我们只能精简了很多功能,把目标定在确保整个流程能够顺利跑通上。但实际上,为了实现这个目标,我们需要涉及到很多复杂的技术,比如AI、系统架构、第三方平台对接、以及编辑器等等。在项目启动阶段,我们花了很多时间调研各种功能需求的解决方案,并与开发团队一起开会讨论,最终确定了适合我们项目的解决方案。经过多次文档之间的来回查阅和核心框架的搭建与调试,我们终于搭建好了项目的基本框架。接下来,我们把各个模块分配给团队成员进行开发。虽然大部分成员都是第一次使用这些技术框架,但他们的学习能力很强,最终我们成功地实现了整个流程的顺利运行,达到了最初的预期目标。
目标编号 | 目标描述 | 评分 | 解释 |
---|---|---|---|
目标1 | 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。 | 95分 | 经过一学期的学习,我充分理解了软件工程师需要遵守的职业道德规范和实践要求,项目对社会影响积极健康,为国家和社会发展做出贡献。 |
目标2 | 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。 | 95分 | 通过软件工程实践,我掌握了需求分析的全过程,能够使用NABCD模型进行需求分析,并进行快速原型开发。 |
目标3 | 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。 | 90分 | 经过软件工程实践,我了解了软件开发的全过程,学习并遵循了体系结构设计方法和设计原则,形成了高效可靠的设计方案。 |
目标4 | 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。 | 90分 | 经过软件工程实践,我具备了执行技术评测和设计模型评判的能力,也培养了创新设计意识。 |
目标5 | 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。 | 95分 | 在软件工程实践中,我负责撰写和整合各种文档,并遵循了软件开发文档标准,具备了与业界同行交流的能力。 |
目标6 | 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。 | 90分 | 在团队项目中,我展现了良好的团队意识和协作技能,能够有效沟通、协作,并组织团队完成任务。 |
目标7 | 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。 | 90分 | 经过软件工程实践,我掌握了项目管理的基本要素和估算方法,能够选择合适的工具规划项目进度和管理过程。 |
在LangChain中使用国产大模型调用Tools的实践总结
概述:主要讲了如何在LangChain中集成和调用国产大模型,并调用tools,解决流式传输的问题。