当前位置:首页>实用技巧>

开发真正的软件难不难(开发一个软件很难吗)

来源:原点资讯(m.360kss.com)时间:2023-04-22 16:14:29作者:YD166手机阅读>>

开发真正的软件难不难,开发一个软件很难吗(1)

大约2年前,我开始了我的企业家之旅,并在我的创业公司担任"技术主管"的角色。这意味着我必须开始学习一些较新的技术,如React和NextJs。特别是如果我希望提供人们愿意支付的任何类型的软件。

"那肯定不会太难?"—— 这是非常困难的,就像在地狱的第二层航行一样。

在此之前,我积累的3年以上的Python经验是没有用的。

编程很容易,但软件开发很难。

软件开发很难,因为大多数人通常倾向于跳过基本步骤,即学习创建程序,做其他人想要支付的事情,以及随之而来的所有困难。

我的竞争性编码的背景(主要是Python)没有教会我任何关于开发具有正确用户体验和设计选择的软件产品,最多是为集成几个复杂的API或为基于角色的授权逻辑编写代码。

当我开始开发我们的第一个软件产品(广告分析平台)时,我感觉自己就像一个期望在学习字母表后立即写一篇文章的孩子。

此外,由于我已经承诺了最后期限,因此我没有奢侈地从我的业务中休息几个月来掌握这些技术,因此我只剩下一个选择 - 在旅途中学习和实施所有这些技术。我花了大约4个月的时间才交付这个产品。在那段时间里,我了解到软件开发是一个非常复杂的过程,不能仅仅通过遵循教程来学习。为了成为一名成功的软件开发人员,我不仅需要编写代码,还需要了解代码的工作原理以及与系统其余部分的交互方式。虽然这听起来很容易,但我可以向你保证,YouTube上只有少数视频可以教你这项技能。因为了解不同技术/框架如何协同工作的细微差别是观看教程视频无法学习的 - 这是必须通过"做"来学习的东西。这需要我熟悉新的概念和术语/框架。我花了更多的时间阅读文档,或者观看视频解释,以试图填补我的知识空白,而不是编写实际的代码行!

在花了所有时间学习之后,我意识到大多数教程在解释软件开发的实际过程方面都很糟糕。

大多数教程和课程都通过只教我基础内容来抽象软件开发的复杂性。

他们让学习和掌握一门语言或框架看起来非常容易——以至于这让我想知道大惊小怪的是什么。教程、博客、课程中显示的内容与企业级应用程序中实际使用的内容之间存在巨大的脱节。而且,在我看来,这似乎是人们需要数月甚至数年才能达到软件开发周期结束的最大原因。

例如,大多数 react 教程都教你如何从外部 REST API 读取数据,但很少有视频讨论使用 React Query 的重要性 — React Query 是一个钩子库,消除了重复的代码,并介绍了生产就绪的数据提取和缓存实践,可以开箱即用。

几乎每个现实世界的应用程序都需要你构建数据获取的逻辑,在大多数情况下,需要使用类似 React Query 的东西。

当我意识到这一点时,我不得不回过头来在一个应用程序内重写近2000行代码,否则这些代码就可以在一个月内启动 - 要么是这样,要么我必须花费数周的时间在交付后调试和优化我的应用程序/服务器,这将非常耗时。

软件开发的过程是十几个重要决策的组合,在编写哪怕是一行代码之前,人们都需要做出这些决策。你必须考虑你的架构,数据库设计,技术堆栈,云托管,缓存,甚至这些都只是触及表面。

软件开发是一个复杂的过程,需要您了解各种特定领域的概念,规范,测试,扩展,设置时间表,设计架构,最重要的是选择您的"技术堆栈",如云服务提供商。由于我之前没有开发软件,考虑架构或选择正确的技术堆栈的经验;我的旅程有点坎坷。

经过大约4个月的来回奔波,编写了近2万行代码,软件开发终于完成了......虽然,旅程还远未结束。

我现在面临着一系列新的挑战——维护。

维护软件是一个世界上有经验的开发人员很少关注的话题。如果您曾经尝试更新或修复其他人编写的一段代码,您就会知道它会变得多么令人沮丧。

维护代码可能很困难的原因有很多,但最常见的一些原因是:

  • 代码难以理解或写得很差。
  • 代码组织不善,很难找到所需的代码。
  • 代码被修改了很多次,以至于很难找到原始源代码。
  • 原作者或拥有代码的公司不再支持该代码。

代码维护的复杂性是软件项目失败率高的主要原因之一。

为了保持软件系统的平稳运行,必须不断更新和调整代码,以应对业务环境的变化,新的要求和技术进步。这是一项艰巨的任务,通常很难找到时间和资源来正确地完成它。因此,许多软件系统陷入了难以更新和维护的遗留代码的困境。最终,这将导致性能问题和安全漏洞。

在开发过程中,我们很早就解决了这些问题,将精力集中在模块中编写代码(将其分解为更小的、可重用的组件),并重用它们以减少每次业务环境或系统要求发生变化时需要重写或更新的代码量。

提前规划我们的模块有助于我们解决与代码维护相关的问题,并使该过程更轻松,更高效。它为我们节省了大量的时间和金钱,也有助于确保我们的代码更加可靠和安全。

总之,软件开发和维护是严重误解的话题。没有经验的开发人员无法理解它们的复杂性,因为它们通常缺乏所需的专业知识深度。一旦你深入研究了软件开发和交付的深处,你就会学到它


栏目热文

软件升级原理(软件升级介绍)

软件升级原理(软件升级介绍)

摘要Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式(类似于windows PE或DOS)。也可...

2023-04-22 15:40:34查看全文 >>

软件自动升级有什么好处(软件升级好还是不升级好)

软件自动升级有什么好处(软件升级好还是不升级好)

老师在身边——「每日一答」手机应用自动更新是怎么回事?自动更新好不好?很多手机为了方便用户的使用,设置了自动更新应用的功...

2023-04-22 15:50:34查看全文 >>

做软件开发(想学怎么做软件开发)

做软件开发(想学怎么做软件开发)

一、需求分析在软件开发中,需求分析是非常重要的一步。它涉及到理解客户需要什么,并将这些需求文档化,以便于开发团队了解和实...

2023-04-22 15:49:22查看全文 >>

软件更新原理(软件更新的几种方式)

软件更新原理(软件更新的几种方式)

用过那么多软件,做为一个非专业人士,你是不是和我一样好奇,软件是怎么更新的?我的0.5版本怎么更新到1.0了?一、思考用...

2023-04-22 16:19:20查看全文 >>

开发软件哪个最好(开发必备软件排行)

开发软件哪个最好(开发必备软件排行)

Visual Studio Code:跨平台的轻量级代码编辑器,支持多种编程语言和插件。优点:轻量级、跨平台、支持多种编...

2023-04-22 15:56:17查看全文 >>

系统更新对手机有影响吗(荣耀手机关闭更新)

系统更新对手机有影响吗(荣耀手机关闭更新)

我们知道,手机是由硬件和软件两部分组成,而随着技术的不断进步,在硬件规格不断提升的同时,软件也迎来了大升级,这其中,最吸...

2023-04-22 15:42:36查看全文 >>

手机系统升级是怎么回事(手机系统为什么频繁升级)

手机系统升级是怎么回事(手机系统为什么频繁升级)

妙招要学好,生活无烦恼!大家好,我是您的老朋友——妙招小主管!我们是否曾留意过,我们的手机经常提示系统更新?在这种情况下...

2023-04-22 15:58:21查看全文 >>

手机安装不了软件是怎么回事(手机安装不了任何软件是怎么回事)

手机安装不了软件是怎么回事(手机安装不了任何软件是怎么回事)

1、第一个想法就是系统内有程序残留,可能是未删除干净导致无法安装,因此用RE浏览器搜索程序相关关键字,把找到的相关文件和...

2023-04-22 15:56:12查看全文 >>

苹果手机更新不了软件怎么回事(苹果手机软件更新失败怎么回事)

苹果手机更新不了软件怎么回事(苹果手机软件更新失败怎么回事)

使用 iPhone 的用户可能会遇到这个问题:通过 App Store 更新或者下载应用时,可能会遇到下载进程卡住,应用...

2023-04-22 15:49:01查看全文 >>

软件的开发出现瓶颈了吗(软件开发的痛点有什么新技术)

软件的开发出现瓶颈了吗(软件开发的痛点有什么新技术)

数据库工作任务内存超过可用的RAM内存长/短查询写入冲突大连接(join)占用内存虚拟化共享一个HDD、磁盘寻死(dis...

2023-04-22 15:54:33查看全文 >>

文档排行