Alan Zeichick | 内容策略专家 | 2024 年 9 月 6 日
用于库存控制、人力资源和会计的后端系统;用于创建电子邮件、文档和电子表格的生产力应用;面向客户的软件,例如您的网站或移动应用;面向 IT 团队、平面设计师、项目经理、高管和卡车司机的专业系统。
显而易见 — 运营一家现代企业需要大量代码。
您的企业所依赖的大多数应用很可能是由软件供应商创建的,并且通常采用软件即服务模式进行许可,例如 Microsoft Office、Oracle NetSuite 或 Adobe Photoshop。其他应用则是由内部开发团队或承包商根据您的规范编写或定制的。第二种情况便是本文的重点。
应用开发 (AppDev) 是设计、创建、测试和部署软件的过程。成功的应用开发离不开掌握着各种技能的人员。应用开发团队可能有程序员、软件工程师、软件架构师、用户界面设计师、测试人员、质量保证专家和项目经理。
从本质上讲,应用开发始于一个待解决的问题或待把握的机遇。由于所有软件都需要投入资源进行创建、部署与维护,因此必须确保用例收益有较大的几率等于或高于其成本。在用例方面达成一致后,组织会为开发项目分配资源(资金、人员和时间),这类项目通常遵循以下两种路径之一:
按计划开发 整个应用的需求由所有利益相关者预先规划并批准。随后进行软件架构设计、开发、测试,并部署给员工或客户使用。对于大型项目,此过程可能极其缓慢,耗时数年才能完成 — 而在此期间,需求不断变化,导致应用的实际效用不及预期。
迭代开发。 首先设计、构建并测试软件的轻量版本,随后通过短周期快速迭代持续增强功能,其中新增特性与功能的开发周期通常仅需数周。频繁进行部署。这种方法常被称为敏捷开发,具备更高灵活性,能快速提供业务效益,同时响应不断变化的需求。
关键要点
应用开发不仅仅是简单的编程。使用 Java、JavaScript、Python、Go、Rust 或 SQL 等语言编写代码只是编程过程的一小部分。开发团队必须确保应用能支持企业的业务使用场景,这可能是通过升级网站提升销售额,借助提供实时库存洞察的应用提高运营效率,或者让员工通过自助服务平台查询工资单与申请休假以提升员工满意度。
此外,遵循设计标准也同样重要,包括以下方面:
上述所有事项的责任主要由应用架构师承担,且这些要求必须为整个应用开发团队所理解。
如果没有应用程序,大多数企业将无法进行日常运营。对于许多人来说,应用是竞争力的关键,快速获取、定制和创建新软件的能力对于他们适应快速变化的市场的能力至关重要。
在某些情况下,企业可以使用现成的软件,或者通过 API(应用编程接口)或 SDK(软件开发工具包)扩展商业应用的功能来进行定制。但有时,没有商业应用可以满足您的需求或处理您的独特专业知识或知识产权。这时,能够开发自己的应用的组织就能获得竞争优势。
应用开发流程涉及多个步骤和参与者,包括从启动并资助项目的业务利益相关方和倡导者,到创建软件的技术专家。要开发出安全、可靠、功能完备且能为企业创造价值的应用,必须协调诸多想法 — 有时还需要平衡相互冲突的优先事项。
为什么要创建软件?有两个主要原因:这是您的业务,或者它有助于您的业务。
并非所有应用都采用相同方式构建。大型软件开发项目采用正式流程,可能耗时数月或数年才能交付可用应用;小型项目或许仅需一周甚至一天即可完成。项目利益相关者将与技术开发团队合作,确定合适的方法。
低代码/无代码
并非所有应用都需要上述完整开发流程。回溯几十年前,超级用户(有时也称为"公民开发人员”)通过创建复杂的电子表格宏来解决业务问题。近年来兴起的低代码/无代码开发模式,使业务用户能够借助可视化工具编写应用,使用特定数据源、算法及工作流。这些应用在云端运行,可供员工、客户或其他合作伙伴访问。这些无代码/低代码应用在标准 Web 浏览器或移动设备(例如手机、平板电脑或自助服务终端)上运行。
低代码/无代码方法具有诸多优势,包括大幅加速开发与部署速度;托管平台内置安全模型;显著降低构建与维护成本;当然,还能减少对专业软件开发者的依赖,同时为员工提供支持。然而,专业开发人员同样青睐此类工具,用于处理无需完整应用开发项目的简单问题。
尽管低成本/无代码应用无法媲美由架构师、设计师、程序员和测试人员从头构建的复杂应用,但其性能优于电子表格定制方案,并提供受非程序员青睐、高级且易于使用的界面。这类应用还可临时集成其他应用,非常适合处理短期问题或把握即时机遇。
这些工具的简洁性对经验丰富的程序员同样具有实用价值。了解 Oracle APEX,开启低代码应用开发之旅。
移动
移动应用开发涉及用于创建和分发应用的各种工具、服务和产品。Google Android 和 Apple iOS 是广受欢迎的移动应用平台,支持一系列开发工具和方法。移动应用通常使用微服务架构进行设计,该架构将应用分解为彼此通信的较小任务。
考虑到 Android 与 iOS 设备的普及性及手机平板始终在线的特性,许多企业已将移动应用作为服务员工与客户的重要渠道。员工使用移动应用完成销售、企业资源计划、员工 HR 自助服务、安全认证、工时记录、消息传递等工作。虽然许多移动应用由专业公司开发,但企业也可自主设计、开发和部署供员工与客户使用的专属应用。
数据库
企业应用基于销售交易、产品价格表、HR 材料、电子邮件、银行记录、客户联系信息和公司财务等数据运行。存储企业数据最高效的方式是采用数据库,它可实现快速检索、搜索、更新、保护与分析。
无论是现成的应用还是定制应用,都可以通过高效的查询语言、标准数据交换格式和强大的编程接口访问数据库。但是,某些高端数据库(例如 Oracle Database 23ai)实际上可以在数据库引擎内部运行应用,经常能够为应用提供快速、安全且强大的数据访问。此类应用的开发工具可直接面向数据库引擎,额外的好处是数据库管理员在应用部署后仍能对其进行管理与调优。
微服务
在云微服务架构中设计的应用通常易于维护和部署,并且非常强大。此类架构可能包含数百乃至数千个微服务,每个服务都是为高效执行单一任务而编写的构建块,通过简单通信协议与其他应用或微服务进行交互。
基于微服务的应用也具有高度的可扩展性;以云技术为中心的设计和架构意味着,如果特定服务被大量使用,云技术可以根据需要自动创建和运行大量副本。此外,由于单个微服务专注于特定任务,因此它们易于设计、编码、测试和部署。
开发团队构建应用的方法体系即为方法论。该术语涵盖设计哲学、项目管理方法,以及开发团队与客户和其他关键利益相关方之间的互动模式。方法论有时会直接决定(或至少影响)开发团队对技术工具的选用决策。
无论选择何种方法论,都存在两个不变事实:目标始终是项目成功,且所有参与者都会提出见解。从广义上讲,现代软件开发方法论可分为两大类:瀑布开发与敏捷开发。
瀑布式
瀑布开发(也称为单体或经典模型)侧重于线性递进步骤:收集需求、设计、编码、测试、验收、部署、维护。每个步骤都需彻底执行,且唯有前序步骤完成后方可进入下一阶段。步骤一旦完成便极少倒退重来,这意味着瀑布开发无法适应快速变化的情况或不断发展的企业需求。这使得瀑布式方法更适合那些必须一次就成功的项目,例如汽车、核电站或医疗设备软件。
敏捷
敏捷开发采用相反的方法。敏捷专注于应用的快速实施和部署,方法是构建小型、最小可行产品 (MVP),然后进行迭代改进以添加新特性和功能、解决短缺问题、利用新技术和创意以及提高性能。
敏捷方法并非单一体系;实际上存在数十种变体,每种都有其历史渊源、拥护群体与理论依据。以测试驱动开发为例,在程序员创建新代码前,需先编写自动化测试用例以确保新代码正常运行。这有助于保证所有代码在纳入应用最新迭代前均经过测试验证。
多数敏捷方法要求每次迭代周期极短,通常仅持续数周。在这些迭代(称为冲刺)中,开发团队专注于为应用添加特性或功能。
快速
有时,应用在概念上易于设计和部署,例如基于表单的应用、报表编写器或数据库的查询工具。在这些情况下,像瀑布或敏捷这样的全面应用开发过程可能是没有必要的。这正是快速应用开发 (RAD) 的适用场景。RAD 属于敏捷方法范畴,其特点是借助简单易用的工具,使极小型开发团队(甚至单人)能够创建用户界面、编写内部逻辑并连接企业数据源。
从历史上看,RAD 开发被用来创建所需应用的可视化模型,以便开发人员和利益相关者可以在“真正的”编程工作开始之前就外观和功能达成一致。这也催生了 RAD 的别称:快速原型法。然而,随着低代码与无代码工具的出现,RAD 开发已能基于快速原型直接构建并部署简单应用。更重要的是,开发时间可压缩至数天,这令业务用户欣喜不已。如果某个应用适合采用 RAD 方法开发,那么往往应当优先选用。
主要差异
| 加快部署速度。 采用敏捷开发时,企业员工或客户可在应用功能未完备前提前使用。敏捷模式在移动应用中尤为常见,这类应用需要持续添加新功能。 | 刚性需求。 当需求高度明确且应用必须严格遵循时,瀑布模型更为适用。医疗设备或工业控制系统中的软件便是例子。 |
| 原型可转化为实际应用。 对于简单应用,快速应用开发流程可能是最佳选择。采用 RAD 方法与低代码/无代码工具,开发者甚至高级用户能在数天(有时仅需数小时)内创建并部署报告生成器、数据库移动交互界面或数据收集表单。 | 可适应不断变化的需求。 通过敏捷开发,需求变化可作为新功能轻松纳入后续迭代周期。例如,应用需适配全新的便携平板或集成生成式 AI;这些需求在应用最初构想时可能根本未被纳入考量。 |
以下是根据使用场景,使用特定方法构建的三个企业应用示例。
应用可以赋能客户和员工,扩展业务,或简单地解决痛点。不过应用开发也可能是昂贵且资源密集型的,如果新软件有安全漏洞,可能会给公司及其客户带来风险。以下是一些有助于尽可能降低风险和提高成功率的优秀实践。
生成式 AI 正被应用于诸多文本导向型任务:总结报告、撰写十四行诗、起草客服邮件、增强聊天上下文关联性等。事实证明,生成式 AI 同样擅长编写软件代码:编程语言本质上也是语言,从软件的角度来看,它与英语、西班牙语或中文并无太大差异。
在应用开发领域,生成式 AI 擅长将开发人员用对话式人类语言表达的书面意图转换为已完成的即用型代码。根据早期实验验证,这类 AI 生成的代码具备功能性、高效性与安全性。这一优势在数据库访问代码或微服务配置模板等开发过程繁琐的代码环节中尤为显著。
生成式 AI 可以帮助开发人员的另一个领域是检查人工编写的代码,以查找错误,发现潜在的漏洞,并指出未遵循优秀实践的编码环节。预计基于 AI 的辅助功能将成为主流软件开发工具与平台的标准配置。
软件开发是一种不断发展的实践。如前所述,生成式 AI 将帮助开发人员摆脱繁琐的任务。它将成为应用开发的主体,并将嵌入到主流开发工具中。微服务等新架构将支持利用模块化方法快速构建新应用。不过,我们也注意到了其他趋势。
安全是头等大事。 恶意攻击者将持续威胁企业安全,因此应用不仅需在设计与构建阶段保障安全性,更应随着新型攻击工具的出现持续更新防护机制。
移动化已成常态。 对多数人而言,智能手机已成为主要计算设备,这意味着企业必须熟练掌握移动应用开发或移动端浏览器适配设计。
开发民主化。 员工将持续要求获得能快速构建应用的低代码/无代码工具。如何在鼓励此趋势的同时保障质量与安全?
Oracle 提供丰富的开发工具、服务和平台,可以满足任何应用开发项目的需求。此外,Oracle 还提供全面的现成可用的业务应用集合,这些应用可以定制并与您自己的应用集成,以帮助满足您的需求。
在哪里部署?Oracle 的新一代 Oracle Cloud Infrastructure (OCI)可为您提供所需的数据库、开发人员服务、集成服务和存储。这些基础能力通过网络、分析与商务智能、低代码/无代码工具及业务应用可调用的新型 AI 服务得到增强。结合 Oracle 的应用安全、合规性与成本管理工具,即可快速启程。
Oracle 提供性价比更高、存储成本更低的云技术服务,覆盖全球 48 个商业和政府区域,可以更好地满足您的需求。您的下一个项目不需要云技术?了解 Oracle 本地部署系统,包括 Oracle Exadata 企业数据库平台。
开发人员及其业务同事都可以从专为提高敏捷性、可扩展性和效率而设计的云原生应用中受益。了解更多信息,探索云技术持续优化的十大进展。
应用开发人员的职责是什么?
应用开发人员负责构建业务应用,更准确地说,他们是参与构建这些应用的团队成员。开发人员需具备技术技能,包括掌握敏捷方法;熟悉 Java、SQL、Python 及 JavaScript 等编程语言;并扎实理解软件架构。其具体职责包括架构设计、编码、测试调试、用户界面设计、数据库集成、报告编写及软件维护。
应用开发有哪些步骤?
应用开发包含八个主要步骤;其中某些步骤可并行执行,或根据采用的方法论迭代执行。
注:为免疑义,本网页所用以下术语专指以下含义: