编程语言和软件开发的难点是怎样的?
发表时间:2023-11-07 18:02:33
文章来源:炫佑科技
浏览次数:187
菏泽炫佑科技
编程语言和软件开发的难点是怎样的?
在大众眼里,编程被认为是非常困难的。 其实对于编程语言来说,难度上的差别并不是很大。 每种语言都有自己的优点和缺点,但是有一个难点是所有程序员的通病:软件开发的难点。
本期我就和大家聊聊软件开发中的难点。 我希望通过下面提到的问题,能够帮助朋友们解决自己的困难。
很多人认为,一门好的编程语言可以让开发人员事半功倍,帮助他们快速解决问题。 毫无疑问,在很久以前的集会和时代确实如此。 如今,编程语言已经逐渐发展和成熟,但是程序员仍然需要面对一些困难和挑战。 但这与编程语言无关。 原因来自于以下几点。
01.阿姆达尔定律
作为程序员,当我们需要执行一系列任务时,我们不禁会想到阿姆达尔定律:在计算机的处理器和内存之间,改变其中一个可能会大大提高计算机的速度和性能。 然而,很多人在升级内存的时候,就升级了处理器。 结果是我们花费了*大、*好的资源,却没有取得*好的结果。
比如说,你想吃面条,水要烧开十分钟,面条要煮十分钟。 即使你想办法加快水的沸腾速度,煮的时间也不会缩短到十分钟,也不可能把面条煮得快一倍。
这是阿姆达尔定律告诉我们的关键:您可以获得的*大速度提升受到优化工作比例的限制。
通过这个规律,当我们相应地看待编程工作时,我们会发现工作困难的原因有很多。 首先,我们的工作需要按照一定的顺序完成。 毕竟,同时做不同的事情很可能会导致一切失败。 结果一团糟。
例如,每天工作的9点,你可能正在敲代码、构建或者参加会议,但同时你只能做一件事。 一边打代码一边开会是不可能的。 当我们应用这个规律时,我们会发现,即使我们尝试将构建时间减少到0,也不会很快提高你的项目速度,而其他因素仍然会限制你的工作效率。
就拿我们前面的例子来说,当编程语言还没有今天这么成熟时,要将程序转换成计算机可以运行的代码是非常困难的。 甚至在很早以前,我们就需要将程序转换成1和0,然后手动输入到计算机中,占用了工作中大量的时间。
如果我们能够找到一种更高效的方式来指挥计算机(例如),将会大大提高我们编程的效率。 就像我们现在一样软件开发,编程语言的发展是越来越好。 无需像以前那样使用防呆操作。 以前需要花费 90% 时间的操作现在只需 10% 即可完成。 这意味着,即使这部分工作的时间减少到0,效率也只能提升1.11倍。 效率提升较之前降低81倍。
但由于90%的软件开发工作都是非常困难的任务,而编程语言只占其中一部分,所以无论它多么优秀,都不能(直接)减轻我们的负担。
02. 为什么编程还是这么难?
沟通需求
上面我们分析过,编程工作的难度与编程语言关系不大。 那么编程工作的难度到底是什么呢? 这里有一个实验告诉你。 首先,假设我们不使用计算机做任何事情,而是告诉您的朋友需要做什么并为您的朋友做出所有决定。
您是否注意到向您的朋友解释所有背景信息需要花费很多时间? 他需要了解程序解决的现实问题以及您需要提供哪些功能。 您必须考虑所有内部和外部因素。 还有很多紧急情况和细节需要处理。
同时,还需要考虑不同组件的组合、用户可能尝试的各种操作以及将发生的事件。 你需要清楚地告诉你的朋友这些。困难不仅限于掌握所有的实际细节以及以你的朋友可以理解的方式传达所有的信息等等。
到目前为止,我们还没有谈到计算机和编程语言、理解需求等编程语言和软件开发的难点是怎样的?,这些都是比较困难的任务。
描述和规格
描述和规格不太容易区分,我们经常陷入他们的思维陷阱。 如果只有描述(“一辆红色汽车”),则可以测试实际情况是否与描述相符(“是红色,但不是汽车”),但描述不足以传达如何建造汽车。 这就是规格的用途。
编程时你需要做出很多决定。 如果你只记录决策的结果,你会得到一个混乱的计划。 因此,在编写程序时,仅靠描述并不能帮助你很好地完成编程工作。 你需要一个规格。
当我们看到描述(“列表文件”)时,很容易假设这是一个规范,因此我们认为我们应该能够告诉计算机执行该操作。 但实际上,有大量的决定需要考虑(“文件应该按什么顺序列出?每个文件一行?”)
当我们编写程序时,规范通常只是一个描述。 计算机无法知道“画一个矩形”,但如果它不知道矩形的位置、大小等主要因素,它就无法运行,所以在写代码时,你会发现有很多未完成的决定,这就是为什么我们经常犯错误,并且很难根据描述创建规范。
03.如何解决软件开发的外部问题?
*快的解决办法是我们可以寻找一些不受阿姆达尔定律限制的方法。 如果任务之间的速度不是完全独立的(例如,优化一个任务可以加快另一个任务的速度),那么我们可以考虑从技术方面解决这个问题。
编程时,更好的语言和开发环境往往可以大大加快效率,更少的人编写程序可以缩小组织规模。 因为如果由同一个人来编写界面前后端,沟通效率就会降低,这不仅降低了编写代码的成本,而且改变了工作方式,减少了其他工作成本。
迭代速度是另一个杠杆。 您需要了解所有细节,然后形成一种心态。 或者你可以根据一些明显的细节建立一个小的心理模型。 *后根据这个模型创建一个小程序,验证这个思维模型。 这样,每一次编程过程都会为你积累模型,你的模型会变得更加丰富、更加准确。
但为了确保这种方法有效,您需要快速测试并获得反馈。 理想情况下,新代码将在输入代码后立即开始运行。 更改开发环境以实现更快的迭代周期可以使开发人员从**种方法转向第二种方法,从而帮助他们理解问题。
04.写在*后
更好的编程语言能否快速提高工作效率和生产力? 笔者认为,相比之下,获得更好的发展环境的机会更大。 作为一名优秀的程序员,我们需要做的就是使用更好的工具来理解现有的代码,实现更快的开发迭代周期。 减少傻瓜式劳动,
从许多方面改进我们的工作有可能改变软件的开发方式。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等