随着方班课程相关笔记落下帷幕,我将借用这门新的笔记,通过方班特色课《网络安全综合实验》来讲解软件工程这门课
安全综合实验有几个不同的部分,其中有一部分做的是网安实验类似靶场部署之类,这个不擅长我就没选;另一个方向是业务开发,自行找合适的项目做开发,同时完成相关的文档。
我也在前面说过,我不是计算机相关本科的,为了考研才学的408几门课,但这对于正常开发的朋友来说显然是完全不够的,举个例子如果想要开发前后端,以苍穹外卖为例:
苍穹外卖是黑马程序员推出的前后端分离实战项目 ,基于 Spring Boot + Mybatis-Plus + Redis + Mysql + 微信小程序 / 管理后台,分为商家管理端(后台)、用户小程序端 ,覆盖外卖全业务:菜品、分类、订单、支付、购物车、配送、权限、报表等。下面分前端、后端、数据库、中间件、工具、业务 & 框架拓展六部分整理必备知识,按学习优先级排序。
当然,可以简单分为前端+后端,主要内容包括前端交互知识,计算机网络,操作系统,数据库等
然而,除了这些知识上的东西,我们还需要讨论更深层的东西:
这毕竟是个庞大的系统,你要怎么保证自己的开发质量,不同模块相互配合不出错呢?如果一群人一起开发,怎么保证质量可靠,内部沟通有序呢?
软件工程将零散编程转化为标准化工程实践,核心是解决软件开发无序、低效、易出错的问题。它教会我们需求分析、架构设计、项目管理、测试维护全流程规范,平衡成本、周期与软件质量,规避需求混乱、代码冗余、后期难以维护等常见开发问题。同时培养团队协作思维,统一开发流程与文档标准,让多人协作的复杂项目可控可迭代,也为苍穹外卖这类大型实战项目提供规范开发思路,帮助开发者跳出单纯写代码,具备完整软件产品构建与交付的综合能力。
简单来说,这种正经软件的开发难度大于一般的课设,对内要保证要保证一群人一起开发时相互沟通不出错,不同模块开发后彼此能正确衔接,每个人的工作分工明确而项目对接要恰当避免员工乱甩锅;对外要保证能够及时弄清甲方的意图,先讲清楚他要什么,沟通好每个细节避免拍脑袋做决定,及时跟进汇报保证能够正常打款;对于项目而言虽然写屎山在所难免,但毕竟不是本意,最开始写的时候肯定希望代码健壮可读,规范统一,方便维护等。
在前后岗位待过的小伙伴应该会熟悉,自己实际分配的工作一般是给个文档提出需求,规定了接口文档和相关的工程细节,本质上是让你自行根据要求开发一个独立的模块,要自行用案例测试保证起码基本正常,合并后在做更多的测试保证模块提交后能够正常运行,避免意想不到的bug出现。
在AI时代,写出符合规范的代码已经是很简单的事情,如何让代码写的健壮可读,可能更取决于开发者本身对工作本身的理解深度。如果你的计算机相关水平很差,则AI指令只能给出简单的东西,让大模型自行摸索,给出来的答案和你已经有了详细思考过的框架给出来的细分模块差距会很大,质量也天差地别------演示里最喜欢的是一行指令写出一个交互的html,但如果用这样的思维做后端等会有较大的问题,尤其当涉及并发等AI静态下难以把控的场景下。
因此,这是一个野心勃勃的大工程,我这个栏目并非软件工程速成课,而是用它来作为:
了解软工开发相关流程与实践
AI实践下的项目开发与文档构造,会涵盖多个项目,包括苍穹外卖,MIT 6.031: Software Construction,UCB CS169: software engineering。整体来说这将是我目前学习的最大的一个工程
我的内容将按阶段分为:软工原理;AI时代下的代码工程管理和文档构造;前后端相关知识速通,实战
总的来说内容会包罗万象,如果你对这个项目感兴趣,欢迎和我一起学习!