我对软件工程的理解
在选择软件工程这门课之前,我对“软件开发”的理解大多还停留在个人写代码、调 Bug 的阶段。然而,经过两周的学习与思考,我发现开发软件远远超过“编写程序”这一简单的范畴。
相比于单纯的编写程序,软件工程在以下几个方面让我有了新的理解。
软件是一个完整的工程
过去我认为“软件”可以简单等同于“可运行的程序”,但从工程视角来看,软件是“程序 + 数据 + 相关文档”的集合。
一个只写了代码却缺乏文档与数据的项目,随时可能面临崩塌的风险。同时,也加大了后续开发的难度。因此,相比于单纯开发程序,如何组织和管理数据和文档,也是软件工程的核心工作。
软件需要“工程化”管理方法
个人写一个几十行的小脚本,凭借个人记忆即可完成;但现代软件系统规模庞大,独自开发几乎不可能。即使团队编写,往往也有较长的时间周期,非常容易遗忘,后期检查和修改也会十分困难。这决定了我们不能靠“作坊式”的单打独斗,必须引入工程化方法,贯穿软件的整个生命周期。
这样的工程化思维也颇具启发性。尤其是现在可以利用多个agent来共同协作完成一个复杂地项目。这样的工程化思维也有利于管理多个agent,更加有组织地完成大型项目地开发。
软件拥有丰富的开源生态
软件与程序考试题目不同,不需要开发者从零开始独立完成的。在现代软件开发中,开源软件生态十分丰富。从我常用的Linux系统到pytorch框架,开源极大地降低了开发者的工作门槛。这对我们寻找合适的开源资源提出了要求,充分利用开源资源,可以帮助我们更好地完成项目。但与此同时,理解开源许可证分类以及合规使用开源组件,也是需要具备的素养。
综上所述,软件工程不仅是一门学习代码的课程,更是一门学会管理的工程教学。期待在这个学期中不断深化理解与实践,并更好地将学习心得应用于未来的实际开发工作。
浙公网安备 33010602011771号