【问题标题】:Magento Custom Modules (what they are and who can write them)Magento 自定义模块(它们是什么以及谁可以编写它们)
【发布时间】:2010-06-19 16:42:53
【问题描述】:

所以每个人和他们的妹妹现在都是“万磁王”哈哈...

似乎许多有这种说法的人已经(有点)学会了如何破解和修改主题 - 以及打开和关闭管理中的功能 - 但并不真正具备编写 Magento 自定义模块的技能。

  1. 那么什么是 Magento 自定义模块(在物理意义上)?如果它们是按照最严格的专业性和最高标准编写的,这是否意味着它们实际上是“独立”的脚本,可以放置在任何 Magento 商店和任何其他商店(Drupal、Joomla、自定义 php)中?

  2. 如果我正在招聘/寻找优秀的 Magento 开发人员,我怎么知道他们是否真的知道如何编写 Magento 自定义模块?

【问题讨论】:

  • 不是一个特别的编程问题。也许有效,但至少这应该被标记为社区 wiki。

标签: zend-framework magento


【解决方案1】:

1 - Magento 模块是一组文件,可以干净地放入(和删除)Magento 以添加或更改功能。由于需要进行更基本的更改,因此很难将这些文件隔离,但通常可以完成。 Magento 模块不能在不同的购物车中重复使用,因为 Magento 的框架与任何其他购物车都不相同。

2 - 获取代码示例并让中立的人审查该代码。让他们解释在 Magento 中开发的陷阱。询问他们在开发模块时必须做出的一些权衡。询问他们开发的困难模块。

这不是一个详尽的列表,但你明白了要点。

【讨论】:

  • 这是很好的建议..谢谢。 “让中立的人审查该代码”似乎很棘手。 1. 你怎么知道是他们实际写的代码? 2. 你怎么知道“中立的人”没有计划通过说代码不好或可以更好来赢得你作为客户的利益?我知道......我很偏执......但它确实浮现在脑海
  • 1.你不能,但除非你让他们坐在你面前编写代码(这与实际开发相比很差),否则生活就是这样。询问有关代码的问题(请参阅上面 #2 的注释)将帮助您判断他们是否知道他们在说什么。 2. 只为审查代码的中立人付费。不要雇用与潜在程序员相关的任何人。对于额外的偏执点,请从代码中删除开发人员姓名的任何实例。
  • Joseph 的回答很中肯,但我想我还要提一下 Magento 是相当新的,专家很少。我的意思是,去年它似乎已经流行起来了,这意味着你有很多全新的 magento 程序员。您不会找到大量真正的专家(就像您可能会找到 Java 专家一样)。我想最好的专家是为这些小商店工作/经营 magento 开发的人。如果你正在寻找一个全职的人,你会遇到困难,我敢打赌,你最好找一个 sharp PHP 开发人员。
  • 关于 Magento 专家的匮乏,sdek 是完全正确的。这是一次尝试在合理的时间范围内寻找能够能够掌握 Magento 的人的旅程。但是,如果您正在考虑聘请精明的 PHP 开发人员,请花大量时间让他们跟上进度。至少可以说,Magento 的学习曲线很陡峭。当我开始使用 Magento 时,即使是几年 Zend Framework 的使用经验也没有使我的学习曲线变慢。
  • 如果请求“查看代码/模块/法师作品”应该采用什么格式以便第三方对其进行评估?
【解决方案2】:

您可以向正在考虑为您开发一些自定义模块的开发人员提出一些简单的问题。

Q1:自定义模块的代码在结构中的什么位置?

A1:它可以并且将驻留在几个地方,您希望它完全独立于 magento 核心。对于它应该驻留在 app/code/local 或 app/code/community 中的代码,模板/视图代码应该驻留在 app/design/frontend/default/yourcustomnamespace/modulename 或 app/design/frontend/custominterfacename/yourcustomnamespace/modulename (这是任何扩展过 magento 的人都应该知道的事情)

Q2:您可以向他们询问观察者及其与 magento 和目的的关系

A2:任何扩展了 magento 功能的人都应该有观察者的经验,并且知道他们是模型的一部分,应该驻留在模型目录中,并且能够为您提供一些如何观察的示例一个事件。此外,它们需要在模块 XML 中定义,即:

    <events>
        <checkout_type_onepage_save_order_after>
            <observers>
                <SomeNameSpace_Observer_increment>
                    <type>singleton</type>
                    <class>Namespace_Module_Model_Observer</class>
                    <method>increment</method>
        </SomeNameSpace_Observer_increment>
    </events>

和模型方法接受一个事件参数。 即:

public function doSomeStuff (Varien_Event_Observer $observer) {
    execute some stuff in here
}

我认为如果有人可以向您解释这些类型的事情,那么您可能会认为他们知道 magento 并且可以为您创建自定义模块。

我的回答有点复杂和冗长,但我想你明白了。

【讨论】:

  • 啊它不喜欢我的 xml 示例...哦,你明白了。
  • 我明白这些回复的重点,但我担心这些问题的答案可以通过 Google 搜索。如果您可以查找答案,您真正表现出多少理解?我在大多数代码面试中都有这个问题,这对我来说似乎不是很有活力。
  • 如果你肯定是远程面试。如果亲自来,那么这将为您提供一个一般性的答案,以查看开发人员是否有能力。对于远程采访,您甚至可以要求一个简单的工作示例,受访者可以现场发布供您查看?如果有人足够感兴趣,那么他们应该愿意我认为完成该任务以展示他们的知识。除此之外,我不确定您还能做什么。当我采访人们时,我通常至少需要一个电话,以便我可以通过对问题的回答(犹豫、语气等)来衡量他们的技能。
猜你喜欢
  • 2018-01-25
  • 2022-08-13
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
相关资源
最近更新 更多