NEWS

为什么软件开发这么难?

2022.10.20火猫网络阅读量: 43941

有的人认为,一款好的编程语言可以减轻软件开发者身上的负担,且能够相应地提高他们的效率。然而,如今编程语言已经足够好了,我们仍然面临着一些其他方面的困难与挑战。时下,很多开发者认为,编程的难度依然非常大,但是这些困难与编程语言无关,原因有以下几点:

一、需求传达

如果你正从事于编程工作,那么你会发现,你需要花费大量时间才能解释清楚关键的背景信息。首先,你必须掌握所有的实际细节;其次,你必须了解程序在每种情况下应该执行的操作;再者,你必须通过他人能够理解的方式来传达所有的信息。这意味着你必须有条理地组织这些信息,以确保便于理解。


二、描述与规格

编写程序的时候,你需要做出决定,因此仅凭描述还不行,你需要一份规范。在看到一段描述(“列出文件”)时,我们很容易认为这是一个规范,因此我们觉得应该能够告诉计算机执行该动作。但实际上,这中间有大量的决定需要考虑(“文件应以什么顺序列出?每个文件一行吗?”)


在编写程序的时候,你拿到的规范常常只是一段描述。计算机无法“绘制矩形”,它必须知道这个矩形的显示位置、大小以及颜色。在编写这段代码的时候,你会发现很多尚未做出的决定。做这些决定需要付出很多努力。我们经常会弄错引发这些工作的缘由,将其归咎于编程语言,但其实这只是因为我们很难根据一段描述创建规范。


三、计算机本身

开发软件不仅仅是了解软件应该做什么,并将各种想法转变成代码。计算机本身也有很多程序必须解决的问题。你的程序必须在硬件和网络上快速地运行。程序需要处理机器故障。而工具和协议的复杂性导致该领域所要面对的问题更多。这些困难都不是由向计算机解释做什么的过程引起的,它们也是需要解释的事情。


四、人员合作

很多时候,我们需要与其他人合作编写程序,而这也会带来挑战。所有的团队成员都必须各司其职。为了他们之间不互相妨碍工作,你必须进行分工。为了建立合理的分工,首先你需要了解程序的结构。在大型项目中,没有任何一个团队能够了解整个系统,更不用说一个人了。但是,你依然需要弄清楚系统的各个部分是如何设计的,又是如何组织到一起的。这比你自己承担起整个设计还要难。虽然与人打交道并不是真正意义上的编写代码,但也是开发软件中非常重要的一部分。


关注火猫网络,一个带你看透互联网的开发者。

联系我们