Alan Zeichick | 内容策略师 | 2024 年 9 月 6 日
用于库存控制、人力资源和会计的后端系统。用于创建电子邮件、文档和电子表格的高效应用。面向客户的软件,例如您的网站或移动应用程序。面向 IT 团队、平面设计师、项目经理、高管和卡车司机的专业系统。
您明白了 — 运营一家现代企业需要大量代码。
您的企业所依赖的大多数应用很可能是由软件供应商创建的,并且通常采用软件即服务模式进行许可。请考虑您的 Microsoft Office、Oracle NetSuite 或 Adobe Photoshop。其他应用则是由内部开发团队或承包商根据您的规范编写或定制的。第二种情况是本文的重点。
应用开发 (AppDev) 是设计、创建、测试和部署软件的过程。成功的应用程序开发需要具备各种技能的人员。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 方法。
主要差异
| 加快部署速度。借助敏捷开发,组织的员工或客户可以在应用功能复杂之前开始使用该应用。敏捷性在移动应用中很常见,在移动应用中不断添加新功能。 | 刚性要求。当需求非常具体,并且应用不应偏离这些需求时,瀑布模型是首选。例如,考虑医疗设备中的软件,或工业控制系统中的软件。 |
| 原型可以成为现实。快速的应用开发过程可能更适合简单的应用。借助 RAD 方法和无代码/低代码工具,开发人员甚至高级用户可以在数天内创建和部署报告编写器、数据库移动界面或数据收集表单,这可能只需要几个小时。 | 可适应不断变化的需求。随着敏捷开发,需求变化可以作为一种新功能并入未来的周期。也许应用必须能够在全新的便携式平板电脑上运行或融入生成式 AI;这些在最初设想应用程序时可能甚至没有被考虑到。 |
以下是根据使用场景,使用特定方法构建的三个企业应用示例。
应用可以赋能客户和员工,扩展业务,或简单地解决痛点。话虽如此,应用开发也可能是昂贵且资源密集型的,如果新软件有安全漏洞,可能会给公司及其客户带来风险。以下是一些有助于尽可能降低风险和提高成功率的优秀实践。
生成式 AI 正在用于许多面向文本的任务:总结报告、撰写十四行诗、起草客户服务电子邮件、使聊天更加情境化等。事实证明,GenAI 也擅长编写软件代码:编程语言是一种语言,从软件的角度来看,它与英语、西班牙语或普通话并没有太大不同。
在应用程序开发方面,GenAI 擅长将开发人员用对话式人类语言表达的书面意图转换为已完成的即用型代码。基于早期的实验,这种 AI 生成的代码是功能,高效和安全的。这在代码中开发起来很繁琐的部分较为明显,例如数据库访问代码或用于设置微服务的样板文本。
GenAI 可以帮助开发人员的另一个领域是检查人工编写的代码,以查找错误,发现潜在的漏洞,并指出程序员没有遵循最佳实践。预计基于 AI 的援助将成为主流软件开发工具和平台的标准功能。
软件开发是一种不断发展的实践。如前所述,GenAI 将帮助开发人员摆脱繁琐的任务。它将成为应用程序开发的主体,并将嵌入到主流开发工具中。微服务等新架构将允许利用模块化方法快速构建新应用。但是,我们注意到了其他趋势。
安全是头等大事。不良行为者将继续威胁组织,因此应用程序不仅必须为安全而设计和构建,而且随着新的攻击工具上线,它们还需要不断更新。
移动性成为主流,且将一直下去。对于许多人来说,智能手机是他们的主要计算设备,这意味着组织必须舒适地构建移动应用程序或设计以便在移动浏览器上使用。
开发民主化。员工将继续要求提供无代码/低代码工具,以便快速开发自己的应用。如何在不牺牲质量或安全的情况下鼓励这一点?
Oracle 提供丰富的开发工具、服务和平台,可以满足任何应用开发项目的需求。此外,Oracle 还提供业界全面的现成可用的业务应用集合,这些应用可以定制并与您自己的应用集成,以帮助满足您的需求。
在哪里部署?Oracle 的新一代 Oracle Cloud Infrastructure (OCI) 可为您提供所需的数据库、开发人员服务、集成服务和存储。通过网络、分析和商务智能、低代码/无代码工具以及可由业务应用利用的新 AI 服务来增强这些功能。再加上 Oracle 的应用安全性、合规性和成本管理工具,您就可以开始了。
Oracle 提供性价比更高、存储成本更低的云技术服务,覆盖全球 48 个商业和政府区域,可以更好地满足您的需求。您的下一个项目不需要云技术?了解 Oracle 本地系统,包括 Oracle Exadata 企业数据库平台。
开发人员及其业务同事都可以从专为提高敏捷性、可扩展性和效率而设计的云原生应用中受益。了解云计算变得更加完善的另外 10 个方面。
应用开发人员的职责是什么?
应用开发人员负责构建业务应用,或者更准确地说,是构建这些应用的团队的成员。开发人员需要具备技术技能,例如敏捷方法的知识;一种或多种编程语言,例如 Java、SQL、Python 和 JavaScript;以及对软件架构的深入了解。具体职责包括架构设计、编程、测试和调试、用户界面设计、数据库集成、报告撰写和软件维护。
应用程序开发有哪些步骤?
在应用开发中有八个主要步骤;其中一些可以并行执行,根据不同的方法论,有的也可以迭代执行。
注:为免疑义,本网页所用以下术语专指以下含义: