paint-brush
Laravel Nova 的优点、缺点和陷阱:制药 ERP 系统开发案例研究经过@jatapp
3,485 讀數
3,485 讀數

Laravel Nova 的优点、缺点和陷阱:制药 ERP 系统开发案例研究

经过 JatApp8m2023/05/18
Read on Terminal Reader

太長; 讀書

案例研究揭示了 Laravel Nova 的主要优点、缺点和黑暗角落。故事围绕着来自乌克兰的软件开发公司 JatApp 的项目展开。 JatApp 的客户是一家制药公司,需要一个 ERP 系统来改进他们的供应链管理。由于解决方案应该尽快交付,因此选择了 Laravel Nova 作为一种可以快速交付高质量结果的技术。
featured image - Laravel Nova 的优点、缺点和陷阱:制药 ERP 系统开发案例研究
JatApp HackerNoon profile picture

“尽快” 。您当然可以将这个短语与想要开发定制软件解决方案的企业联系起来。


这就是为什么软件开发机构尝试使用可以保证企业高管和初创公司创始人快速产品开发过程的技术。来自乌克兰的软件开发供应商JatApp与这样的客户合作。


Laravel Nova 是首选技术,因为它必须在尽可能短的时间内为客户提供可用的产品。


Laravel Nova 是否达到了它的目的?让我们在下面的案例研究中找出答案。


行动中的 Laravel Nova


一家制药公司需要其定制的 ERP 系统

制药行业的物流和供应链管理是一项艰巨的任务。


法律法规、产品存储的具体要求、高需求可变性和供应中断是在整个供应链中顺畅及时地交付药品的主要障碍。

制药行业典型的供应链


此外,许多公司手动记录其供应链管理数据,这也会造成延误和混乱。因此,整个供应链面临严重的性能瓶颈。


JatApp 的客户打算通过开发一个供内部使用的自定义企业资源规划 (ERP) 系统,从他们的供应链管理中摆脱这种装备不良的流程。


ERP 应用程序有望在供应链内所有利益相关者均可访问的单一共享系统中实现所有供应链管理操作的数字化、优化和自动化。


尽管客户很清楚制药行业物流中的问题,但该公司显然没有任何软件开发方面的专业知识。这就是客户来到 JatApp 寻求技术帮助的原因。


但是这里出现了“尽可能快”的事情。客户的公司必须预先投入大量资金,他们希望快速获得切实成果的愿望是自然的。


最重要的是,客户不想过多关注 ERP 的用户界面 (UI)。他们打算只在内部使用它,因此任何额外的花哨的东西都不是强制性的,以使解决方案适销对路。


主要目标是开发足够快的解决方案,以便在客户方便的时候尽早开始使用它。我们显然需要一个可以很好地服务于此目的的技术堆栈。

Laravel Nova 就是为了方便和高效

ERP 系统需要自动化和加速公司整个供应链的运营,这就是为什么开发一个强大的管理面板来控制数据记录和用户权限是重中之重的原因。


我们不要忘记,开发过程应该同时快速高效。


出于这些原因,JatApp 的软件工程团队决定使用 Laravel Nova 作为一种工具来节省管理面板编码的时间和精力。但为什么是 Laravel Nova?


Laravel Nova 是 Laravel 的商业管理面板,Laravel 是一种流行的 PHP Web 应用程序框架。它旨在为开发人员提供可定制且易于使用的界面,以管理其 Laravel 应用程序的管理。


借助 Laravel Nova,软件开发人员可以快速轻松地创建基于 Web 的管理界面,使他们能够管理应用程序的各个方面,例如用户管理、内容管理和其他管理任务。


它包括可搜索资源列表、过滤器、表单、操作、指标和授权等功能。


Laravel Nova 是用 Vue.js 构建的,它与 PHP Laravel 集成得很好,因为 Laravel 支持 Vue.js 作为开箱即用的解决方案。


不用说,Nova 和 Vue.js 的这种兼容性为软件开发带来了很大的灵活性,因为创建自定义页面、字段等成为可能。


这就是我们精心挑选 Laravel Nova 的一般原因。但软件开发的便利性和效率并不是一些抽象和主观的术语。


由于以下优势,我们的团队发现 Laravel Nova 是客户项目的有效且方便的解决方案:

开箱即用的组件

Laravel Nova 提供了广泛的开箱即用解决方案,使我们的软件开发人员能够以最大效率构建 ERP 的管理面板:现成的菜单、过滤器、操作和搜索字段很容易组装成一个完整的-成熟的管理面板。


然而,Laravel Nova 不是一个低代码/无平台,而是一个具有应用程序管理所需的一系列预构建元素的工具。我们的团队仍然需要编写代码来根据系统的要求自定义和扩展这些组件。

简单的 CRUD 操作

公司的供应链管理涉及大量数据,这些数据应该在不同的利益相关者之间交换。这就是为什么在整个供应链中使数据准确、易于更新和一致至关重要的原因。


为了应对这一挑战,JatApp 团队不得不提出对所谓的 CRUD 操作进行适当管理的方法。


CRUD 操作是指在大多数软件应用程序中管理数据所必需的基本功能。 CRUD 代表创建、读取、更新和删除,这些操作对应于您可以对数据执行的四种基本功能。



在 PHP Laravel 的上下文中,CRUD 操作用于与数据库交互并执行创建、读取、更新和删除记录等操作。使用 Laravel Nova,导航 CRUD 操作对我们的团队来说是轻而易举的事。


该工具简化了数据架构的构建,从而节省了大量 ERP 开发时间。 Laravel Nova 提供内置验证,确保数据输入正确并满足特定条件。


这有助于我们使系统对错误敏感。通过这种方式,ERP 应用程序的用户向系统提交错误或不相关数据的可能性很小。


Laravel Nova 还支持不同数据库表之间的关系,这简化了对相关数据执行 CRUD 操作的过程。这对于 ERP 应用程序尤为重要,因为它必须涉及具有多个相关表的复杂数据结构。


关系帮助我们确保输入系统的数据始终一致且准确。此外,关系功能使我们的软件工程师能够简化代码并使其更易于随着时间的推移进行维护。


除了适当的数据管理外,客户强调避免完全擦除数据对他们来说很重要。得益于称为软删除的功能,Laravel Nova 能够弹指之间解决此任务。


此功能使特定数据元素处于从数据集中排除的状态,但该元素仍存储在数据库中。

自定义字段

ERP 系统被多个利益相关者使用,这意味着人为错误的风险很高。这就是 Laravel Nova 的自定义字段功能派上用场的地方。


Laravel Nova 中的自定义字段允许我们在管理面板中创建和自定义对 ERP 应用程序的数据要求至关重要的字段。


通过自定义字段,我们的团队添加了新类型的输入字段,自定义了现有字段的显示,并创建了可用于收集或显示数据的复杂字段类型。


我们创建了针对系统数据量身定制的输入字段,提高了 CRUD 操作的效率和准确性。


通过这种方式,ERP 系统中的数据输入对用户来说变得更加直观,同时由于应用了特定的输入格式和验证规则,数据质量也得到了提高。

权限管理策略

我们已经提到,使用 ERP 系统意味着要涉及不同的各方:存储工人、司机、客户等。因此,隔离所有用户流以确保利益相关者不会干扰彼此的数据至关重要。


策略功能帮助我们解决了这个任务。在 Laravel Nova 中,策略是一种允许定义规则来控制对应用程序各个部分的访问的功能。策略根据用户的角色或权限定义用户可以对资源执行的操作。


由于此功能,我们的开发人员能够为每个用户创建范围广泛的权限。在系统中实施权限可以避免许多混淆,因为每个用户都可以访问与他们相关的数据。

没有挑战就没有便利

尽管 Laravel Nova 是一种可以快速轻松地构建管理面板的便捷工具,但存在一个主要障碍:面板的元素无法完全自定义。


该工具确实为开发甚至复杂的管理面板提供了广泛的现成组件,但其中许多根本不符合我们的要求。


正如使用开箱即用的解决方案经常发生的那样,你成为了他们的囚徒。在开发的后期,我们的团队面临着定制多个组件的挑战,因为 Laravel Nova 没有按照我们想要的方式定制它们。


毫无疑问,这些挑战在一定程度上减缓了开发过程的步伐。


由于我们开发团队的创造力和创造力,我们找到了一些不明显但有效的方法来使 ERP 满足其要求并使其看起来像预期的那样。


为了摆脱“现成解决方案”的陷阱,我们不得不使用 Vue.js 使系统界面看起来与软件需求规范所述完全一致。


Laravel Nova 通过提供几乎无限的定制可能性来吸引我们使用它,但我们应该运行一个简短的演示来了解这些功能在实践中是否真的那么好。


好消息是我们的软件开发人员通过跳出框框思考并找到创造性的出路解决了这个问题。顺便说一句,双关语。

Laravel Nova 值得尝试吗?

对,但是…


Laravel Nova 是快速构建管理面板的好工具,无论应用程序有多复杂。该工具确实帮助我们公平公正地为客户的 ERP 系统开发了这样一个管理面板。


客户对结果感到满意,甚至计划扩展该解决方案以优化其制药业务其他方面的流程。


但是自定义管理面板的每个闪亮按钮和黑暗角落的自由是难以捉摸的。这意味着您必须绝对确定 Laravel Nova 将非常适合您的项目,或者您的团队具有足够的创造力和知识来平滑顽固的不可定制组件的角落。


我们的结论和经验教训:Laravel Nova 是一个相当高效的管理面板快速开发工具,但您应该注意运行一个简短的演示,以确保您完全了解该工具可以带来的功能。