开发和软件工程一样吗?

时间:2024年 10月 02日

作者:小蒋聊技术

邮箱:wei_wei10@163.com

微信:wei_wei10

音频:喜马拉雅

大家好,欢迎来到“小蒋聊技术”,我是小蒋!

今天咱们要聊的话题是——开发和软件工程到底一样吗?很多朋友可能会觉得,它们差不多嘛,都是搞软件的,但其实呢,这两者之间有着很大的区别。咱们今天就来深入聊聊这个话题。

1. 开发和软件工程:两个角色的比喻

咱们先来打个比方。开发(Programming像什么呢?

开发更像是一位厨师,他的主要工作就是把原材料(代码)加工成一道道美味的菜品(功能)。客户说今天需要一份清蒸鱼,开发人员就开始准备,洗鱼、调味、蒸煮,然后美味上桌。只要菜好吃、端得快,客户就满意。

软件工程(Software Engineering又像什么?

软件工程更像是一家餐厅的总经理。他不仅要考虑清蒸鱼怎么做,还要考虑厨房运作是否顺畅、食材供应链是否稳定、客户就餐体验是否舒适等。简而言之,软件工程关注的是整个系统的有序运转,而不仅仅是把菜做出来。

所以,如果说开发就是让功能正确实现,那么软件工程就是确保整个项目稳定、持续地成功

2. 场景中的具体例子

让我们来看个实际的例子:假设你正在开发一个电商网站,客户说:“我要个‘购物车’功能,用户可以往购物车里加东西,然后去结账。”

开发人员会怎么做?他马上开始编写代码,创建“添加到购物车”的功能。这个功能上线后,用户可以用得很好,购物车可以正常使用——这就是开发者的工作:快速实现功能。

但是,软件工程师会考虑得更多。他会问自己:“这个购物车功能未来是否需要支持多人同时操作?如果系统流量突然增加,这个功能能否承受?我们是不是要为将来的功能扩展留下余地?”他不仅仅在意功能的实现,还要确保系统能够应对未来的变化。

这就是两者的区别:开发人员专注于现在的功能实现软件工程师则考虑到未来系统的长期维护和扩展

3. 方法论的对比:节奏的差异

开发的节奏通常很快——客户今天需要一个功能,明天又要另一个功能,开发人员的任务就是尽快交付。这就像厨师快速做好一道菜,给顾客上桌。

软件工程的节奏就慢得多了。因为它不仅仅是在写代码,它还要设计系统架构、进行代码评审、测试、部署、监控等各个环节。软件工程师需要的是系统性的思维,就像餐厅经理要确保每个菜品从采购、烹饪到上桌,整个流程都能顺畅运行。

4. 互动环节:代入思考

我们来做一个小互动,假设你是一个开发人员,客户告诉你:“我需要在网站上增加一个‘打折促销’功能。”你会怎么做?

开发人员的思路:马上写代码,加入打折计算逻辑,测试一下这个功能是否能够正常运行。功能实现了,交给客户就好,这就是开发人员的工作。

那么,如果你是一个软件工程师呢?你会怎么考虑?是不是这次促销功能还会影响到其他的结算逻辑?如果打折规则越来越复杂,我们的系统架构是否能够支持?未来的版本中,我们要怎么扩展这个功能?软件工程师要思考的不仅仅是现在,还要考虑系统未来的可维护性和扩展性。

5. 角色的定位和合作

有些朋友可能会问,那开发和软件工程是不是对立的?当然不是!它们其实是互补的。开发人员是软件项目的执行者,他们确保每一个功能都能快速、准确地实现。而软件工程师是规划者和管理者,他们确保项目能够在长期内稳定、高效地运转。

举个例子,就像一个足球队,开发人员是前锋,他们专注于进球,软件工程师则是教练,设计整个战术,确保球队能够长期赢得比赛。没有开发,项目无法落地;没有软件工程,项目可能会陷入混乱。

6. 结论:开发和软件工程的区别与联系

总的来说,开发和软件工程的区别在于它们的关注点和执行方式不同。开发更注重功能的实现和效率,而软件工程则注重系统的管理和可持续性。两者不是对立的,而是相互配合,共同保障软件项目的成功。

7. 落地思考:如何选择?

最后,我们不妨问问自己:你更适合做开发,还是软件工程? 如果你喜欢快速解决问题,享受写代码的乐趣,也许开发会更适合你。而如果你更喜欢全局规划,关心项目的整体结构和长远发展,软件工程可能会更适合你的职业发展。

不管你选择哪条路,最终都需要一定的平衡和配合,这也是我们在团队合作中最需要学习的。

好啦,今天的分享就到这里!如果你对开发和软件工程还有其他想法,欢迎在评论区留言,我们下期继续聊更多有趣的话题!我是小蒋,我们下次再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1553075.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

17.反射与动态代理

目录 1.反射的概述 2.学习反射到底学什么? 3.字节码文件和字节码文件对象 4.获取字节码文件对象的三种方式 5.Class类中用于获取构造方法的方法 6.Class类中用于获取成员变量的方法 7.Class类中用于获取成员方法的方法 8.反射和配置文件结合动态获取的练习与利用反…

Java类和对象、自定义包、static、代码块、方法重写

目录 1.类和对象 2.this指针 3.对象的构造和初始化 3.1默认初始化 3.2就地初始化 3.3构造初始化 3.4IDEA快速填充 3.5使用this简化 3.6初始化的总结 4.包的引入 4.1包的概念 4.2导入包中的类 4.3自定义包 5.static修饰 6.代码块的划分 7.方法重写 1.类和对象 使…

C++系列-多态

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 多态 多态就是不同类型的对象,去做同一个行为,但是产生的结果是不同的。 比如说: 都是动物叫声,猫是喵喵,狗是汪汪&am…

rancher hello-world

创建一个Deployment, 只填名称和容器镜像rancher/hello-world 成功后: 查看日志 结果: 部署了工作负载。这个过程可能需要几分钟完成。 当您的工作负载部署完成后,它的状态将变为Active,您可以从项目的工作负载页面查看工作负载当前的状态…

ARM assembly: Lesson 10

今天,我们来看一下基于ARM汇编,如何实现函数的调用。 基础知识 在ARM汇编中,函数的前四个参数存放于 R0~R3寄存器中, 剩余的参数存放于栈中,返回值存放于r0。在栈中存放数值,可以避免在调用过程中,数据的…

串--KMP算法之手动计算next数组(详解)

目录 一、手动计算next数组 二、使用next数组进行模式匹配 三、练习 一、手动计算next数组 next[2] 表示模式串和主串对比,模式串里面第2个字符和主串不匹配,j应该指向几? 首先:字符串的下标和next数组下标保持一致 字符串是1~…

初识TCP/IP协议

回顾上文 来回顾一下TCP协议的特性,有一道比较经典的题:如何使用UDP实现可靠传输,通过应用程序的代码,完成可靠传输的过程? 原则,TCO有啥就吹啥,引入滑动窗口,引入流量控制&#x…

计算机毕业设计 农场投入品运营管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

ECP5701:PD协议芯片兼容PD 2.0和PD 3.0 (5V,9V,12V,15V,20V),支持 PD 输入多种类型无线充方案

TYPE-C接口,全称USB Type-C,是近年来在电子设备中广泛采用的一种新型接口。它以其小巧的尺寸、可逆的插拔方向以及高速的数据传输能力,迅速取代了传统的USB接口,成为现代设备的标准配置。不仅如此,TYPE-C接口还支持PD&…

2024年音频转文字:不可错过的四大工具!

在数字化办公和学习的背景下,音频转文字服务正变得越来越重要。本文将针对几款备受推崇的音频转文字工具进行深入解析! 365在线转文字:云端处理,无需下载 直达链接:www.pdf365.cn/ 365在线转文字以其高效的转录速度…

Pikachu-Cross-Site Scripting-存储型xss

存储型xss &#xff0c;随便输入点内容&#xff0c;都能保存下来&#xff1b;刷新后也不会丢失&#xff1b;输入特殊字符&#xff0c;也能原样返回&#xff1b; 查看代码&#xff0c;也可以看到输出结果直接原路返回&#xff0c;不做处理 构造payload <script>alert(1)…

batch和momentum

&#x1f680; 机器学习系列前期回顾 1、初识机器学习 2、线性模型到神经网络 3、local minima的问题如何解决 &#x1f680;在初识机器学习中&#xff0c;了解了机器学习是如何工作的并引入了线性模型&#xff0c;在线性模型到神经网络这节&#xff0c;将线性模型进一步改进为…

【web安全】——XSS漏洞

1.XSS漏洞基础 1.1.漏洞成因 XSS(Cross-site scripting)被称为跨站脚本攻击&#xff0c;由于与层叠样式表的缩写一样&#xff0c;因此被缩写为XSS.XSS漏洞形成的原因是网站/程序对前端用户的输入过滤不严格&#xff0c;导致攻击者可以将恶意的is/html代码注入到网页中&#x…

基于Word2Vec和LSTM实现微博评论情感分析

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…

【Python报错已解决】TypeError: unsupported operand type(s) for +: ‘str‘ and ‘int‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

【C++前缀和】2845. 统计趣味子数组的数目|2073

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode 2845. 统计趣味子数组的数目 难度分&#xff1a;2073 给你一个下标从 0 开始的整数数组 nums &#xff0c;以及整数 modulo 和整数 k 。 请你找出并统计数组…

(作业)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第3关Git 基础知识

任务编号 任务名称 任务描述 1 破冰活动 提交一份自我介绍。 2 实践项目 创建并提交一个项目。 破冰活动 提交一份自我介绍。 每位参与者提交一份自我介绍。 提交地址&#xff1a;https://github.com/InternLM/Tutorial 的 camp3 分支&#xff5e; 安装并设置git 克隆仓库并…

分散加载文件 scatter files

目录 一、加载域和执行域二、Image entry points三、映射符号四、链接器预定义符号1、将符号引入到程序中1.1 引入到 C/C1.2 引入到汇编 2、域相关的符号2.1 执行域符号 Image$$2.2 执行域符号 Load$$2.3 加载域符号 Load$$LR$$2.4 节相关的符号2.5 镜像符号2.6 输入节符号 五、…

【Nacos 架构 原理】服务发现模块之Nacos注册中心服务数据模型

文章目录 服务&#xff08;Service&#xff09;和服务实例&#xff08;Instance&#xff09;定义服务服务元数据定义实例实例元数据持久化属性 集群定义集群 生命周期服务的生命周期实例的生命周期集群的生命周期元数据的生命周期 服务&#xff08;Service&#xff09;和服务实…

收单外包机构备案分析及建议

2020年9月16日&#xff0c;中国支付清算协会&#xff08;下称“中支协”或“协会”&#xff09;公示了首批收单外包服务机构备案名单。历经5年&#xff0c;约进行50次公示后&#xff0c;截至9月21日共备案收单外包机构32457家&#xff0c;取消备案机构316家&#xff0c;拟取消机…