编程很容易,软件开发很难,维护代码是最难的(软件编程难不难)

编程很容易,软件开发很难,维护代码是最难的(软件编程难不难)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月5日 上午8:21
下一篇 2023年5月5日 上午8:31

相关推荐

  • 银石项目管理系统

    银石项目管理系统: 一个高效的项目管理工具 随着现代项目管理的日益复杂和快速变化,许多公司开始寻找更加高效和智能化的项目管理工具来帮助他们更好地管理项目。在这种情况下,银石项目管理…

    科研百科 2024年12月28日
    0
  • 常用的进度计划软件

    进度计划软件:如何高效地管理项目进度 进度计划软件是一种常用的项目管理工具,可以帮助项目管理人员更好地规划和控制项目进度。在这篇文章中,我们将介绍如何使用进度计划软件来高效地管理项…

    科研百科 2024年8月29日
    32
  • 头条视频反复播放怎么办

    头条视频反复播放怎么办? 最近,我发现一些头条视频在反复播放,这让我感到困扰。这些视频可能是广告,但它们一直在重复播放,这让我感到厌烦。我想知道,如果我遇到了这种情况,我应该怎么办…

    科研百科 2024年11月6日
    0
  • 帮我做个方案规划主要内容是家庭和爱情(帮我做个方案规划主要内容是家庭和爱情英语)

    现代社会,家庭与两性情感关系备受关注,其重要性不言而喻。在这篇文章中,我们将深入探讨这些话题,通过具体情感故事和案例,揭示现实生活中的家庭成员间和伴侣之间的情感纠葛,激发读者对这些…

    科研百科 2024年4月20日
    60
  • 项目管理措施

    项目管理措施 项目管理措施是项目管理中至关重要的一部分,能够帮助组织有效地规划、执行和控制项目的进展。本文将介绍项目管理措施的定义、目的和重要性。 项目管理措施的定义 项目管理措施…

    科研百科 2024年8月18日
    53
  • 工程项目管理系统过程

    工程项目管理系统过程 工程项目管理系统是一种用于管理工程项目的软件系统,可以帮助项目经理和项目团队成员更好地协调和管理项目进度、成本和质量。本文将介绍工程项目管理系统的整个过程。 …

    科研百科 2025年6月20日
    1
  • 题库脚本

    题目:题库脚本概述 题目:题库脚本概述 随着计算机技术的不断发展,题库脚本已经成为了一种非常流行的编程语言。它被广泛应用于教育领域,帮助教师和学生进行题目的解答。那么,什么是题库脚…

    科研百科 2024年10月20日
    0
  • 手机修图能取代电脑PS吗?四款常用修图app对比(手机修图能取代电脑ps吗-四款常用修图app对比)

    现在的摄影主战场,已经从各大网站论坛发展到了手机朋友圈。随着相机Wi-Fi的普及和手机拍摄功能的日益强大,越来越多的人开始选择用手机app进行修图操作。相信大家都听过很多手机修图“…

    科研百科 2023年4月22日
    411
  • 施工企业使用工程项目管理软件能得到哪些提升?(施工企业使用工程项目管理软件能得到哪些提升改善)

    当前施工业已经是一个竞争十分激烈的行业。在一些稍有实力的企业,开始逐步的进行一体化信息系统建设,在系统建设的过程中投入了大量的人力物力财力,以推动企业管理系统的升级改造。但是,对于…

    科研百科 2022年11月7日
    184
  • 物流管理系统的项目特色

    物流管理系统的项目特色 随着经济全球化和物流市场的快速发展,物流管理系统已经成为企业运营中不可或缺的一部分。物流管理系统可以优化物流流程,提高物流效率,降低物流成本,提高客户满意度…

    科研百科 2025年7月12日
    1