Magento是一个领先的电子商务平台. 是开源的, 它提供对电子商务网站的完全控制,并允许无限的增长空间. 你可以在Magento上建立一个帝国.
Magento社区充满了努力为业务增长提供更新和新集成的开发人员. 但是说到定制, 一个公司需要确保它有专门的Magento开发人员,他们是专业的,有公司的最佳利益. 很容易留下后门,或者用糟糕的代码搞砸Magento项目.
那些试图过度削减成本的人最终会付出双倍的代价——在……的背景下尤其如此 Magento开发服务.
项目前检查:Magento本身是否合适?
Magento如此受欢迎有以下几个原因:
- Magento有一个很大的社区.
- Magento是高度可扩展和可定制的.
- Magento’s 付费(商业)版本 具有附加功能.
- Magento允许多个电子商务网站在一个单一的安装.
- Magento是pci兼容的.
- Magento可以为任何业务工作.
- Magento允许完全控制由此产生的电子商务网站.
- Magento是开源的,它允许开发自定义集成(例如.g.,与ERP系统同步).
- Magento通过满足特定国家的需求,适合国际购物.
- Magento允许在线企业出售高风险或有争议的物品.
- Magento可以与亚马逊、eBay、沃尔玛和乐天(Rakuten)整合.
That said, Magento确实需要有能力的管理和开发,这对于小型企业来说可能是遥不可及的, 取决于他们的需要和资源.
对于那些已经有信心选择Magento的人, 下一步就是知道如何找到一个优秀的Magento开发人员.
Magento 2技术栈
和Magento 1一样,Magento 2不是一门语言,而是一个平台. 它是建立在以下web技术:
- PHP
- MySQL
- HTML5
- CSS3(和Less CSS预处理器)
- JavaScript(和jQuery,它的主要JavaScript库)
- RequireJS(帮助按需加载JavaScript资源的库)
- Knockout.js(使用模型-视图-视图模型模式简化了JavaScript ui)
- 第三方核心库(Zend Framework 1、Zend Framework 2、Laminas和Symfony)
然而,雇佣一个了解他们的开发者并不足以获得成功. 和其他领域一样,经验很重要. 如果没有经验,即使是一个简单的项目的本地设置也可能具有挑战性. (因此,Magento认证的重要性,下面将介绍.)
作为一个流行的电子商务解决方案,Magento是巨大的,非常强大. 它有自己的规则和最佳实践. 但它所依赖的技术也是如此. 例如, 最好的Magento开发人员将习惯于遵循PHP编码标准,如PSR-0(自动加载标准)。, PSR-1(基本编码标准), PSR-2(编码风格指南), PSR-3(记录仪接口), PSR-4(自动装卸机).
Magento版本:Magento 1和Magento 2有很大的不同
值得强调的是,有两个完全不同的Magento版本. 这意味着在选择开发人员时, 开发人员和客户端都需要清楚要使用的Magento版本. 只了解Magento 1的Magento程序员将需要相当多的时间来熟悉Magento 2.
绿地项目绝对应该使用Magento 2. Magento 1现在被认为是一种遗留技术, 尽管仍然有很大的安装基础. 许多公司正在进行将基于版本1的电子商务网站迁移到Magento 2的项目.
从Magento 1迁移到Magento 2
Magento 1 正式达成 它的“生命结束”日期,这意味着核心Magento团队不再提供任何更新. 开发人员关注Magento 2已经有一段时间了,而把Magento 1抛在了后面.
如果你正在寻找一个开发人员迁移到Magento 2, 关键是Magento 2的迁移需要Magento 1和Magento 2的知识和丰富的经验.
谈到Magento迁移,有三个主要的主题需要讨论.
Magento 2迁移:主题
需要手动迁移主题. 这意味着从头开始完整的主题开发, 除非有问题的Magento主题也适用于Magento 2. 在这种情况下, 它就像获得新的主题版本并将其安装在Magento实例上一样简单.
Magento 2迁移:模块
从第三方供应商购买的模块很可能已经有Magento 2版本了, 所以这也应该像获得新版本并将其安装到新的Magento 2平台一样简单. 定制开发的模块需要手动迁移.
Magento 2迁移:数据库
Magento已经有了迁移数据库的脚本. 开发人员需要配置和执行它们.
还有用于增量更新的脚本, 这意味着主数据库迁移之后, Magento程序员可以运行单独的命令来同步产品, orders, 客户(不断增长/变化的数据). 这些允许网站同时运行两个版本,并在上线过程和实际的Magento网站切换期间执行增量更新.
招聘流程:候选人要求
要找到一个优秀的Magento开发人员,有很多事情值得考虑. 除了前面提到的技术栈, 首先要看的是Magento认证. 让我们快速浏览一下主要的认证,这很简单 to verify.
更新:下面列出的认证仍然有用, 但面试官可能会看到一些求职者拥有Adobe的新证书. 它们中的许多并没有与下面的每个专门化直接对应,而是进行了描述 in detail 在Adobe网站上.
Magento 2解决方案专家
注意:还有一个等效的Magento 1解决方案专家认证.
本证书是面向管理面板的知识和理解业务流程. It’s not oriented toward Magento code customization; developers usually pass it to get a better understanding about the business processes and Magento built-in features, 而不是发展本身.
这样的认证总是对开发人员能力的一个很好的补充, 特别是如果你正在寻找一个能够在电子商务决策方面为你提供建议和指导的开发人员.
Magento 2专业前端开发人员
前端开发人员考试旨在验证主题化和UI技能. 推荐公司寻找一个人与Magento面向用户的部分工作.
Magento 2助理开发人员
助理开发人员考试是为刚刚开始Magento 2之旅的Magento开发人员准备的. 它涉及常见Magento定制和最佳实践的基本知识. 该认证涵盖了前端、后端和数据库等所有主要领域. 具有此证书的候选人将具有基本的Magento定制理解.
Magento 2专业开发人员
注意:还有一个等效的Magento 1专业开发人员认证.
标题中有“专业”已经说明了很多. 要找到很多拥有这个认证的Magento开发人员并不容易. 公司可以将非常复杂的任务交给这样的开发人员,并依靠他们作为Magento 2专家来交付高质量的结果.
Magento 2专业开发人员Plus
注意:还有一个等效的Magento 1专业开发人员Plus认证.
这一点与专业开发人员非常相似, 但是这个考试包括Magento Commerce(可以被认为是EE), 或企业版)定制问题. 如果你看到一个拥有专业+证书的开发人员, 他们几乎可以毫无疑问地采取行动. 专业开发人员+证书持有人是Magento高级开发人员,他们可以领导您的项目并为任何复杂的问题提供工程解决方案.
Magento 2专业JavaScript开发人员
不是最受欢迎的认证,但仍然有好处. JavaScript在Magento结帐过程中被大量使用. 对于寻找开发人员来定制他们的结帐的公司, 事实上,一个候选人拥有这个认证应该激发更多的信心.
招聘过程:面试
当谈到Magento时,前端和后端开发人员之间有一条细微的界限. 开发基于magento的前端还意味着处理后端以开发块, templates, 和布局. 雇佣一个只懂样式表和JavaScript的前端开发人员会很困难. 确保候选人对Magento后端有基本的了解.
在为开发人员角色排列需求时, 最好将Magento开发与支持分开. Magento support developers should definitely be Magento experts; candidates with at least a 专业 developer certificate are recommended. Magento has quite a complex structure and tons of dependencies the developer should be aware of; support requires a perfect understanding of ongoing and interdependent processes to make sure that fixing one bug won’t create another. 故障排除始于头脑, 还有Magento, 如果您不完全理解它是如何工作的,那么很容易走上错误的调试方向.
支持开发人员还应该是DevOps工程师. 这意味着他们应该具有关于服务器设置和管理的基本知识. 在某些情况下,您的电子商务网站可能会出现故障, 他们应该有能力处理它. 对于计划外的Magento作业, 他们需要在哪些方面迅速采取行动, 你肯定希望有经验丰富的专业人士.
相比之下,功能开发需要的Magento整体架构知识要少一些. 构建模块, Magento开发人员已经知道它将修改或扩展Magento核心的哪些部分. 记住这些信息, 根据应聘者以前的经验和技能来决定哪位求职者更适合自己,会更容易一些. 但是你永远不知道Magento电子商务网站宕机或速度极慢的原因是什么.
在选择开发人员时,最好看看候选人的实际表现. 有一个资深的开发者, 一个小型的结对编程会议是一个很好的方法,可以检查候选人是否适合开发团队. Usually, 一些较小的Magento模块开发工作来回顾开发人员的本地设置和开发技术.
另外, 公司可以要求提供应聘者引以为傲的已经开发好的模块, 来复习一下, 请看代码, 并与内部高级开发人员进行电话交谈.
面试问题
这些问题将有助于确保候选人有合适的Magento经验. 它们是Magento特有的, 每个有价值的Magento开发人员都应该能够回答这些问题. 请注意,这组问题主要针对Magento 2.
问:请描述Magento 1和Magento 2在架构上的主要区别.
一个问题是你的候选人是否也熟悉Magento 1.
-
文件夹结构改变:所有内容都放在
app
folder.
- 添加了依赖注入
- 添加了编写器包管理
- 支持最新的PHP版本(7.*)
- CSS预处理器(Less)
- 全页缓存
- RequireJS和Knockout.js added
- HTML5和CSS3
- 增加了用于清除缓存、重新索引等的命令行接口.
- Symfony是Magento 1中的第三方库,成为Magento 2的核心部分.
注意:Magento 1和Magento 2之间的差异,每个开发人员都应该能够以粗体突出显示.
问:列出Magento 2的技术栈.
- PHP
- MySQL
- HTML5
- CSS3(和Less CSS预处理器)
- JavaScript(和jQuery,它的主要JavaScript库)
-
RequireJS (帮助按需加载JavaScript资源的库)
-
Knockout.js (使用模型-视图-视图模型模式简化了JavaScript ui)
- 第三方核心库(Zend Framework 1、Zend Framework 2、Laminas和Symfony)
注意:每个开发人员都应该能够列出的Magento 2技术堆栈的部分以粗体突出显示.
问:列出Magento 2.3服务器要求.
- Linux
-
PHP >= 7.1
- Database: MySQL、MariaDB或Percona
- Web服务器: Nginx或Apache
- 复述(可选)
- 清漆(可选)
- Elasticsearch(可选)
- RabbitMQ(可选)
注意:每个开发人员都应该能够列出的服务器需求以粗体突出显示.
问:你如何在Magento 2中从第三方模块扩展一个公共方法?
Magento 2引入了一种扩展公共方法的新方法,称为 plugins,有三种类型:之前,之后和周围. 这是Magento特有的, 如果面试官在求职者的回答中没有听到“插件”这个词, 这应该被视为一个危险信号.
问:如何在Magento中重写JavaScript组件方法?
这里常见的不良做法是一些开发人员简单地复制(覆盖)JS文件,然后更改它们. 相反,Magento 2的最佳实践要求开发人员尽可能少地修改核心.
当开发人员复制整个文件时, Magento很有可能在未来的版本中做出一些调整, 但是复制的文件将覆盖它(缺少新的更改),或者与新版本中的更改不兼容.
重写Magento组件方法时, 最佳实践是创建一个mixin, 哪个只会覆盖一个特定的方法. That said, 最重要的是,开发人员熟悉一种定制技术,当他们只需要修改一个方法时,这种技术不涉及覆盖整个文件.
问:在Magento 2的前端上定义这个属性会导致什么问题 缓存= " false "
in an XML
element?
将此标签添加到任何
使整个页面不可缓存. 在主页上添加这样的标签将极大地影响页面加载速度. 但是,这个标签 is 通常用于产品比较, cart, 并签出页面,以确保这些页面没有被缓存. 这个标签要小心使用.
问:当涉及到多语言兼容性时,模板和多商店开发的重要部分是什么?
听说了多存储和多语言兼容性, 唯一需要考虑的是确保字符串是可翻译的. 一个非常常见的问题是,Magento开发人员将自定义字符串添加到模板中,而没有使它们可用于其他在线商店视图.
问:你如何确保你的代码符合Magento 2的编码标准?
预期的答案是阅读文档, 遵循最佳实践(Magento编码标准), 并配置他们的代码编辑器来进行自动代码检查. 这里的关键词是magento规定的PSR代码遵从性和PHP_CodeSniffer的使用. 如果开发人员没有提到PHP_CodeSniffer, 这意味着他们的后端代码很可能不符合Magento标准.
问:如何在Magento 2应用程序中调试PHP代码?
最流行的工具是Xdebug. 如果候选人回答使用PHP函数 var_dump
, 这意味着他们将在您的项目上花费大量的时间——特别是在必须进行适当调试的支持任务上.
没有必要只使用Xdebug(也有其他调试工具), 有时, 它可以与PHP调试函数结合使用.
重点是要了解候选人是否熟悉Xdebug并正在积极使用它.
Q: List invalid Magento 2插件的用例.
Magento 2插件的使用受到限制. 它不能用于:
- 最终方法和类
- 非公开的方法
- Class
__construct
methods
- 虚拟类型
这将是可以接受的,听到插件只能用于 public
methods, 因为这是该规则最流行的措辞,所以开发人员肯定应该知道它, 因为他们在定制Magento时非常频繁地需要它. 其他几点是日常很少面对的.
问:在没有插件和观察者的情况下,如何重写Magento 2核心类的public或protected方法?
当观察者和插件没有选择时,Magento开发人员可以使用 首选项. 有关优惠的声明 di.xml
文件,并且可以限定在前端和/或后端.
Preferences主要用于 protected
or private
访问方法,因为插件只能为 public
methods.
Sometimes, 开发人员必须使用首选项, 比如当他们需要在有问题的方法中注入一些功能时. 这是因为插件主要用于修改方法参数和返回值.
偏好被认为是最后的手段, 因为它们完全覆盖了一个方法,降低了系统的可升级性.
问:描述视图模型的目的(和唯一的用例).
这都是关于在模板中注入自定义功能. 从《欧博体育app下载》开始.2、开发人员可以为此使用视图模型. 在此之前,主要的方法是创建助手.
推荐的(最佳实践)是使用视图模型而不是创建新的块类型.
问:你跑步会遇到什么问题 设置:升级
在Magento生产模式中,以及如何避免它?
该命令将清除Magento编译的代码, 在Magento生产模式下, 它需要使用其他命令手动重新编译. 清理生成的内容而不立即重新编译将彻底破坏前端体验, 以及后端.
在Magento开发人员需要执行此操作的同时确保生成的内容保持不变的情况下, 他们需要加旗 ——keep-generated
, i.e., 设置:升级——keep-generated
.
问:《欧博体育app下载》之后发生了什么变化.3关于数据库更新脚本?
Magento 2.3介绍了声明式模式和数据/模式 patches.
声明性模式允许您简单地创建 db_schema.xml
在那里定义表参数,而不是写长数据库 CREATE
方法在 InstallSchema.php
.
数据/模式补丁引入了一种应用数据库更改的结构化方式, 因为更改的每个逻辑部分都在自己的补丁中处理. 以前,开发者创造的是冗长的、混合的游戏 UpgradeData.php
scripts.
问:什么是服务合同?服务合同的目的是什么?
服务契约是模块定义的PHP接口. 其主要目的是定义严格的通信规则,以确保其他模块可以实现这些规则. 它们还使将服务配置为web API变得更加容易.
对于一个不太懂技术的面试官来说,这个问题的答案可能相当复杂, 但是听到关键提到“PHP接口”和“web api”已经是一个好兆头了.
确定公司的电子商务需求是了解他们在候选人身上寻找什么以及这个人应该在哪些Magento领域有经验的第一步.
Magento具有非常广泛的功能,很容易搞砸一个电子商务商店. Magento的开发不会在“越便宜越好”的心态下取得成功. 糟糕的代码会导致性能问题和糟糕的客户体验——这本身就会让公司付出代价 销售损失-并保证未来Magento升级和兼容性问题.
筛选良好,专业的Magento开发人员将更容易联系.