0

我最近在做一个 Web 服务项目,并意识到我选择的架构效率极低。

我以一种非常程序化的方式编写了这篇文章,带有一点 OOP 和使用 Python 的标准异常处理的提示。基本上,它将按程序逐步检查数据,验证预期数据的存在,根据正则表达式验证数据,根据数据库验证一些数据,执行一些特定逻辑,检查错误,然后最终返回响应。提到所有数据都是使用 JSON 交换的,这可能会有所帮助。

我试图回顾代码,找到任何重复的异常,并将它们的处理推到逻辑链的顶部。这并不像我希望的那样容易,而且实际上花费了更多时间。它还使我的代码更容易出现错误,因为它的单元可测试性更低且更难阅读。

我注意到这种用于处理用户数据的程序代码范式很容易与 Web 开发相结合。例如,在 PHP 中处理表单时,可能会对数据运行一系列连续的 isset() 和 !empty() 方法。我对这种编码风格的问题是我觉得我花费了大量的时间来为错误事件编码,并且很难为这个特定目的概括和重用代码。

各种框架通过使用表单类(例如 Django)提供了很好的解决方法。但是,我注意到虽然您通过减少验证逻辑的重复来节省时间,但您仍然需要为每个预期输入“构建”一个表单。在处理软件即服务时,可能有数百个 API 方法需要您编写代码。OOP 在这里提供了一个好处,但有时客户可能会设置一个奇怪的要求,从而消除所获得的任何效率。

Web 应用程序可以从遵循 MVC 等范例/架构中受益匪浅。以我个人的经验,MVC(以及使用其原理的框架)并不能很好地解决这类问题。我考虑过使用函数式语言,但还没有尝试过。

是否有任何特定的语言、架构/范式、约定,甚至是非常适合开发自定义 SASS 或 Web 服务项目的示例框架?

4

1 回答 1

2

作为从事大量此类工作的人,我会说您的 OOP 和 PHP 问题的部分原因是因为最初 PHP 不是 OOP 语言。OOP 后来被添加到该语言中。因此,当您查看代码示例时,它们通常会有一种程序化的感觉。

近年来,我对 Spring (Java) 或 WCF (C#) 最满意。这两种语言都是强类型的 OO 语言。从概念的角度来看,这导致了一个适用于我的项目的范例。这是概述:

  1. 端点(REST 或 WSDL)——类似于 MVC 中的视图
  2. 服务——这些服务提供端点并根据需要协调 DAO。围绕您的业务逻辑组织这些
  3. 数据访问对象——将数据转换为本机对象,反之亦然。围绕您的数据源组织这些。
  4. 模型/API——支持应用程序并自动为您的服务提供文档的原生对象。

希望有帮助

于 2013-01-01T20:58:33.757 回答