软件构造感悟之构造过程与项目配置

软件构造过程与项目配置 {ignore=true}

1. 软件构造过程

两个基本类型的构造过程:线性过程与迭代过程。

存在的模型:瀑布过程、增量过程、V字模型、原型过程、螺旋过程等。

各个过程有各自的优缺点,但是都有一个共同的特点:软件构造过程是一个复杂的过程

2. 敏捷开发

敏捷开发是当下最流行的软件开发方法,它的核心是迭代开发。
快速迭代,快速反馈,快速响应。

敏捷编程有极限的用户参与、极限的小步骤迭代、极限的确认/验证,故也叫极限编程(XP)。

3. 软件配置管理与版本控制系统

软件配置管理(SCM)是一种管理软件构造过程的方法,它的核心是版本控制系统(VCS)。

版本控制系统是一种记录文件内容变化的系统,它可以在文件内容发生变化后,将文件的新版本保存起来,可以在将来将文件恢复到旧的版本。
比较典型的版本控制系统有:SVN、Git等。
而我们主要使用的是Git,并且可以使用GitHub来托管我们的代码。

在开发时,会有版本号的概念,比如:v1.0.1、v2.0.3等,这些版本号是由版本控制系统来管理的。
而这些版号也是有对应意义的。
版本号
在API中,这个版本号遵循语义版本规范。
版本号递增规则如下:

  • 主版本号:当你做了不兼容的 API 修改,
  • 次版本号:当你做了向下兼容的功能性新增,
  • 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

4. Git

Git指令与仓库关系

Git 将顶级目录中的文件和文件夹作为集合,并通过一系列快照来管理其历史记录。在Git的术语里,文件被称作Blob对象(数据对象),也就是一组数据。目录则被称之为“树”,它将名字与 Blob 对象或树对象进行映射(使得目录中可以包含其他目录)。快照则是被追踪的最顶层的树。例如,一个树看起来可能是这样的:

<root> (tree)
|
+- foo (tree)
|  |
|  + bar.txt (blob, contents = "hello world")
|
+- baz.txt (blob, contents = "git is wonderful")

在 Git 中,历史记录是一个由快照组成的有向无环图。有向无环图,听上去似乎是什么高大上的数学名词。不过不要怕,您只需要知道这代表 Git 中的每个快照都有一系列的“父辈”,也就是其之前的一系列快照。注意,快照具有多个“父辈”而非一个,因为某个快照可能由多个父辈而来。例如,经过合并后的两条分支。

在 Git 中,这些快照被称为“提交”。通过可视化的方式来表示这些历史提交记录时,看起来差不多是这样的:

o <-- o <-- o <-- o
            ^  
             \
              --- o <-- o

上面是一个 ASCII 码构成的简图,其中的 o 表示一次提交(快照)。

箭头指向了当前提交的父辈(这是一种“在…之前”,而不是“在…之后”的关系)。在第三次提交之后,历史记录分岔成了两条独立的分支。这可能因为此时需要同时开发两个不同的特性,它们之间是相互独立的。开发完成后,这些分支可能会被合并并创建一个新的提交,这个新的提交会同时包含这些特性。新的提交会创建一个新的历史记录,看上去像这样:

o <-- o <-- o <-- o <---- o
            ^            /
             \          v
              --- o <-- o

5. 编程

编程语言有很多种,众人熟知的有:C、C++、Java、Python、JavaScript、PHP等第三代编程语言,还有一些第四代编程语言,比如:SQL、HTML、CSS等。
而机器语言是第一代编程语言,汇编语言则是第二代编程语言。
而人工智能的大火将诞生自然语言作为第五代编程语言。(这都是后话了)

这些语言有些可以帮助我们进行程序的编写如:C等,还有些可以用于配置的管理,比如TOMLXML等。还有UML等建模语言帮助我们进行建模,以便更好的开发。

TIOBE是一个排行榜反映了当前最流行的编程语言,它的排名是根据搜索引擎的结果来进行排名的,所以其排名并不科学。

2023年5月的排名如下:
TIOBE排行榜

6. 代码审查

代码审查一般借助于静态分析工具,会检测出语法错误和和常见的一些空指针等问题。

与之相对的是动态分析,动态分析是在运行时进行的,比如:单元测试、集成测试、系统测试等。

7. 重构

重构是指在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。

8. 持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值