Magento 2 Goals (翻译)

前言:本篇是 Alan Kent 关于 Magento 2 的目标的个人看法,原文地址:https://alankent.me/2014/05/17/magento-2-goals/。Alen Kent 是 Magento 的架构副总裁( VP of Architecture 不知道这么翻译对不对额)。希望有助于多一点了解 Magento 2 。原文发布时间为2014年5月17日

Magento 2 像所有的重大项目一样,有一套自己的目标。这些已经在最近的 Magento Imagine 2014 研讨会上讨论过了。在这里,我结合自己的看法,做一个总结,以供有兴趣的人继续探讨。

声明:本篇仅代表个人观点,不代表 eBay 公司的观点。

全新的技术栈

Magento 2 对技术栈的最低版本要求提高了。Magneto 2 被设计成为一个强大稳定的平台,所以选择了相对成熟的技术,而不是停留在过去。不依赖太多不同的技术,但努力做到允许社区在平台的基础上选择他们喜欢的技术,也是其中的一个目标。But I expect this is an area you just have to expect to not satisfy somebody (不知道怎么翻译。。囧)

需要升级的技术有:

  • php 5.4 版本支持的最低版本
  • 现在用上 jQuery 了。要注意升级技术栈并不是说就要用最前沿的技术。
  • Html5 和 CSS 3
  • RequireJS
  • PSR-0, PSR-1,PSR-2 (PHP 编码规范)
  • LESS

改进的性能和可扩展性

提高性能(更快处理请求)和可扩展性(使他可以通过加硬件来支持更高的负载)是 Magento 2 的重要目标。正在进行基准测试工作,不过这块还有更多的工作计划。优化代码要反工是非常没有成效的事,所以这部分到目前为止不是 Magento 2 的重点。这一点将会改变。

简化的自定义工作

大量的精力已投入到简化 Magneto 2 自定义工作中来。Magneto 的核心好处之一就是可以很大程度上进行自定义另外满足特定的需求。Magneto 并不是个仅有一些模板通用系统。新颖的功能可以被整合进去,以支持他们的品牌或是让商家走在前列。相关的例子有:

  • 解决许多痛点:添加新的模块却不能自定义想要的功能(不得不对他依赖的底层的代码进行改造);有些模块会发生冲突。这里的技术升级包括改进布局文件的继承,新的依赖注入,支持拦截,模块化使其易于被移除或替换,等等。Magento 的基础代码量挺大的,因此第一阶段先介绍采用了哪些新技术,第二阶段渐进式地重构代码,以发挥新技术的力量。
  • 目录结构被重组了,所以关于某 module 的所有文件会在同一个目录下。
  • 将业务逻辑和模板文件分离出来,这样可以减少自定义模板时的重复。

许多倍用来减少扩展的冲突的技术,结果带来了额外的好处,就是让自定义所需编写的代码量减少了。这可能导致相比较 Magento 1,Magento 2上手更困难些,但是最终的结果是由于需要编写和维护的代码量减少了,完成自定义项目所需的时间会更少。更少的冲突,更好的封装会让升级变得更容易和更可靠。

2014年5月18日增加内容:当然有些人要抠字眼,“可能导致 Magento 2 上手更困难”,可能作何解释?展开来说,减少扩展冲突的方法一部分是通过阻止某些做法。这里用到了现代软件工程的实践。产品文档更加强调如何更好地解释这些概念。最终的结果可能是Magento 2 更容易开发,但是还是要看社区的反应才能知道是不是更容易开发了,在这个阶段文档还没有完成,所以现在说还是言之过早。我当然相信整体上一定会更好。如果开发者遵守新的规则,扩展之间的冲突应该会大大减少。

简化外部的集成

Magneto 2 很酷的一项技术就是新增了服务层。虽然它只是一个不错的设计,定义模块的接口,相对较小的API,其他模块(还有表示层的布局和块)可以依赖这些接口或者API。我认为非常酷的一点是,用一个简单的 XML 配置文件,PHP API 自动作为 REST 和 SOAP 的 endpoint (自动生成的 WSDL 文件)。不需要多写什么。因此,如果你想为其他系统提供 API 接入,你可以创建一个新的模块,申明一个简短的 XML 文件,这就OK了。我认为这带来了一系列有趣的新方法(这些方法以前实现起来太费力气太贵了),可能会对 Magento 的后端集成产生很大影响。

将业务逻辑与模板分离,位于服务层下,带来另一个好处,这样更容易保证 APIs 的行为和用户在站点上交互保持一致效果。(Magento 1 的 APIs 和web 交互可能会有偏差)

更容易安装和升级

Magento 的安装过程正在被革新。大量简化自定义工作的努力也让升级变得更简单了。自动化测试(下文会提到)也有助于平滑升级。这是一个刚刚开始的工作领域。Composer 也是你安装第三方插件时,帮助你更容易安装的技术之一。

高质量的代码和测试

Magento 2 采用现代的自动测试策略。目标是减少手动测试,发布自动测试套件,让所有开发者和商家都可以了解到模块的测试覆盖率,希望有助于建立更多的测试用例来提高代码质量。测试类包括:

  • 单元测试
  • 继承测试
  • JavaScript 测试
  • 性能测试
  • 静态代码分析
  • 完整性测试
  • 功能测试

总结

在某些方面,Magneto 2 的一些改变并不很激进——只是应用了更好的软件设计原则。不过我相信这类平台级别的变化可能会有意想不到的间接好处,这种好处有时候很难解释清楚。很难想商家解释为什么依赖注入(这也正好简化自动测试)是那么叫人兴奋。对他们来说这可不叫人激动。令人激动的是他会减少开发新站点、进行自定义、之后升级的工作量,当然会减少成本了。这带来了加速创新的巨大潜能。商家可能会对升级抱有更大的信心,更愿意频繁升级。你什么时候愿意升级手机上的APP呢?这会让商家更快接受新的趋势。

我认为 Magento 2 的潜在好处就是他的加速效果。只有时间可以证明我的预言是否应验!

发表评论

电子邮件地址不会被公开。 必填项已用*标注