什么是应用开发?

Alan Zeichick | 内容策略专家 | 2024 年 9 月 6 日

用于库存控制、人力资源和会计的后端系统;用于创建电子邮件、文档和电子表格的生产力应用;面向客户的软件,例如您的网站或移动应用;面向 IT 团队、平面设计师、项目经理、高管和卡车司机的专业系统。

显而易见 — 运营一家现代企业需要大量代码。

您的企业所依赖的大多数应用很可能是由软件供应商创建的,并且通常采用软件即服务模式进行许可,例如 Microsoft Office、Oracle NetSuite 或 Adobe Photoshop。其他应用则是由内部开发团队或承包商根据您的规范编写或定制的。第二种情况便是本文的重点。

什么是应用开发?

应用开发 (AppDev) 是设计、创建、测试和部署软件的过程。成功的应用开发离不开掌握着各种技能的人员。应用开发团队可能有程序员、软件工程师、软件架构师、用户界面设计师、测试人员、质量保证专家和项目经理。

从本质上讲,应用开发始于一个待解决的问题或待把握的机遇。由于所有软件都需要投入资源进行创建、部署与维护,因此必须确保用例收益有较大的几率等于或高于其成本。在用例方面达成一致后,组织会为开发项目分配资源(资金、人员和时间),这类项目通常遵循以下两种路径之一:

按计划开发 整个应用的需求由所有利益相关者预先规划并批准。随后进行软件架构设计、开发、测试,并部署给员工或客户使用。对于大型项目,此过程可能极其缓慢,耗时数年才能完成 — 而在此期间,需求不断变化,导致应用的实际效用不及预期。

迭代开发。 首先设计、构建并测试软件的轻量版本,随后通过短周期快速迭代持续增强功能,其中新增特性与功能的开发周期通常仅需数周。频繁进行部署。这种方法常被称为敏捷开发,具备更高灵活性,能快速提供业务效益,同时响应不断变化的需求。

关键要点

  • 应用开发人员的首要任务是构建满足组织需求的软件。
  • 许多企业项目使用敏捷方法来强调迭代开发、用户反馈和持续改进,以适应不断发展的业务需求。
  • 有效的数据管理至关重要 — 应用应具有强大的数据存储、检索和分析功能。
  • 企业应用需要与现有系统、数据库和第三方工具集成。

应用开发详解

应用开发不仅仅是简单的编程。使用 JavaJavaScriptPythonGoRustSQL 等语言编写代码只是编程过程的一小部分。开发团队必须确保应用能支持企业的业务使用场景,这可能是通过升级网站提升销售额,借助提供实时库存洞察的应用提高运营效率,或者让员工通过自助服务平台查询工资单与申请休假以提升员工满意度。

此外,遵循设计标准也同样重要,包括以下方面:

  • 可适应不断变化的业务状况(即,使用场景的演变)。
  • 合规性(即应用满足内部或外部要求),例如保护客户信息隐私或确保数据根据国家或地区法律政策进行使用和管理。
  • 可扩展性,以便支持添加新功能,而无需进行大量重新设计或开发。
  • 互操作性,使新应用能够与其他应用共享数据和其他功能。
  • 性能,即应用可以快速高效地运行。
  • 可靠性,确保应用不会损坏或丢失数据,且系统崩溃时工作进度不丢失。
  • 可扩展性,使应用可以承担更大的工作负载,或为更多用户提供服务,而不会中断或性能下降。
  • 安全性,因为恶意攻击者始终在试图发现并利用代码中的漏洞。
  • 强大、直观的用户界面设计 (UX/UI),让用户无需经过耗时的培训即可成功使用软件。

上述所有事项的责任主要由应用架构师承担,且这些要求必须为整个应用开发团队所理解。

为什么应用开发很重要?

如果没有应用程序,大多数企业将无法进行日常运营。对于许多人来说,应用是竞争力的关键,快速获取、定制和创建新软件的能力对于他们适应快速变化的市场的能力至关重要。

在某些情况下,企业可以使用现成的软件,或者通过 API(应用编程接口)或 SDK(软件开发工具包)扩展商业应用的功能来进行定制。但有时,没有商业应用可以满足您的需求或处理您的独特专业知识或知识产权。这时,能够开发自己的应用的组织就能获得竞争优势。

