688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023福州大学-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 1.课程回顾和总结。 2.个人技术总结 |
| 其他参考文献 | 《构建之法》 |
Q1:如何区分一个好的程序员和不好的程序员呢?
新:汪老师在上课时说过未来随着人工智能的进一步加强我们需要的是会使用“工具”的程序员。这也是好的程序员应该具有的。我认为对于软件设计者而言,好的程序员就是能够高效率的用简洁,逻辑清晰的代码做出符合用户需求的功能。对于一个优秀的程序员,他还需要具有优秀的团队协作能力,不仅要在团队中完成自己的任务还要由自己的想法,具有优秀的创新能力。另外代码能力强不一定是好程序员,但代码能力不好肯定不是好程序员,一个好程序员不仅需要有清晰的思路对于目标功能进行定位,避免代码冗余,还要有对各种意外情况的判断,做好极端情况的判断处理,避免损失!
Q2:软件开发是年轻人的饭碗,吃的是青春饭?那年纪大的程序员经验丰富但是快速学习能力拼不过年轻程序员的时候该怎么办呢?
新:这学期我在面试的时候和公司的一些老员工有过一些交流。当我们年轻时有精力,可以多参加开发,多积累经验。在不断的学习中提高自己的代码编写能力,扩宽自己的眼界,同时在公司里面向管理层前进,不仅是为了薪酬,在年龄较大以后,身体状况下降肯定是没办法像年轻人动不动就通宵赶进度,那时候我们的经验和眼界就是我们最大的依仗。
Q3:项目的各部分均完成之后其中的代码怎么集成起来,遇到集成不了怎么办?
新:在《构建之法》第三版中提到分而治之方法的优点,对于软件设计者而言,均分与集成是必要的步骤,一个人的能力是有极限的。团队协作中,我们不可避免的遇到将功能拆分,每人负责一块的情况。在这学期的团队合作中,我们小组根据每个人的技术栈不同,分配了不同的任务。在最后β冲刺阶段我们根据完成情况对于第二阶段的任务又进行了细分,每个人有自己的分支,再通过分支进行整合,最后完成项目。
Q4:为何长久以来用户体验设计师或者用户体验专业没有被软件工程师或者计算机系所代替?或者说程序员在哪些地方是必须依赖一个额外的用户体验设计师的?
新:从这学期我们团队项目的制作来看,程序员了解一些用户体验设计的原则是非常必要的。就算我们作为软件工程师的设计出了自己认为不错的用户界面以及交互方式,实际做出来的其实往往远远达不到我们的预期。而这个现实和预期的差值往往需要一位经验丰富的用户体验设计师弥补。我们这学期制作的游戏有很多不足之处就是在用户体验中得到的反馈知道的。
Q5:对于一名工程师而言,究竟应该是更“专”一点好,还是更“广”一点好呢?
新:我和团队的同学聊过这个问题,对于工程师而言,可能需要更‘专’一点。但‘专’还是‘广’,实际上是由工程师在项目中的任务分工决定的。在一个团队中,需要有具备专业技术的工程师,否则项目无法深入研究开发,但也需要有领导者负责统筹兼顾,领导者不一定需要每一部分技术都清清楚楚,但是技术栈要全面,也就是‘广’。最重要的是,无论选择专一还是广泛发展,持续学习和不断提升自己的技能都是至关重要的。工程师应该保持对新技术和行业趋势的敏感。
随着chatgpt的发展,未来程序员应该如何选择自己的道路
我对它的思考:随着AI技术的发展,创造新的应用和工具成为一个重要的方向。未来我们可以开发新的应用程序、工具或平台,以便更好地利用AI技术解决问题、提高效率或改善生活质量。技术永远在不断发展,而我们的职业道路也可以根据个人的兴趣和目标进行调整和发展。
在这个阶段,我学会了需求分析、建模的方法,使用NABCD模型进行分析,将用户需求转化成用例文档,根据用例需求进行建模,使用规范的UML方法建立类图及一些活动图,让开发者更清楚知道要做什么,明确了之后的步骤。不至于杂乱无章。
在这个阶段,我学会了使用原型设计工具Axure还有墨刀进行原型制作,在结队作业时第一次进行原型设计,体验了绘制产品蓝图的便捷,很简单就可以做出所需交互效果。
在这个阶段,我在团队项目的合作中学会了Vue并进行前端开发。vue框架十分的轻量和高效,它是一个轻量级的框架,文件体积小,加载速度快,使用虚拟DOM和异步渲染策略,优化了性能,提高了应用的响应速度。Vue的组件化开发也给了我深刻的印象,通过组件化开发,在提高代码的可维护性和可复用性的同时,也能更好地组织和管理代码。
在这个阶段,主要是在个人编程实战中学会了使用单元测试。单元测试是一种有效的软件开发实践,它通过提高代码质量、减少错误和缺陷、支持重构和修改、提高代码可维护性、增强团队协作以及节省时间和成本等方面的优势,提供了更可靠、可维护和高质量的软件。
学会并成功在腾讯云服务器部署结对编程项目。在配置网络时闹了不少错误不过好在最后误打误撞还是配置成功。
这学期软件工程实践课程我们最先接触的就是个人项目的编写。我们通过编写代码并解决实际问题,不断提高自己的编程技能。你将学习如何设计和实现一个完整的软件项目,掌握编程语言的特性和最佳实践。
两个人组队进行原型设计及编程实现,因为队友对于前端知识的缺乏,我只能多担一些任务。在慢慢的指导他制作界面时,我也得学习新的知识来达成要求的效果。结对编程中团队成员相互审查彼此的代码。通过互相检查和讨论代码,我们能发现潜在的问题、提供反馈和改进代码的质量。
第一次参与八个人的大团队项目,真正体会到是要正式做一个完整项目,经过选题,需求分析,设计,编程一整个流程,对软件工程有了更多的认知。团队项目大作业要求我们所有团队成员合作完成一个较大规模的项目。这大大锻炼了我们的团队协作和沟通能力,包括有效的任务分配、合理的工作分工、有效的沟通和协调。
| 目标 | 掌握程度 | 解释 |
|---|---|---|
| 目标1:理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。 | 85 | 学习了软件工程师的职业道德规范和实践要求,并对软件产品对社会、健康文化等方面的影响有了一定的了解。我也积极参与讨论和学习,努力树立积极向上的软件开发理念。然而,还有一些深入的社会和文化方面的知识需要进一步学习和了解。 |
| 目标2: 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。 | 90 | 了解了需求分析的全过程,包括需求表达工具的使用和构建需求分析模型。可以辨别客户表述的多样化要求,并能够规范、准确地表达客户的需求。我还在实践中使用了一些需求表达工具,如用例图,来帮助我更好地理解和表达需求。 |
| 目标3: 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。 | 80 | 我在课堂上学习了软件开发的全过程,包括体系结构设计方法和基本设计原则。我能够完成从体系结构设计模型、数据设计模型到构件级设计模型的设计工作,并形成面向高效可靠的服务组件设计方案或软件系统设计方案。然而,我还需要进一步提升我的技术评审能力和对设计方案的创新性。 |
| 目标4: 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。 | 75 | 我能够执行从组件到软件系统的技术评测,并具备一定的设计模型的评判能力。在设计方案的选择方面,我还需要进一步培养创新设计意识,并学会更好地优选设计方案。 |
| 目标5: 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。 | 85 | 我在课堂上学习了软件开发各阶段文档标准,并能够采用规范的表达方式。我掌握了需求规格说明书、系统设计说明书、系统测试报告等文档的撰写方法,并能够与业界同行进行有效的交流。不过,我仍有进一步提高文档撰写质量和交流能力的空间。 |
| 目标6: 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。 | 90 | 我在团队项目中表现出良好的团队意识和合作技能。我能够与其他成员开展有效的沟通和协作,能够在团队中组织、协调或指挥工作。我能够积极参与团队讨论和决策,并与团队成员友好交流。 |
| 目标7: 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。 | 80 | 我能够辨别具体软件项目管理中涉及的构成要素,并掌握软件规模和工作量的估算方法。我也能够选择合适的工具规划软件进度并对项目管理过程进行配置。在管理复杂软件工程项目的能力方面,我还需要进一步的实践和经验。 |
相信你对多人团队编程和项目开发有了自己的新的认知,后续继续努力!
随着chatgpt的发展,未来程序员应该如何选择自己的道路
请看博客: https://blog.csdn.net/SoftwareTeacher/article/details/131019345