我的编程空间,编程开发者的网络收藏夹
学习永远不晚

软件开发的核心原则有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

软件开发的核心原则有哪些

这篇文章主要讲解了“软件开发的核心原则有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“软件开发的核心原则有哪些”吧!

作为一名程序员,小伙伴们有没有想过这个简单的问题,“软件是什么?”可以闭上眼睛让自己想一会,如果觉得有点抽象不太好回答的话,来看看我的答案。

  • 软件 = 程序 + 数据 + 文档 + (服务)

  • 程序 = 数据结构 + 算法

看完这两个直观的公式,是不是有一种恍然大悟的感觉,“哦,原来这样啊。”

再来看四条对“软件”的定义,虽然比较枯燥,但概念是到位的:

  • 软件是能够完成预定功能,达到预期性能的,可以执行的计算机指令;

  • 软件是能够让程序处理适当信息的数据结构;

  • 软件是描述程序操作和使用的文档;

  • 软件是一种逻辑实体,具备知识性的产品集合,是对物理世界的一种抽象,同时又是一种人脑智力的成果。

在很多自以为是的甲方眼里,软件是廉价的,可以随意复制的,因此他们经常提出一些苛刻的要求,其中有一些让软件开发者感到哭笑不得:“这个需求简单的嘞,你去网上随便找个现成的,改一改就好了呀,花不了多长时间的,一个月可以搞定吧?”每次听到类似的话,我的心里就有一万只草泥马奔腾而过。

软件开发并不是一件轻而易举的事情,需要经历下面这些基本过程:

1)软件计划,确定产品定位和目标用户。这一步是需要甲方去规划和调研的。

2)软件需求分析:根据甲方需求,分析出甲方需要的产品功能。这一步是需要项目负责人(或者产品经理)去和甲方沟通的。

3)根据需求进行设计:包括概要设计和详细设计。这一步是需要项目负责人(或产品经理)做的,并且要正确地传达给开发人员。

4)编码并运行。这一步是需要开发人员去做的。

5)测试:确认甲方需求,对设计和结果进行验证。开发人员要进行单元测试,集成测试,如果有专业的测试团队的话,就需要站在甲方和用户的角度去测试整体产品是否符合要求并达到性能要求。

6)维护:保证软件能够在正式环境下运行,并且对一些缺陷(bug)进行修正,或者对功能进行完善,或者对性能进行改进,不断迭代软件版本。

瞧,软件开发的过程并没有甲方想象中那么简单,如果有小伙伴遇到不讲理的甲方,就把这篇文章扔给他好好看看。

既然软件开发的过程是有难度的,是需要付出时间和精力的,那就有必要遵循一些原则,否则开发成本就会变得很昂贵,开发周期就会拖延很长时间。

软件开发的核心原则有哪些

原则一:Don't Repeat Yourself。

直译叫做“不要重复你自己”,还有另外一个耳熟能详的版本,“不要重复造轮子”。

在你一开始进入软件开发这个领域后,就一定要注意,把你自己写过的一些解决方案汇总到一起,定期梳理一遍,写点文档,不断重构,使它们成为一把把瑞士军刀。如果可以的话,把它们开源出来,服务更多的开发者。

有了自己的工具库后,当你下次遇到类似的需求时,就可以直接拿出来用,省去不少时间。

除此之外,你还应该善于利用那些业界已经开源出来的成熟的技术方案,比如下面这些。

软件开发的核心原则有哪些

GitHub  和码云是两个充满宝藏的地方,如果你觉得自己的能力还不到自己造轮子的份上,那就一定要多上上这两个网站,里面有很多成熟的解决方案供你免费使用。

比如说,你要一套商城系统,那么 marcozheng 的 mall 就可以直接拿来作为原型。比如说,你要一套人事管理系统,那么江南一点雨的 vhr  就可以直接拿来作为原型。(虽然推荐了很多次,但好朋友的,多推荐一次不嫌多。)

原则二:Keep it simple stupid。

著名的 KISS 原则,即“保持简单、保持愚蠢”,和史蒂夫·乔布斯的名言“stay hungry, stay foolish”有着异曲同工之妙。

从苹果产品的设计上也可以体现出来这个原则,起初的手机,比如说诺基亚智能机,带很多实体键,但苹果只有一个 home  键,其他全部虚拟键代替,彻底革了诺基亚的命。

在我们设计软件的过程中,千万不要想得太复杂,越简单越好,等成型了以后再丰富效果,否则开发成本会变得很昂贵,软件就可以腹死胎中。

原则三:You Ain't Gonna Need It。

英文直译为“你不需要它”,该规则要求程序员在必要之前不应该添加功能。极限编程的联合创始人罗恩·杰弗里斯(Ron  Jeffries)曾经说过:“总是在实际需要时才实现事物,而不是在预见到需要它们时才实现。”

项目负责人(产品经理)更应该坚持这条原则,千万不要过度拆解用户的需求,在产品设计的过程追加过多自己认为应该追加的功能,因为在一个软件使用中,往往 80%  的请求都花费在 20% 的功能上。