应用开发的工作原理

应用开发流程涉及多个步骤和参与者,包括从启动并资助项目的业务利益相关方和倡导者,到创建软件的技术专家。要开发出安全、可靠、功能完备且能为企业创造价值的应用,必须协调诸多想法 — 有时还需要平衡相互冲突的优先事项。

应用开发的 8 个阶段

  1. 收集和分析需求。 需求收集的复杂程度通常与应用范围相对应。此过程包括了解问题所在,例如待把握的机遇或待解决的难题。需求可包含一个或多个使用场景,这些使用场景定义了应用的功能目标与用户群体。
  2. 项目计划。 需求文档用于构建项目计划,其中包括预算、时间表、要使用的方法以及资源列表,例如开发团队所需的技能。它还详细介绍了所需的软件开发平台和工具以及应用的部署位置。
  3. 设计和架构。 此阶段需要解决关键问题,例如应用的模块化流程。设计需综合考虑所有上述要素,以及实现安全性、合规性、可靠性、可扩展性与可用性所需的技术因素。
  4. 编码和开发。 此阶段程序员开始使用选定的方法、编程语言和工具来编写软件。根据所使用的方法,编程/开发和测试可以作为单独的阶段或并行进行。
  5. 测试。 所有代码均需经过测试,以确保其功能正确、满足安全要求并达到性能目标。部分测试基于代码逐行开展;另一种称为用户验收测试的方法则由业务用户执行,用于验证应用是否实现预期功能并满足使用场景需求。
  6. 部署。 当应用开发完成(或达到可用标准)并通过所有必要测试后,将从开发环境"转移"至生产环境,以供客户、员工及合作伙伴使用。根据反馈结果,将制定应用的下一迭代计划,以增添更多功能。
  7. 维护。 多数软件会随时间推移逐渐退化,原因包括发现漏洞与安全问题、平台变更以及使用量增加导致性能下降。开发团队或维护团队需解决这些问题,并处理数据备份或性能优化等事务。维护工作还包括寻找方法降低应用的运营成本,包括将其迁移到云端或将其替换为较新、较便宜的软件或服务。
  8. 退役。 当应用不再符合需求或适用目的时,可能因需求消失、功能并入其他应用,或使用场景重构后创建全新应用而退役。然而,通常无法直接关闭或删除冗余应用,而需将数据、用户账户及功能模块谨慎迁移至新系统,随后对旧应用进行归档以备未来查验。
应用开发图示:应用开发生命周期的 8 个阶段

应用开发的优势

为什么要创建软件?有两个主要原因:这是您的业务,或者它有助于您的业务。

  • 应用可能是贵公司为客户提供的产品或服务。例如 Oracle、您喜欢的计算机游戏开发商或为客户编写软件的咨询公司。
  • 如果您不从事软件业务,则可能需要专门的应用来维持运营。这是我们主要涵盖的应用开发类型,尽管本文中的信息也适用于向他人销售或许可软件的企业。
  • 采购现成的应用(或购买其许可证)速度快捷,在可行时是一个绝佳选择。当市面上缺乏合适的应用时,企业会选择通过内部团队或承包商来自行设计与编写软件。拥有自己的定制应用,企业可以抓住机遇、强化品牌、解决问题并快速应对不断变化的市场状况。为员工和客户定制专属应用(无论是在笔记本电脑或台式机上原生运行、通过浏览器访问,还是以移动应用形式呈现)都更能带来竞争优势。定制应用属于投资行为:这类软件是企业的自有资产,并可构成其知识产权的重要组成部分。
开发应用的 2 个原因
企业创建应用旨在盈利,方式包括直接销售软件或借助软件提供产品与服务。

应用开发的类型

并非所有应用都采用相同方式构建。大型软件开发项目采用正式流程,可能耗时数月或数年才能交付可用应用;小型项目或许仅需一周甚至一天即可完成。项目利益相关者将与技术开发团队合作,确定合适的方法。

低代码/无代码

