我们使用的软件是如何开发的?(我们使用的软件是如何开发的英语)
无论您是使用PC还是智能手机,总是要打开软件并执行某些操作。 首先,运行PC和智能手机的操作系统本身就是软件,因此可以说你总是从软件中受益,但是除了该领域的开发人员之外,其他人很难理解实际上如何开发软件。 一部解释这样一个令人惊讶的未知过程视频“软件是如何开发的(How Software is Made)?”已经在YouTube上发布。
软件是计算机程序,由“1”和“0”的组合组成。 这称为二进制文件,这是计算机唯一可以理解的东西。
那么我们如何从软件创意到可执行的二进制文件呢?
因为自己写二进制太麻烦又花时间,所以一般使用源代码(Source code),是指一系列人类可读的计算机语言指令。
源代码任何稍加训练的人都可以阅读,就像是对电脑的命令书一样。
源代码可以由许多“编程语言”专用开发语言编写,目前使用的编程语言包括Java,Python和Ruby等等。
这是由编程语言之一“C ”编写的源代码。这个只是在电脑的显示器上显示“Hello World!”的简单程序。
若要在计算机上运行此源代码,必须将源代码转换为计算机可读的二进制文件。 将源代码转换为二进制文件的过程称为“编译(Compile)”。
如果编译成功并且源代码转换为由0和1组成的二进制文件,则程可以在计算机上执行。
但是,如果拼写错误或缺少必需的符号,编译将失败,计算机将无法运行该程序。
一个简单的程序可以由单个程序员开发,但是…
大型程序可能有数百名程序员并行协同工作,需要数年时间才能完成。
大型程序通常分为数百到数千个“文件”。 每个程序员分担不同文件,通过共同工作完成一个程序。 对于一起创建大型程序的程序员来说,相互合作是必不可少的。
对于大型项目的管理,采用了称为“版本控制系统( Version control system)”的系统。 在版本控制系统中,程序员创建的所有源代码都存储在服务器(Server)上。
每个程序员进行开发时,先从服务器下载源代码(Check Out),在他的终端上编写程序。
程序员定期将修改后的文件提交(Check In)到服务器,服务器会详细记录文件被修改的时间、人员和方式。
如果整个程序在某个时候出现问题,开发人员可以取消更改(Rollback),直到程序正常工作。 解决文件问题点(Bug),提交更正后的文件,如果没有问题就OK了。
即使在软件开发阶段,也会彻底检查异常情况,但产品发布后不可避免地会发现异常。 这就是通常称为“错误(Bug)”的软件缺陷。
即使在发布后,软件开发人员也必须修复发现的错误并不断改进他们的软件。这就是软件版本会多次更新的原因。
软件开发方法大致可以分为两种模式。 第一种是专有软件(Proprietary software),又称非自由软件(non-free software)、专属软件、私有软件、封闭性软件等,这是由个人或公司为商业目的开发的软件,由于源代码不公开,只将成品交付给用户,因此需要花费时间和金钱才能实现“我希望你这样做”或“我希望你改变这个”的需求。
另一个是开源软件(Open Source Software,缩写:OSS)又称开放源代码软件。 它通常是免费提供给用户的软件,任何人都可以访问源代码。
著名的开源软件包括VLC媒体播放器,GIMP图像编辑软件,FireFox浏览器和音频编辑软件Audacity 等等。
开源软件开发人员通常没有经济报酬,只是带着对高质量软件的热情进行开发。
开源软件下载站点和主页通常有一个“捐赠给开发人员”部分。 许多人忽略了“捐赠给创始人”一栏,但这是很多人忽略的“向开发者捐款”一栏,即使成品是免费获得的,为了回报他们的献身热情,捐款系统也是不可缺少的。