很多次要的功能可能需要,因为它们的存在而使软件锦上添花,但没有它们,软件的商业价值依然是存在的。功能越少,开发周期就会越短,这样就更有可能打败竞品。

原则四:Done is better than perfect。

Done is better than perfect because perfect is never done。

很简单的一句英文,能理解吧?

不要总想着把所有的功能做完善,做完美后再上线,应该在产品具有一定的雏形后就立即上线试错,根据用户的反馈,根据市场的需求再去考量是否追加一些其他的功能或者优化。

“人无完人,金无足赤”,应该允许一些瑕疵存在,刻意追求完美并不见得是一件好事。乔布斯想要一整块屏幕,但技术达不到的时候,他也是会留一个 home  键的。

我们程序员在开发软件的时候,也应该遵循这条原则,先把功能做出来再说,至于效果,用户的体验,应该往后放,不要总想着尽善尽美,尽善尽美意味着永远也完不成——没有最好,只有更好。

原则五:Choose the most suitable things。

选择最适合的,不要盲目追求时髦。技术日新月异,应接不暇,如果在开发软件的时候,一味追求最前沿的技术,可能就会让产品变成小白鼠。

就好像我们谈一场恋爱,不要一味去追求高不可攀的,往往那些在我们身边的,肯陪伴我们的才是最好的。

技术选型的时候,适合就好。如果产品的目标用户只有一千人不到,就没必要搞分布式,搞大数据,否则就有点“蛇吞象”的意味;等真到了需要搞分布式,搞大数据的时候再升级完全来得及。

感谢各位的阅读,以上就是“软件开发的核心原则有哪些”的内容了,经过本文的学习后,相信大家对软件开发的核心原则有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软件开发的核心原则有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Flume的核心组件有哪些

Flume的核心组件包括:Source:用于接收数据并将其传输到Flume中的通道。Channel:用于存储接收到的数据,以便后续传输给Sink。Sink:用于将数据传输到目标系统,如HDFS、Kafka等。Agent:Flume的运
Flume的核心组件有哪些
2024-03-07

Hadoop的核心组件有哪些

Hadoop的核心组件包括以下几个:Hadoop Distributed File System (HDFS):分布式文件系统,用于存储数据,并且将数据分散在集群的多个节点上。YARN (Yet Another Resource Negot
Hadoop的核心组件有哪些
2024-03-12

开发智能小程序有哪些原则

这篇文章给大家分享的是有关开发智能小程序有哪些原则的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发智能小程序四大原则。第一、定位要准确。 现在每天都有大量的小程序上线,在这种情况下,如何脱颖而出,开发前的精确定
2023-06-27

用c#开发的软件有哪些

使用 c# 开发的主要软件C# 作为一种现代、面向对象的编程语言,广泛用于开发各种类型的软件,包括:桌面应用程序Windows Forms:用于构建具有图形用户界面的桌面应用程序。WPF(Windows Presentation Fr
用c#开发的软件有哪些
2024-04-04

Java开发中的规则有哪些

今天就跟大家聊聊有关Java开发中的规则有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、关键字&标识符1、关键字:被Java语言赋予了特殊含义,用作专门用途的字符串(单词);
2023-05-31

小程序开发的重心有哪些

今天小编给大家分享一下小程序开发的重心有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1,明确您的发展方向小程序开发的功
2023-06-27

java开发语言的软件开发平台有哪些

Eclipse :Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development
java开发语言的软件开发平台有哪些
2014-09-16

Web前端开发工程师需要掌握的核心技能有哪些

Web前端开发工程师需要掌握的核心技能有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Web前端开发所涉及的内容主要包括W3C标准中的结构、行为和表现,那么
2023-06-08

win10打开软件非常慢的原因有哪些

Win10打开软件非常慢的原因可能有以下几个:1. 硬件配置低:如果计算机硬件配置较低,例如内存容量较小,处理器速度较慢,硬盘读写速度较低等,会导致软件打开速度较慢。2. 软件冲突:某些已安装的软件可能与要打开的软件存在冲突,导致打开速度较
2023-08-26

java并发编程的原则和技巧有哪些

这篇文章主要为大家展示了“java并发编程的原则和技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java并发编程的原则和技巧有哪些”这篇文章吧。并发编程的原则和技巧  1、单一职责原则
2023-06-27

Web开发中文件名要小写的原因有哪些

本篇内容介绍了“Web开发中文件名要小写的原因有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、可移植性Linux 系统是大小写敏感的
2023-06-27

Golang开发者放弃的原因有哪些?

Golang(Go语言)作为一种快速、简洁、高效的编程语言,吸引了许多开发者的关注和使用。然而,即使Golang具有许多优点,依然有一些开发者选择放弃使用这门语言。本文将探讨一些Golang开发者放弃的原因,并提供具体的代码示例。1. 学
Golang开发者放弃的原因有哪些?
2024-03-01

编程热搜

目录