并非所有应用都需要上述完整开发流程。回溯几十年前,超级用户(有时也称为"公民开发人员”)通过创建复杂的电子表格宏来解决业务问题。近年来兴起的低代码/无代码开发模式,使业务用户能够借助可视化工具编写应用,使用特定数据源、算法及工作流。这些应用在云端运行,可供员工、客户或其他合作伙伴访问。这些无代码/低代码应用在标准 Web 浏览器或移动设备(例如手机、平板电脑或自助服务终端)上运行。

低代码/无代码方法具有诸多优势,包括大幅加速开发与部署速度;托管平台内置安全模型;显著降低构建与维护成本;当然,还能减少对专业软件开发者的依赖,同时为员工提供支持。然而,专业开发人员同样青睐此类工具,用于处理无需完整应用开发项目的简单问题。

尽管低成本/无代码应用无法媲美由架构师、设计师、程序员和测试人员从头构建的复杂应用,但其性能优于电子表格定制方案,并提供受非程序员青睐、高级且易于使用的界面。这类应用还可临时集成其他应用,非常适合处理短期问题或把握即时机遇。

这些工具的简洁性对经验丰富的程序员同样具有实用价值。了解 Oracle APEX,开启低代码应用开发之旅。

移动

移动应用开发涉及用于创建和分发应用的各种工具、服务和产品。Google Android 和 Apple iOS 是广受欢迎的移动应用平台,支持一系列开发工具和方法。移动应用通常使用微服务架构进行设计,该架构将应用分解为彼此通信的较小任务。

考虑到 Android 与 iOS 设备的普及性及手机平板始终在线的特性,许多企业已将移动应用作为服务员工与客户的重要渠道。员工使用移动应用完成销售、企业资源计划、员工 HR 自助服务、安全认证、工时记录、消息传递等工作。虽然许多移动应用由专业公司开发,但企业也可自主设计、开发和部署供员工与客户使用的专属应用。

数据库

企业应用基于销售交易、产品价格表、HR 材料、电子邮件、银行记录、客户联系信息和公司财务等数据运行。存储企业数据最高效的方式是采用数据库,它可实现快速检索、搜索、更新、保护与分析。

无论是现成的应用还是定制应用,都可以通过高效的查询语言、标准数据交换格式和强大的编程接口访问数据库。但是,某些高端数据库(例如 Oracle Database 23ai)实际上可以在数据库引擎内部运行应用,经常能够为应用提供快速、安全且强大的数据访问。此类应用的开发工具可直接面向数据库引擎,额外的好处是数据库管理员在应用部署后仍能对其进行管理与调优。

微服务

云微服务架构中设计的应用通常易于维护和部署,并且非常强大。此类架构可能包含数百乃至数千个微服务,每个服务都是为高效执行单一任务而编写的构建块,通过简单通信协议与其他应用或微服务进行交互。

基于微服务的应用也具有高度的可扩展性;以云技术为中心的设计和架构意味着,如果特定服务被大量使用,云技术可以根据需要自动创建和运行大量副本。此外,由于单个微服务专注于特定任务,因此它们易于设计、编码、测试和部署。

“4 种应用开发类型”图示

应用开发方法

开发团队构建应用的方法体系即为方法论。该术语涵盖设计哲学、项目管理方法,以及开发团队与客户和其他关键利益相关方之间的互动模式。方法论有时会直接决定(或至少影响)开发团队对技术工具的选用决策。

无论选择何种方法论,都存在两个不变事实:目标始终是项目成功,且所有参与者都会提出见解。从广义上讲,现代软件开发方法论可分为两大类:瀑布开发与敏捷开发。

瀑布式

瀑布开发(也称为单体或经典模型)侧重于线性递进步骤:收集需求、设计、编码、测试、验收、部署、维护。每个步骤都需彻底执行,且唯有前序步骤完成后方可进入下一阶段。步骤一旦完成便极少倒退重来,这意味着瀑布开发无法适应快速变化的情况或不断发展的企业需求。这使得瀑布式方法更适合那些必须一次就成功的项目,例如汽车、核电站或医疗设备软件。

敏捷

敏捷开发采用相反的方法。敏捷专注于应用的快速实施和部署,方法是构建小型、最小可行产品 (MVP),然后进行迭代改进以添加新特性和功能、解决短缺问题、利用新技术和创意以及提高性能。

敏捷方法并非单一体系;实际上存在数十种变体,每种都有其历史渊源、拥护群体与理论依据。以测试驱动开发为例,在程序员创建新代码前,需先编写自动化测试用例以确保新代码正常运行。这有助于保证所有代码在纳入应用最新迭代前均经过测试验证。

多数敏捷方法要求每次迭代周期极短,通常仅持续数周。在这些迭代(称为冲刺)中,开发团队专注于为应用添加特性或功能。

快速

有时,应用在概念上易于设计和部署,例如基于表单的应用、报表编写器或数据库的查询工具。在这些情况下,像瀑布或敏捷这样的全面应用开发过程可能是没有必要的。这正是快速应用开发 (RAD) 的适用场景。RAD 属于敏捷方法范畴,其特点是借助简单易用的工具,使极小型开发团队(甚至单人)能够创建用户界面、编写内部逻辑并连接企业数据源。

从历史上看,RAD 开发被用来创建所需应用的可视化模型,以便开发人员和利益相关者可以在“真正的”编程工作开始之前就外观和功能达成一致。这也催生了 RAD 的别称:快速原型法。然而,随着低代码与无代码工具的出现,RAD 开发已能基于快速原型直接构建并部署简单应用。更重要的是,开发时间可压缩至数天,这令业务用户欣喜不已。如果某个应用适合采用 RAD 方法开发,那么往往应当优先选用。

主要差异

加快部署速度。 采用敏捷开发时,企业员工或客户可在应用功能未完备前提前使用。敏捷模式在移动应用中尤为常见,这类应用需要持续添加新功能。 刚性需求。 当需求高度明确且应用必须严格遵循时,瀑布模型更为适用。医疗设备或工业控制系统中的软件便是例子。
原型可转化为实际应用。 对于简单应用,快速应用开发流程可能是最佳选择。采用 RAD 方法与低代码/无代码工具,开发者甚至高级用户能在数天(有时仅需数小时)内创建并部署报告生成器、数据库移动交互界面或数据收集表单。 可适应不断变化的需求。 通过敏捷开发,需求变化可作为新功能轻松纳入后续迭代周期。例如,应用需适配全新的便携平板或集成生成式 AI;这些需求在应用最初构想时可能根本未被纳入考量。

应用开发使用场景

以下是根据使用场景,使用特定方法构建的三个企业应用示例。

  • 某医疗公司使用低代码/无代码开发来管理临床试验。该公司使用在云端运行的低代码工具,以经济高效的方式开发自己的用户界面。通过开发自己的平台,该公司可以更好地监控其交付,从而改善客户服务。该应用可以扩展到数千名用户和项目,以获取关键临床研究监视信息。在采用低代码方法后,该公司通过提高运营效率和减少应用管理工作量,在五年内节省了大量成本。
  • 某物流公司构建可与 Oracle 云端供应链应用集成的移动应用。以前,应用在浏览器中的桌面 PC 上运行,但随着该公司部署了更多的移动和手持设备,它需要更多的灵活性。借助移动应用,仓库和产品分销商可以根据供应链管理系统现场扫描和处理库存,从而提高数据的准确性并加快快速处理这些数据的能力。
  • 某就业服务公司使用 Oracle Cloud Infrastructure 中运行的微服务架构运行工作培训、技能提升和人才发展服务平台。目前每日有数十万人使用该平台,帮助他们寻找、申请并准备实现稳定就业。该平台支持 5000 个并发用户和流程,每分钟可处理 10000 个请求;只要新版本的应用准备就绪,托管云技术服务即可快速自动更新,且不会造成停机。

应用开发优秀实践

应用可以赋能客户和员工,扩展业务,或简单地解决痛点。不过应用开发也可能是昂贵且资源密集型的,如果新软件有安全漏洞,可能会给公司及其客户带来风险。以下是一些有助于尽可能降低风险和提高成功率的优秀实践。

  1. 正确定义作业范围。 成功的开发项目能够解决业务问题或把握商业机遇。创建应用属于高成本投入,因此值得投入时间制定详尽的需求文档。
  2. 快速行动,但要牢记最终目标。 应用越早投入使用,企业就能越早获益。迭代式敏捷开发方法强调灵活性与持续改进,通过短期冲刺开发功能并定期收集用户反馈,从而实现快速方向修正,确保最终产品契合用户需求。
  3. 优先保障代码质量、安全性与标准化。 开发团队必须兼顾安全性、可扩展性及性能,并确保目标受众能便捷使用软件,致力于打造简洁直观的界面,高效引导用户完成任务并尽可能减少操作困扰。
  4. 持续优化 应用开发流程需要能够应对不断变化的业务需求。确保开发团队或维护团队解决应用出现的任何问题,并对新数据源或性能优化等问题做出响应。

人工智能和应用开发

生成式 AI 正被应用于诸多文本导向型任务:总结报告、撰写十四行诗、起草客服邮件、增强聊天上下文关联性等。事实证明,生成式 AI 同样擅长编写软件代码:编程语言本质上也是语言,从软件的角度来看,它与英语、西班牙语或中文并无太大差异。

在应用开发领域,生成式 AI 擅长将开发人员用对话式人类语言表达的书面意图转换为已完成的即用型代码。根据早期实验验证,这类 AI 生成的代码具备功能性、高效性与安全性。这一优势在数据库访问代码或微服务配置模板等开发过程繁琐的代码环节中尤为显著。

生成式 AI 可以帮助开发人员的另一个领域是检查人工编写的代码,以查找错误,发现潜在的漏洞,并指出未遵循优秀实践的编码环节。预计基于 AI 的辅助功能将成为主流软件开发工具与平台的标准配置。

应用开发的未来

软件开发是一种不断发展的实践。如前所述,生成式 AI 将帮助开发人员摆脱繁琐的任务。它将成为应用开发的主体,并将嵌入到主流开发工具中。微服务等新架构将支持利用模块化方法快速构建新应用。不过,我们也注意到了其他趋势。

安全是头等大事。 恶意攻击者将持续威胁企业安全,因此应用不仅需在设计与构建阶段保障安全性,更应随着新型攻击工具的出现持续更新防护机制。

移动化已成常态。 对多数人而言,智能手机已成为主要计算设备,这意味着企业必须熟练掌握移动应用开发或移动端浏览器适配设计。

开发民主化。 员工将持续要求获得能快速构建应用的低代码/无代码工具。如何在鼓励此趋势的同时保障质量与安全?

利用 Oracle 解决方案降低成本和缩短开发时间

Oracle 提供丰富的开发工具、服务和平台,可以满足任何应用开发项目的需求。此外,Oracle 还提供全面的现成可用的业务应用集合,这些应用可以定制并与您自己的应用集成,以帮助满足您的需求。

在哪里部署?Oracle 的新一代 Oracle Cloud Infrastructure (OCI)可为您提供所需的数据库、开发人员服务、集成服务和存储。这些基础能力通过网络、分析与商务智能、低代码/无代码工具及业务应用可调用的新型 AI 服务得到增强。结合 Oracle 的应用安全、合规性与成本管理工具,即可快速启程。

Oracle 提供性价比更高、存储成本更低的云技术服务,覆盖全球 48 个商业和政府区域,可以更好地满足您的需求。您的下一个项目不需要云技术?了解 Oracle 本地部署系统,包括 Oracle Exadata 企业数据库平台。

您可以查看 Oracle 的各种开发人员技术,并了解如何在 Oracle Cloud 上免费构建、测试和部署应用


开发人员及其业务同事都可以从专为提高敏捷性、可扩展性和效率而设计的云原生应用中受益。了解更多信息,探索云技术持续优化的十大进展。

应用开发常见问题解答

应用开发人员的职责是什么?

应用开发人员负责构建业务应用,更准确地说,他们是参与构建这些应用的团队成员。开发人员需具备技术技能,包括掌握敏捷方法;熟悉 Java、SQL、Python 及 JavaScript 等编程语言;并扎实理解软件架构。其具体职责包括架构设计、编码、测试调试、用户界面设计、数据库集成、报告编写及软件维护。

应用开发有哪些步骤?

应用开发包含八个主要步骤;其中某些步骤可并行执行,或根据采用的方法论迭代执行。

  1. 收集和分析需求
  2. 项目计划
  3. 设计和架构
  4. 编码和开发
  5. 测试
  6. 部署
  7. Maintenance
  8. 退役

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。