0

我们希望在现有的 Eiffel 业务层核心之上构建一个网站,该核心位于 MS SQL Server 数据库之上。我目前正在考虑纯粹在 Eiffel、纯粹在典型的 web 堆栈或某种混合中编写 web 和移动层的优点和缺点。

对我们来说,纯埃菲尔铁塔有明显的优势,其中最重要的是:

  1. 其他语言中没有的继承和其他语言符号机制。
  2. 编译器无法查看其他语言的代码,因此我们处于同样的劣势,即我们从 Eiffel 跨出到其他语言中。
  3. 自动测试是我们在 Eiffel 代码中严重依赖的东西,它明显利用了契约式设计。在其他语言中,我们失去了这种能力,只剩下 TDD(例如他们在 Eiffel 中的 Auto-Test 版本)。
  4. 我们现在必须学习的不仅仅是:Eiffel、HTML-5、CSS-3、JS 以及我们使用的任何 JS 框架。
  5. 每一种新的语言和工具都会增加项目的复杂性。
  6. Eiffel 程序被编译为 C --> EXE,这比脚本和解释程序要快得多。

我认为现有的非埃菲尔语言也有一些明显的优势:

  1. 现有的框架和工具可以相当快速地开发简单到适度的网站和移动应用程序。
  2. 现有的“最佳实践”并不可怕,并且产生了相当可靠和可维护的代码。

我不确定所有的优点和缺点是什么,所以我问。然而,归根结底:我们的核心商务套件是纯粹的 Eiffel。那永远不会改变。

提前感谢您的反馈!

4

2 回答 2

1

从我幼稚的角度来看,下一个缺点列表是:

  1. EWF 包还没有完成,未来它会有更多更好的功能,因此您可能需要跟随新的开发来利用新功能。
  2. Eiffel 编译器无法即时更新 Web 程序,需要重新编译和重新部署。
  3. 如果程序是多线程的,你需要学习一种基于 SCOOP 模型的结构化处理并发的方法。
  4. 一些工具(例如,XSLT 处理器)不容易集成到 EWF 中,您可能需要自己做。
  5. 当前的 EWF API 相当低级,因此在建立在 EWF 之上的高级框架普及之前,您可能需要进行比预期更多的低级编程(我所说的低级主要是指生成 HTML/ XML/或您的 Web 服务将生成的其他格式)。
  6. 必须只使用一种语言来执行应用程序逻辑和 HTML 生成,这允许轻松调试,可能会降低对开发人员及其技能的要求,这可能会影响您的业务模型。
  7. 有几种工具可以满足特定需求,如 wiki、简单的网页创建、授权等,但您可能需要增强它们以获得更丰富的功能以及设计软件的体系结构,因为一些习语和使用模式尚未成立。
于 2015-03-19T17:30:04.097 回答
1

以下是我可以根据自己的经验说的话(我在不同的框架中创建了几个 Web 应用程序,其中一个在 Eiffel 中)。首先,Eiffel Web 框架现在非常可用。其他框架的优势在于它们的特性。以下是我在使用 Eiffel 创建 Web 应用程序时遇到的主要问题的列表:

  • 我必须自己创建 MVC 设计(其他框架,如 Django、Rails 或 Laravel 会自动完成)。
  • Eiffel 缺乏是一个很好的模板系统。Smarty 库还可以,但它确实缺乏其他一些非常好的模板功能。此外,尝试在 Smarty 中使用 UTF-8 文件可能非常困难(这对我来说很痛苦)。
  • 我不得不做一些基于 cookie 的会话管理,因为 Eiffel Web Framework 中的那个非常原始。
  • 发布过程(移除 Nino)并不容易,并且缺乏良好的文档(我使用的是 Apache,我不了解 IIS)

就这样,除此之外,一切都很顺利。

于 2015-03-19T16:25:52.287 回答